此文章介绍了如何在Ubuntu下部署alsa
环境:虚拟机Ubuntu22.04版本
默认你已经安装了gcc、make等常用的工具。
简介
ALSA(Advanced Linux Sound Architecture,高级 Linux 声音架构)是 Linux 内核默认的底层音频驱动框架,替代了传统的 OSS(Open Sound System),负责管理音频硬件(声卡、麦克风、耳机等),提供统一的音频设备访问接口。无论是播放音乐、录音,还是开发音频应用(如你之前的音乐播放器项目),都离不开 ALSA 的支持。
整个ALSA的架构大概分为五个子系统
- PCM子系统:音频流数据传输(播放、录音)snd_pcm_
- Mixer子系统:负责音量等、混音控制 snd_mixer_
- Control子系统:硬件控制、状态读取
- RawMIDI子系统
- Timer子系统:系统时钟等
1. 安装与测试alsa
- 安装alsa
- 测试是否能使用
输入指令amixer,查看能否正查查询驱动
有类似于Simple mixer control……则代表安装成功
2. mplayer的简单操控方式
1. 在命令窗口控制
- 正常输入
amixer get "Master”可以查看这个Master驱动的属性。
- 正常输入
amixer set "Master” nn为数字0-63 或者 0%-100% 可以设置“Master”的音量。
2. 使用ALSA Libs库来控制
TPS:
输入
aplay - l 可以查看所有的声卡(card)- 一个音频声卡card,可能有很多子设备,例如Device0、Device1…
- 一个Device就相当于一个PCM通道
在控制是可以通过card的编号也可以是通过声卡名称:
- 例如0 1。但是需要注意设备重启car的编号可能会颠倒或更改。 即hw:0
- 而且还可以通过card名称,例如 hw:AudioPCI
- 控制声卡的某子设备,则为 hw:AudioPCI,0 则意为控制AudioPCI声卡的第0个子设备
- 安装ALSA库
库的头文件在/use/include/alsa/asoundlib.h
编译时需要链接asound
- 编写代码测试
控制音量所需用到的仅有mixer相关
- 测试代码:
其中CARD是使用
aplay - l查到的声卡设备 ELEM是使用amixer查看到的 控制单元 Master 程序简单实现了音量的百分比控制 (实际有63挡, 这里我输入范围是0-100。实际设置和获取并计算得到的值有些误差我没做处理。) 编译指令:gcc vol.c -o run -lasound
有关其他问题欢迎联系或者在评论区留言。
- 作者:L_Z_J
- 链接:https://www.mcoi.top/article/Post-Ubuntu-deploy-alisa
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。









