Cer*_*rin 25 python audio ubuntu gnome alsa
你如何通过命令行或API(Python优先)以编程方式在Ubuntu上更改Gnome中的卷?
我发现类似问题的唯一答案amixer,似乎对Ubuntu 12.04没有影响.运行:
amixer set Headphone 10-
Run Code Online (Sandbox Code Playgroud)
说明:
Simple mixer control 'Headphone',0
Capabilities: pvolume pswitch penum
Playback channels: Front Left - Front Right
Limits: Playback 0 - 115
Mono:
Front Left: Playback 0 [57%] [-57.50dB] [on]
Front Right: Playback 0 [57%] [-57.50dB] [on]
Run Code Online (Sandbox Code Playgroud)
每次运行时x%都会发生变化.不幸的是,它对实际音量没有影响.最终它表示0%,但音量仍然处于爆炸状态.
另一个缺点是我必须指定确切的有源输出设备,如果有多个设备,我可能不知道.例如,如果我有"Master"和"Headphone",我该如何确定哪一个是有源设备?
mat*_*ata 40
Ubuntu使用pulseaudio作为sounderver.可以使用pactl和pacmd实用程序从命令行控制它,例如:
pactl set-sink-volume 0 20%
Run Code Online (Sandbox Code Playgroud)
将水槽#0的体积设置为20%.
见:man pactl和pacmd help
编辑:
为避免-xx被解释为命令行选项,您必须在其前面加上--.这会停止从该点解析选项:
pactl set-sink-volume 0 -- -20% # or:
pactl -- set-sink-volume 0 -20% # doesn't matter where the `--` goes
Run Code Online (Sandbox Code Playgroud)
Fro*_*oyo 16
我是用ALSA搅拌机做的.您可能需要下载python-alsaaudio
sudo apt-get install python-alsaaudio
Run Code Online (Sandbox Code Playgroud)
然后控制音量,
import alsaaudio
m = alsaaudio.Mixer() # defined alsaaudio.Mixer to change volume
m.setvolume(50) # set volume
vol = m.getvolume() # get volume float value
Run Code Online (Sandbox Code Playgroud)
阅读http://pyalsaaudio.sourceforge.net/libalsaaudio.html了解alsaaudio库的详细信息.
amixer命令在Ubuntu 13.04中工作,
增加5%
amixer -D pulse sset Master 5%+
体积减少5%
amixer -D pulse sset Master 5%-
pactl或pacmd在Ubuntu 13.04中没有正确地为我工作.
| 归档时间: |
|
| 查看次数: |
28007 次 |
| 最近记录: |