alsa记录

周期,period,至关于底层的一个缓冲区窗口的大小,不过其单位不是字节,而是frame_size,双声道就是2.,单声道就是1.html

这里不对,应该还和量化位数相关,8位量化对于单声道frame_size就是1,可是16位的话变为2了函数


设置了周期后,还须要设置底层lib的缓冲区大小,其大小应该是周期*frame_sizeui

设置完了后,须要再去读取一次周期的大小spa

而后,获得周期大小后,能够设置应用层的读写缓冲区大小,好比能够设置一会儿读取的PCM文件大小非周期*frame_size 字节大小.net

读写出之后,能够直接调用PCM写入函数写入,写入大小为周期代大小,注意不是字节单位,而是frame_size单位unix

对于libmad解码出的PCM流,从其lib可知,PCM的缓冲区大小为 每一个声道1152字节htm

因此,对应到alsa,16位量化的话blog

至关于一个周期为1152*2*2(双声道)字节,也就是周期为1152个frame_sizeget

至关于一个周期为1152*1*2(但声道)字节,也就是周期为1152个frame_size
it

此文有介绍

http://blog.chinaunix.net/uid-10995602-id-2918643.html

相关文章
相关标签/搜索