PS:
Oss程序迁移到Alsa时遇到的问题
原创
©著作权归作者所有:来自51CTO博客作者mypyg的原创作品,请联系作者获取转载授权,否则将追究法律责任
这两天把以前的一个程序从Oss接口改为Alsa接口,按照Alsa的例子将声音输出部分修改后,播放时发出的声音断断续续,并且有很大的杂音。开始以为是Format没有设对,将所有的Format设了一遍仍然不行。将声音转成PCM数据用aplay来播放就没问题,看了aplay的代码发现自己调用snd_pcm_writei有错。原来Oss接口时直接使用write(设备句柄,buffer,data_size),现在改成snd_pcm_writei时没有修改,snd_pcm_writei要求的参数是(设备句柄,buffer,frame_size),最后一个frame_size也就是buffer中的数据有多少个frame,这个可以用公式:(buffer_size*8)/(采样位数*声道),buffer_size*8是bit数,采样位数一般是16,声道就是1或者2,这样典型的mp3数据比如16bit,立体声,那么frame_size = buffer_size * 8 / (16*2),修改之后,播放正常了。
PS:
PS:
frame_size其实就是这些数据是多少个sample
上一篇:Windows下静态编译QT程序
下一篇:实例学习使用Autotools
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
将项目从JBOSS 6 迁移到 JBOSS 7所遇到的问题
以下内容只是以笔记形式记录,以防再次折腾,同时提供一个借鉴:
JBOSS 6 迁移 JBOSS 7 -
Mysql从Windows迁移到Linux,遇到的坑
Mysql从Windows迁移到Linux,遇到的坑!
Mysql Windows Linux 数据库迁移 -
从Mysql迁移到PostgreSql的问题
一、如何迁移结构和数据?黄海使用的:esf_dbcv_pro_102019.exe真是个好东西,万能的数据结构、内容转换工具,我就没发现它转不了的,当然,它也自做主张的把我的sqlite转的字段类型不对了。
mysql sqlite 数据结构 postgresql 字段类型 -
EntityFramework 迁移遇到的问题
...
更新数据 删除数据 ide python .net