Python程序需要调用shell命令设置系统音量:
amixer set Master 30% #音量设定为30%
在一台ubuntu上成功了。但是在另一台机器上却报错:
amixer: Unable to find simple control 'Master',0
找了一圈,发现是 默认声卡 不对。只要修改下默认声卡就可以成功执行上面那条命令了。
运行 alsamixer 显示的信息如下:
没有可以调节音量的选项。
F6 选择另一张声卡:
这就正常了。
所以讲默认声卡设置成刚选择的这张就行了。
先看下声卡相关的信息:
bwhite@os:~$ amixer scontrolsSimple mixer control 'IEC958',0Simple mixer control 'IEC958',1Simple mixer control 'IEC958',2bwhite@os:~$ bwhite@os:~$ amixer -c 1 scontrols Simple mixer control 'Master',0Simple mixer control 'Headphone',0Simple mixer control 'Speaker',0Simple mixer control 'PCM',0Simple mixer control 'Capture',0Simple mixer control 'Auto-Mute Mode',0Simple mixer control 'Headset Mic',0Simple mixer control 'Headset Mic Boost',0Simple mixer control 'Internal Mic',0Simple mixer control 'Internal Mic Boost',0Simple mixer control 'Loopback Mixing',0bwhite@os:~$ aplay -l**** List of PLAYBACK Hardware Devices ****card 0: HDMI [HDA Intel HDMI], device 3: HDMI 0 [HDMI 0] Subdevices: 1/1 Subdevice #0: subdevice #0card 0: HDMI [HDA Intel HDMI], device 7: HDMI 1 [HDMI 1] Subdevices: 1/1 Subdevice #0: subdevice #0card 0: HDMI [HDA Intel HDMI], device 8: HDMI 2 [HDMI 2] Subdevices: 1/1 Subdevice #0: subdevice #0card 1: PCH [HDA Intel PCH], device 0: ALC286 Analog [ALC286 Analog] Subdevices: 0/1 Subdevice #0: subdevice #0bwhite@os:~$
所以,在aplay -l 里面选择声卡1,设备ID为0的声卡。
把下列配置添加到系统级别的 /etc/asound.conf
或用户级别的 ~/.asoundrc 文件。
如果文件不存在,可以手动创建。
其中的各个ID,请根据实际情况调整:
defaults.pcm.card 1defaults.pcm.device 0defaults.ctl.card 1“pcm”选项决定用来播放音频的设备,而“ctl”选项决定那个声卡能够由控制工具(如 alsamixer)使用。
再运行一开始会报错的命令就没有成功了。
采集声音:
要修改采集声音的话,修改 Capture.
amixer按 F4 就可以看到相关界面amixer set Capture 10%如果要修改制定声卡的相关数据,使用 -c 修改第一块声卡设备的数据amixer -c 1 Capture 100%显示声卡设备相关数据:arecord -larecord -Laplay -l
备注:
amixer set Master 10%+ #增加10%音量
amixer set Master 10%- #降低10%音量 amixer set Master 30% #音量设定为30%参考链接: