由于项目需要进行声音播放,但是主板上没有声卡模块就使用USB外接声卡来实现音频播放。
(项目使用ubuntu18.04的系统)
首先我们在主板上插入USB声卡,在终端中输入:lsusb
$ lsusb
Bus 002 Device 002: ID 0bda:0411 Realtek Semiconductor Corp.
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 004: ID 0d8c:0012 C-Media Electronics, Inc.
Bus 001 Device 002: ID 0bda:5411 Realtek Semiconductor Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
可以看到usb声卡设备 C-Media Electronics
接下来查看声卡相关的信息:
$ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: PCH [HDA Intel PCH], device 3: HDMI 0 [HDMI 0]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 7: HDMI 1 [HDMI 1]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 8: HDMI 2 [HDMI 2]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 9: HDMI 3 [HDMI 3]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 10: HDMI 4 [HDMI 4]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: Device [USB Audio Device], device 0: USB Audio [USB Audio]
Subdevices: 1/1
Subdevice #0: subdevice #0
可以看到我们使用的USB声卡: card1 , device 0
将配置信息添加到 ~/.asoundrc
文件中,如果文件不存在,可以手动创建。
写入以下内容:
defaults.pcm.card 1 defaults.pcm.device 0 defaults.ctl.card 1
“pcm”选项决定用来播放音频的设备,而“ctl”选项决定那个声卡能够由控制工具(如 alsamixer
这个是图形工具)使用。
在终端输入
$ amixer -c 1 scontrols
Simple mixer control 'Speaker',0
Simple mixer control 'Mic',0
Simple mixer control 'Auto Gain Control',0
-c 1
: 表示选择的声卡(这个就是USB声卡)
scontrols
: 表示显示所有混频器的控件(这样可以看到调整声音大小就是 Speaker
)
最后
- 播放音频文件
leisheng.wav
$ aplay leisheng.wav
- 调整音量 为10%
$ amixer set Speaker 10%
Simple mixer control 'Speaker',0
Capabilities: pvolume pswitch pswitch-joined
Playback channels: Front Left - Front Right
Limits: Playback 0 - 37
Mono:
Front Left: Playback 4 [11%] [-33.00dB] [on]
Front Right: Playback 4 [11%] [-33.00dB] [on]