1. ALSA概述
ALSA(Advanced Linux Sound Architecture,高级linux声音体系)简写,是linux上主流 音频体系架构,提供了音频和MIDI的支持。是Linux系统下一套标准的音频驱动框架。
2. ALSA框架
ALSA框架分层在内核空间部分和应用空间部分。
2.1 Linux内核空间的alsa驱动
在Linux2.6后已经集成进入linux源码。 备注:在内核层使用alsa驱动时,请保证内核编译时,支持上 CONFIG_SYSVIPC=y 如果没有支持上该选项,使用时,会出现错误
ALSA lib pcm_dmix.c:1038:(snd_pcm_dmix_open) unable to create IPC semaphore aplay: main:830: audio open error: Function not implemented
ALSA lib pcm_dmix.c:1038:(snd_pcm_dmix_open) unable to create IPC semaphore
2.2 Linux用户空间的alsa库和程序
alsa-lib\alsa-utils\alsa-tools\alsa-firmware等。 alsa-lib 是一套Linux应用层的C语言函数库,为音频应用程序开发提供了一套统一、标准 的接口,应用程序只需要调用这一套API即可完成对底层声卡设备的操控,例如:播放和录音。 用户空间的alsa-lib对应用程序提供了统一的API接口,这样开发者就无需关注驱动层的实现细节 这样大大简化开发难度,使程序开发人员无需直接读写操作音频设备节点,而聚焦到alsa-lib库 函数的使用中。 alsa库和程序主要:alsa-lib alsa-utils alsa-tools alsa-firmware alsa-plugins alsa-oss等 alsa-lib:包含开发alsa应用程序使用到用户空间库函数 alas-utils: 包含各种通用的alsa命令行工具,eg:amixer aplay alsaconf等。
3. ALSA声卡设备
对声卡操作,通过alsa core向用户空间导出,声卡相关的字符设备节点来完成 $cd /dev/snd/ $/dev/snd/controlC0 声卡控制设备节点,可以选择通道、控制音量等 $/dev/snd/pcmCOD0c 声卡的录音节点,可以用来录音 $/dev/snd/pcmC0D0p, /dev/snd/pcmC0DO1p 声卡播发节点,用来播放音频数据
您还没有登录,请您登录后发表评论。