ALSA声卡驱动程序的配置
对于声卡驱动程序,除了内核自带的驱动程序之外,您还可以使用Advanced Linux Sound
Architecture(ALSA,)提供的驱动程序。它支持一系列主流声卡,同时它和内核的声音结构互相兼容,在某种程度上,可以说是内核的声卡驱动模块的补充。
在您加载snd-pcm-oss设备模块之后,你也能使用与oss兼容的方式存取声卡,这时如下的映射会被完成:
ALSA设备
OSS设备 次设备号
/dev/snd/pcmC0D0 /dev/audio0(/dev/audio) 4
/dev/snd/pcmC0D0
/dev/dsp0(/dev/dsp) 3
/dev/snd/pcmC0D1 /dev/adsp(/dev/adsp) 12
/dev/snd/pcmC1D0 /dev/audio1 20
/dev/snd/pcmC1D0 /dev/dsp1 19
/dev/snd/pcmC1D1 /dev/adsp1 28
/dev/snd/pcmC2D0 /dev/audio2 36
/dev/snd/pcmC2D0 /dev/dsp2 35
/dev/snd/pcmC2D1 /dev/adsp2 44
以上,只要这样的映射完成了,就可以在源程序中使用plughw:0,0的方式指定PCM设备。而Fedora8已经加载了alsa的这些模块,所以不需要设置。
ALSA 体系:
ALSA API 被主要分为以下几种接口:
l
控制接口:提供灵活的方式管理注册的声卡和对存在的声卡进行查询。
l
PCM接口:提供管理数字音频的捕捉和回放。
我们只是用这个接口就可以了。
l 原始 MIDI 接口: 支持 MIDI (Musical Instrument
Digital Interface),
一种标准电子音乐指令集。 这些 API 提供访问声卡上的 MIDI 总线。这些原始借口直接工作在
The MIDI
事件上,程序员只需要管理协议和时间。
l 记时接口:
为支持声音的同步事件提供访问声卡上的定时器。
l
音序器接口:一个比原始MIDI接口高级的MIDI编程和声音同步高层接口。它可以处理很多的MIDI协议和定时器。
l
混音器接口:控制发送信号和控制声音大小的声卡上的设备。
声卡的缓存和数据的传输:
一块声卡有一个声卡内存用来存储记录的样本。当它被写满时就产生中断。内核驱动就使用DMA将数据传输到内存中。同样地,当在播放时就将内存中的声音样本使用DMA传到声卡的内存中。
声卡的缓存是环状的,这里只讨论应用程序中的内存结构:ALSA将数据分成连续的片段然后传到按单元片段传输。
阅读(1215) | 评论(0) | 转发(0) |