Alsa 小结
ALSA小结,从网上转载的,不知道原来的地址了 关于alsa的总结: 一. alsa展现的三层结构: (1)audio interface: audio interface就是声卡,它含有hardware buffer,注意,这个hardware buffer是在声卡里面,不是内存。 (2)computer: 这个指的是计算机的内核和驱动(驱动由alsa提供),当(1)的audio interfacce引发中断,内核会捕捉到,再把处理移交alsa。 (3)application: 这个就是你写的程序,你开辟一个buffer,比如playback,就交给alsa来play。 在上面的框架下,流程如下: (1)playback: application开辟一个buffer,填上数据,调用alsa接口,alsa把buffer数据复制到其驱动的空间,再把数据交给 hardware buffer。 (2)record: 同playback,相似的。 二. 细节: 按照上面的流程,其中有许多细节我们可以加以控制,这里仅仅指出应用程序需要关心的: 2.1 操作的设备: 在alsa驱动这一层,目前为止,抽象出了4层设备,一是如hw:0,0,二是plughw:0,0,三是default:0,四是default。至于 一是清楚了,二和二以上可以做数据转换,以支持一个动态的范围