如何在Ubuntu上以程序方式更改音量

2024-05-14 10:48:18 发布

您现在位置:Python中文网/ 问答频道 /正文

如何在Ubuntu上通过命令行或API(Python优先)编程更改Gnome中的卷?

我对类似问题的唯一答案是使用amixer,这似乎对Ubuntu 12.04没有影响。跑步:

amixer set Headphone 10-

显示:

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]

每次运行时x%都会更改。不幸的是,它对实际音量没有影响。最终它说是0%,但音量仍然处于最大值。

另一个缺点是我必须指定确切的活动输出设备,如果有多个设备,我可能不知道。例如,如果我有一个“主机”和“耳机”,如何确定哪一个是活动设备?


Tags: 答案命令行rightapidbonubuntu编程
3条回答

我用ALSA混合器。你可能需要下载python alsaaudio

sudo apt-get install python-alsaaudio

然后控制音量

import alsaaudio
m = alsaaudio.Mixer()   # defined alsaaudio.Mixer to change volume
m.setvolume(50) # set volume
vol = m.getvolume() # get volume float value

阅读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%-

pactlpacmd在Ubuntu 13.04中对我不起作用。

Ubuntu使用pulseaudio作为声音服务器。可以使用pactlpacmd实用程序从命令行控制它,例如:

pactl set-sink-volume 0 20%

将水槽的容积设为20%。

见:man pactlpacmd help


编辑:

要避免-xx被解释为命令行选项,必须在其前面加上--。从此停止选项解析:

pactl set-sink-volume 0 -- -20%    # or:
pactl -- set-sink-volume 0 -20%    # doesn't matter where the `--` goes

相关问题 更多 >

    热门问题