Автоматически менять устройство ввода-вывода звука

Я должен подключить свой USB-аудио адаптер (4300054 Gigawire USB Audio Adapter) для аудиовхода, потому что имеет порт комбинированного ввода-вывода для голоса. После того, как я это сделаю, я должен открыть «Настройки звука» и вручную выбрать аудио адаптер USB для входа и выхода, если нет, система по умолчанию останется выбранной.

Есть ли вообще, я могу сделать так, чтобы Ubuntu автоматически выбирал USB Audio Adapter по умолчанию при подключении?

33
задан 1 July 2012 в 13:04

3 ответа

Имеется импульсный аудио модуль включения-подключения, который позволяет автоматически переключать аудиоустройство при подключении. Чтобы проверить, работает ли это, мы можем выдать следующую команду в терминале:

pacmd load-module module-switch-on-connect

В случае успеха мы можем добавить следующую строку в нашу /etc/pulse/default.pa

load-module module-switch-on-connect

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

0
ответ дан 1 July 2012 в 13:04

создать ~/.config/pulse/default.pa, если он не существует, и добавить

.include /etc/pulse/default.pa
load-module module-switch-on-connect

Это лучше, чем редактировать /etc/pulse/default.pa.

После этого вы должны запустить pulseaudio -k && pulseaudio --start, чтобы изменения вступили в силу. Спасибо, что указали на этого селекционера

0
ответ дан 1 July 2012 в 13:04

Я долго тестировал решения, которые мог найти в документации или на форумах, и это было единственное, что сработало.

Итак, вот сценарий, который я создал, который вы можете добавить при запуске сеанса (к сожалению, не для всего компьютера, потому что PulseAudio — это служба, которая работает независимо для каждого пользователя).

#!/bin/bash
index=$(pacmd list-sources | egrep 'index|ports|analog-input-headset-mic' | egrep '\*\sindex:\s+[0-9]'  | cut -d':' -f2);

acpi_listen | while IFS= read -r line;
do
    if [ "$line" = "jack/headphone HEADPHONE plug" ]
    then
       pacmd set-source-port $index analog-input-headset-mic;
    elif [ "$line" = "jack/headphone HEADPHONE unplug" ]
    then
       pacmd set-source-port $index analog-input-internal-mic;
    fi
done

Есть решение, которое можно найти по первой ссылке моих источников, но оно, к сожалению, работает не на всех ПК. Вот ссылки, которые позволили мне создать этот скрипт

1
ответ дан 19 October 2020 в 07:02

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

Похожие вопросы: