端子amixer -D Pulse sset Master 0%
を介してこのコマンドを使用して音量を制御できます。 pythonスクリプトを使用して同じことをどのように行うことができるかという私の質問。
call
モジュールのsubprocess
を使用できます。
from subprocess import call
call(["amixer", "-D", "Pulse", "sset", "Master", "0%"])
もちろん、通常のpythonコードを使用できます:
valid = False
while not valid:
volume = input('What volume? > ')
try:
volume = int(volume)
if (volume <= 100) and (volume >= 0):
call(["amixer", "-D", "Pulse", "sset", "Master", str(volume)+"%"])
valid = True
except ValueError:
pass
このコードは、ユーザーが有効な入力を与えるまでループします-0から100の間で、ボリュームをそれに設定します。
これはPythonで実行されます。3. Pythonのinput
をraw_input
に変更します2。
スクリプトの実行時に10%増加させるには、次の2つのいずれかを実行できます。
alsaaudio
モジュールを使用できます。
まず、でインストール
Sudo apt-get install python-alsaaudio
そしてそれをインポートします:
import alsaaudio
ボリュームを取得できます。
>>> m = alsaaudio.Mixer()
>>> vol = m.getvolume()
>>> vol
[50L]
ボリュームを設定することもできます:
>>> m.setvolume(20)
>>> vol = m.getvolume()
>>> vol
[20L]
この番号は、リスト内の 長整数 です。したがって、使用可能な数にするために、int(vol[0])
を実行できます。
実行時に10%増加するのですか?
import alsaaudio
m = alsaaudio.Mixer()
vol = m.getvolume()
vol = int(vol[0])
newVol = vol + 10
m.setvolume(newVol)
または、subprocess
モジュールとデフォルトのUbuntuコマンドを使用できます。
from subprocess import call
call(["amixer", "-D", "Pulse", "sset", "Master", "10%+"])
10%増加します。
私にとって、Timのコードはまったく機能しませんでした。私はこれをしなければなりませんでした:
import alsaaudio
m = alsaaudio.Mixer(alsaaudio.mixers[0]) # alsaaudio.mixers = ["PCM"] for me.
m.setvolume(90) # Or whatever
奇妙な/壊れた.asoundrc
設定ファイルが原因である可能性があります。しかし、.asoundrc
の実際のリファレンスドキュメントがないことを考えると、いくつかのランダムな例にすぎません。私を責めることはできないと思います。
また、コマンドラインプログラムを呼び出さないでください。それは見苦しく、エラーを起こしやすいです。