播报卡顿,破音 问题总结
tts播报在一些极端情况下出现卡顿,怎么解决呢
数据没问题,只是极端情况下会影响audiotrack的写入间隔
所以如何保证数据间隔的稳定性
两个线程,一个获取数据,一个是写入数据
1 延时0.5s启动写入数据的线程
2 每次写入数据如果写入过快(小于150ms),就等到150ms再进行下一次的写入
3 将获取数据的线程等级设为 -16 即等级特别高,将写入数据的优先级保持normol等级即可
4 增大buffersize为 min的4倍
5 将每帧的数据重新组装为 buffersize*n 大小的数据块。
以上五点都是保证数据稳定输出的措施。这样既能稳定时间间隔,也能稳定数据块的大小,基本保证了播放的流畅性(cpu占用99%的情况下也能正常播报)
具体的阈值 会根据不同的设备微调。因为不同的系统underrun的条件不同,还是要配合系统一块调
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
