tts播报在一些极端情况下出现卡顿,怎么解决呢
数据没问题,只是极端情况下会影响audiotrack的写入间隔
所以如何保证数据间隔的稳定性
两个线程,一个获取数据,一个是写入数据
1 延时0.5s启动写入数据的线程
2 每次写入数据如果写入过快(小于150ms),就等到150ms再进行下一次的写入
3 将获取数据的线程等级设为 -16 即等级特别高,将写入数据的优先级保持normol等级即可
4 增大buffersize为 min的4倍
5 将每帧的数据重新组装为 buffersize*n 大小的数据块。
以上五点都是保证数据稳定输出的措施。这样既能稳定时间间隔,也能稳定数据块的大小,基本保证了播放的流畅性(cpu占用99%的情况下也能正常播报)
具体的阈值 会根据不同的设备微调。因为不同的系统underrun的条件不同,还是要配合系统一块调