alsa非阻塞模式有噪声

qq_16454793 2014-06-12 12:00:50
最近用alsa播放声音,阻塞模式很好用,但是会阻塞线程。所以想试试非阻塞模式,一试之下,发现很多问题,场景如下:
循环读取wav文件播放,每次读取352的采样(352×4Bytes)。
如果alsa的frame设置大于352, 那么播放很正常,但是延时很大。
如果frame设置小于每次写的数据,哪怕我循环再快,也会有缺数据发出的卡达声。
不知道大家有没有这么玩过。
简易代码如下:
if (af == NULL)
af=fopen("test.wav", "rb");

if (af != NULL)
fread(abuf, 1, 352*4, af);

while(config.output->play(abuf, 352)<0); (这个函数直接调用snd_pcm_writei)
...全文
419 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_16454793 2014-06-12
  • 打赏
  • 举报
回复
哎,没人顶。。。。。。。。

23,121

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧