Контролировать громкость с помощью скрипта Python
Я могу контролировать громкость с помощью этой команды через терминал amixer -D pulse sset Master 0%
, Мой вопрос о том, как я могу сделать то же самое, используя скрипт Python.
2 ответа
Ты можешь использовать 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. Измените input
в raw_input
для Python 2.
Чтобы увеличить на 10% при запуске скрипта, вы можете сделать одну из двух вещей.
Вы можете использовать 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%.
Для меня код Тима не совсем сработал. Я должен был сделать это:
import alsaaudio
m = alsaaudio.Mixer(alsaaudio.mixers[0]) # alsaaudio.mixers = ["PCM"] for me.
m.setvolume(90) # Or whatever
Это может быть связано с моим странным / сломанным .asoundrc
Конфигурационный файл Но, учитывая, что нет фактической справочной документации для .asoundrc
- просто несколько случайных примеров - я не думаю, что вы можете обвинить меня.
Также, пожалуйста, не вызывайте программы командной строки, чтобы сделать это. Это уродливо и подвержено ошибкам.