首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 操作系统 >

Oss程序迁移到Alsa时遇到的有关问题

2012-07-04 
Oss程序迁移到Alsa时遇到的问题这两天把以前的一个程序从Oss接口改为Alsa接口,按照Alsa的例子将声音输出部

Oss程序迁移到Alsa时遇到的问题
这两天把以前的一个程序从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:
frame_size其实就是这些数据是多少个sample

热点排行