播放音频,声音断断续续的,看终端输出,报underrun,查资料,可能是数据写入缓存区不够快,不知道怎么解决,有人帮忙分析下吗
aplay -Dhw:0,0 -f dat -r 48000 opt/test.wavPlaying WAVE 'opt/test.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo
underrun!!! (at least 308.075 ms long)
underrun!!! (at least 94.055 ms long)
underrun!!! (at least 309.540 ms long)
underrun!!! (at least 155.182 ms long)
underrun!!! (at least 86.731 ms long)
underrun!!! (at least 45.074 ms long)
Steven Liu1:
如果真是数据写入的速度有问题,可以考虑使用DMA的方式进行数据搬移,效率会高很多。
但是在此之前,还是先确认一下你当前的音频这块的硬件电路设计(比如采样时钟是否同源之类的),和软件设置等方面是否合理正确等因素。
先确认确实是读写成为瓶颈了,再去考虑上面这条思路。
Yaoming Qin:
CPU的占用率高吗?
hongbin li1:
回复 Steven Liu1:
是通过EDMA来数据搬移,硬件方面有问题,硬件工程师没时间排查,只能等了,排查完硬件再看看软件方面
hongbin li1:
回复 Yaoming Qin:
不知道CPU的占用率怎么查,但是板子断电重启后播放没有问题,录音有杂音,没有overrun和underrun问题,等工作一段时间后overrun和underrun问题就出现了