25

コマンドラインまたはAPI(できればPython)から、Ubuntuの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% と表示されますが、ボリュームはまだフル ブラストです。

もう 1 つの欠点は、アクティブな出力デバイスを正確に指定する必要があることです。これは、複数のデバイスがある場合はわからない可能性があります。たとえば、「マスター」と「ヘッドフォン」がある場合、どちらがアクティブなデバイスかを判断するにはどうすればよいですか?

4

6 に答える 6

40

Ubuntu は pulseaudio をサウンドバーとして使用します。pactlコマンド ラインからおよびpacmdユーティリティを使用して制御できます。次に例を示します。

pactl set-sink-volume 0 20%

シンク #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
于 2012-05-24T14:42:31.203 に答える
16

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 ライブラリの詳細を確認してください。

于 2012-05-24T20:57:44.203 に答える
6

amixerコマンドは Ubuntu 13.04 で動作しましたが、

音量を 5% 上げる
amixer -D pulse sset Master 5%+

音量を 5% 下げる
amixer -D pulse sset Master 5%-

Ubuntu 13.04 では、 pactlまたはpacmdが正しく機能しませんでした。

于 2014-02-19T00:04:28.700 に答える
2

ボリュームを読み取るダーティ スニペット (ubuntu ではボリュームが「100%」を超えることを忘れないでください。この時点で ~0.66 が返されます)。

#!/usr/bin/python
import subprocess

vol = int(filter(lambda l: l.startswith('set-sink-volume'),
          subprocess.check_output(["pacmd","dump"])
          .split('\n'))[0]
          .split()[-1],16)/100000.

print vol
于 2013-09-11T17:35:57.730 に答える
1

シンプルでエレガントなponymix utill を試すこともできます。音量の増減、オーディオの切り替え (ミュート/ミュート解除) などを非常に簡単に行うことができます。

まず、利用可能なオーディオ ソースのリストを取得します。ponymix

私の場合、シンク 0ソース 0の両方を確認できます。番号0または完全な名前のBuilt-in Audio Digital Stereo (HDMI)を使用して、オーディオを制御できます。

カード 0 の音量を 5% 上げます。ponymix -c 0 increase 5

カード 0 の音量を 5% 下げます。ponymix -c 0 decrease 5

于 2014-04-29T19:51:08.833 に答える