Контролировать громкость с помощью скрипта 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 - просто несколько случайных примеров - я не думаю, что вы можете обвинить меня.

Также, пожалуйста, не вызывайте программы командной строки, чтобы сделать это. Это уродливо и подвержено ошибкам.

Другие вопросы по тегам