关于linxu 下alsa 编程参数请教
alsa 下的参数,我需要做播放操作,播放的音频是48K 16Bit,单声道的数据,我不清楚相应的frame,period,period_time,buff_size,buff_time之类的,是那个决定了哪一个的,比如说,我现在的参数,1秒钟,应该是扔96KB(96000字节)数据进去alsa驱动中,如果我需要100MS 中断一次,我申请的buffer应该是9600字节,这个时候frame 应该是多少,period 又是多少,buff_time 之类应该是多少,alsa的API,对于参数的配置很不清晰,请知道的兄弟指导一下,谢谢! 等你知道了告诉我,谢谢,我也想找相关的书看看 有知道的兄弟指导指导吗! period表示一秒中断的次数,若period=4,则中断时间为1s/4=250ms,则ALSA框架每隔250ms中断一次,告诉应用层向设备填充pcm数据。frame表示中断一次至少要填充的数据量,
采样1秒的数据量是48kHz*16-bit*2channels=192000 bytes
那么每隔250ms需要填充的数据量至少要为192000/4=48000 bytes.
我也想知道 shell.albert 发表于 2018-7-19 09:04
period表示一秒中断的次数,若period=4,则中断时间为1s/4=250ms,则ALSA框架每隔250ms中断一次,告诉应用 ...
我的理解是,frame 是由硬件决定的,比如说,48K采样率,16Bit 单声道的情况下,这个frame 就应该是2,
然后period ,是由什么决定的?是可以自己随便定义吗?你说的period 应该就是period_time 吧?那么buffer 呢?
页:
[1]