Ви можете змінити головний том у межах терміналу себе за допомогою команди, показаної нижче.
amixer -D pulse sset Master 5%+
Однак, коли я спробував виконати наступний код у Python відображається наступна помилка.
No protocol specified
xcb_connection_has_error() returned true
ALSA lib pulse.c:243:(pulse_connect) PulseAudio: Unable to connect: Connection refused
amixer: Mixer attach pulse error: Connection refused
А ось код, який дає помилку вище.
os.system("amixer -D pulse sset Master 5%+")
Як вирішити цю помилку?
Помилка "не вдається підключитися" може означати: pulseaudio не запущено або існують питання дозволів. "pactl" може бути більш підходящим для контролю імпульсного звуку. Спробуйте визначити, який вихід ви намагаєтеся керувати, запустивши: "pactl list sinks". Перегляньте вихід цієї команди, щоб визначити номер раковини. Потім запустіть щось на кшталт "pactl set-sink-volue 3 + 5%" (де "3" є раковиною # на моїй машині для "Вбудованого аудіо-аналогового стерео"). Важливо відзначити: номери раковин можуть змінюватися через перезавантаження, тому варто дослідити, як виконати те ж саме з іменами раковин замість номерів раковин.
—
joat
Я спробував pactl також, але отримую ті ж помилки. @ Joat
—
Ghatak Sena
Pulseaudio працює? Ви (або ваш сценарій) запускає pactl / amixer як зареєстрований користувач (не root)? Ось про все, про що я можу придумати.
—
joat
Звичайно, це працює в терміналі, але моя головна проблема полягає в тому, що він не працює з кодом Python
—
Ghatak Sena
Це має бути питання дозволів. 'import os; os.system ("pactl set-sink-mute 3 1") працює, якщо я запускаю його в терміналі або в сценарії. Коли ви запускаєте amixer, чи потрібно вибирати звукову карту, перш ніж робити що-небудь ще?
—
joat