Любой способ автоматически установить мой звук на HDMI, когда кабель подключен и выключен, когда он подключен?

Было бы здорово, если бы у меня было программное обеспечение для этого, но я считаю, что сценарий bash неизбежен. Однако, как человек, который никогда не писал ни одной строки кода bash, мне очень нужна была большая помощь. С чего начать?

1
задан 24 April 2017 в 18:18

2 ответа

Извините, у меня нет правильного ответа для вас, но я могу предложить вам следующее самое лучшее: Создайте переключатель для следующего аудиовыхода с щелчком мыши.

Мотивация к Решение. В моей системе есть порт HDMI + аудио, аудио-бар USB и зеленый аудиоразъем. Когда выбран USB-звук, моя система не обнаруживает, когда аудиоразъем моих наушников (un) подключен. Поэтому я не могу использовать аппаратные события и реагировать на них. [D1] Поэтому я решил использовать pacmd; инструмент для управления аудиосистемой. Он может использоваться в интерактивном режиме (pacmd) или с аргументами (pacmd --help).

Мотивация к решению: Скрипт и пусковая установка на моей панели Xubuntu. Щелчок на панели запуска переключится на следующий приемник звука. Если какая-либо программа воспроизводит звук, ее приемник звукового входного сигнала принудительно подается на приемник вывода, а уведомление уведомления отправляется, чтобы сообщить, какой приемник аудиовыхода активен.

notify-send количество аудиоустройств и их имена, вероятно, различны в вашей системе, поэтому требуются некоторые (незначительные) изменения в сценарии. Комментарии, помещенные в скрипт (далее вниз), помогут его настроить. [D7] Copy & amp; вставьте скрипт в файл с именем ToggleAudioOutput. Сделайте его исполняемым. Filemanager -> Rightclik -> Permissions -> Tick Allow ... В терминале -> Изменить каталог в расположение файла.

$ chmod + x ToggleAudioOutput

Launcher on Panel: Щелкните правой кнопкой мыши панель -> Панель> Добавить новые элементы -> Пусковая установка. Нажмите «Добавить & amp; Закрыть. [D18] Справа появляется пустая пусковая установка; щелкните правой кнопкой мыши. Свойства -> click small plus Название: ToggleAudioOutput Команда: найдите место, где вы сохранили файл, и щелкните по нему. Значок: выберите хороший. Нажмите «Создать» и «amp; Закрыть. Щелкните правой кнопкой мыши пусковую установку -> Переместите ее в нужное место на панели.

Ссылка на рабочем столе: Откройте Диспетчер файлов и перейдите к местоположению ToggleAudioOutput. Щелкните правой кнопкой мыши по нему -> Отправить на рабочий стол (создать ссылку)

Сообщите мне, если это вам полезно! [D34]

#!/bin/bash # -- ToggleAudioOutput -- Script to change audio output sink. # # The script is based on the output of this command line. # Of course the output varies per system. Copy & paste this command line # in a terminal to find the number of devices and their names. # # $ pacmd list-sinks | grep -e 'index:' -e 'alsa.name' | awk 'NR%2{printf "%s",$0;next;}1' # index: 0 alsa.name = "HDMI 0" # * index: 1 alsa.name = "USB Audio" # index: 2 alsa.name = "ALC662 rev3 Analog" # # Output sequence doesn't change except for the asterix (active device) # and after (un)plugging usb audio devices. If your system has more or # less devices, change the case statement accordingly. ############################################################################## # Determine the current audio output sink, 0, 1 or 2. OutputIndex=$(pacmd list-sinks | grep '\* index:' | awk '{ print $3 }') # To force output to USB Audio add the command: ToggleAudioOutput 1 # in an entry in Session and Startup -> Application Autostart. if [ "$1" == "1" ] then OutputIndex=1; Name="USB Audio" else case $OutputIndex in 0) OutputIndex=1; Name="USB Audio" ;; 1) OutputIndex=2; Name="Speaker/Headphones" ;; 2) OutputIndex=0; Name="HDMI 0" # I don't use HDMI audio, so delete this and the following line if needed. OutputIndex=1; Name="USB Audio" ;; esac fi ############################################################################## # Do the work... pacmd set-default-sink $OutputIndex notify-send "Audio output device set to: >$Name<" -t 5000 # Any programs playing audio? Force them to the current audio output sink. for InputIndex in $(pacmd list-sink-inputs | grep 'index:' | awk '{print $2}') do pacmd move-sink-input $InputIndex $OutputIndex done ############################################################################## #EOF
0
ответ дан 18 July 2018 в 14:21

Извините, у меня нет правильного ответа для вас, но я могу предложить вам следующее самое лучшее: Создайте переключатель для следующего аудиовыхода с щелчком мыши.

Мотивация к Решение. В моей системе есть порт HDMI + аудио, аудио-бар USB и зеленый аудиоразъем. Когда выбран USB-звук, моя система не обнаруживает, когда аудиоразъем моих наушников (un) подключен. Поэтому я не могу использовать аппаратные события и реагировать на них. [D1] Поэтому я решил использовать pacmd; инструмент для управления аудиосистемой. Он может использоваться в интерактивном режиме (pacmd) или с аргументами (pacmd --help).

Мотивация к решению: Скрипт и пусковая установка на моей панели Xubuntu. Щелчок на панели запуска переключится на следующий приемник звука. Если какая-либо программа воспроизводит звук, ее приемник звукового входного сигнала принудительно подается на приемник вывода, а уведомление уведомления отправляется, чтобы сообщить, какой приемник аудиовыхода активен.

notify-send количество аудиоустройств и их имена, вероятно, различны в вашей системе, поэтому требуются некоторые (незначительные) изменения в сценарии. Комментарии, помещенные в скрипт (далее вниз), помогут его настроить. [D7] Copy & amp; вставьте скрипт в файл с именем ToggleAudioOutput. Сделайте его исполняемым. Filemanager -> Rightclik -> Permissions -> Tick Allow ... В терминале -> Изменить каталог в расположение файла.

$ chmod + x ToggleAudioOutput

Launcher on Panel: Щелкните правой кнопкой мыши панель -> Панель> Добавить новые элементы -> Пусковая установка. Нажмите «Добавить & amp; Закрыть. [D18] Справа появляется пустая пусковая установка; щелкните правой кнопкой мыши. Свойства -> click small plus Название: ToggleAudioOutput Команда: найдите место, где вы сохранили файл, и щелкните по нему. Значок: выберите хороший. Нажмите «Создать» и «amp; Закрыть. Щелкните правой кнопкой мыши пусковую установку -> Переместите ее в нужное место на панели.

Ссылка на рабочем столе: Откройте Диспетчер файлов и перейдите к местоположению ToggleAudioOutput. Щелкните правой кнопкой мыши по нему -> Отправить на рабочий стол (создать ссылку)

Сообщите мне, если это вам полезно! [D34]

#!/bin/bash # -- ToggleAudioOutput -- Script to change audio output sink. # # The script is based on the output of this command line. # Of course the output varies per system. Copy & paste this command line # in a terminal to find the number of devices and their names. # # $ pacmd list-sinks | grep -e 'index:' -e 'alsa.name' | awk 'NR%2{printf "%s",$0;next;}1' # index: 0 alsa.name = "HDMI 0" # * index: 1 alsa.name = "USB Audio" # index: 2 alsa.name = "ALC662 rev3 Analog" # # Output sequence doesn't change except for the asterix (active device) # and after (un)plugging usb audio devices. If your system has more or # less devices, change the case statement accordingly. ############################################################################## # Determine the current audio output sink, 0, 1 or 2. OutputIndex=$(pacmd list-sinks | grep '\* index:' | awk '{ print $3 }') # To force output to USB Audio add the command: ToggleAudioOutput 1 # in an entry in Session and Startup -> Application Autostart. if [ "$1" == "1" ] then OutputIndex=1; Name="USB Audio" else case $OutputIndex in 0) OutputIndex=1; Name="USB Audio" ;; 1) OutputIndex=2; Name="Speaker/Headphones" ;; 2) OutputIndex=0; Name="HDMI 0" # I don't use HDMI audio, so delete this and the following line if needed. OutputIndex=1; Name="USB Audio" ;; esac fi ############################################################################## # Do the work... pacmd set-default-sink $OutputIndex notify-send "Audio output device set to: >$Name<" -t 5000 # Any programs playing audio? Force them to the current audio output sink. for InputIndex in $(pacmd list-sink-inputs | grep 'index:' | awk '{print $2}') do pacmd move-sink-input $InputIndex $OutputIndex done ############################################################################## #EOF
0
ответ дан 24 July 2018 в 20:22

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

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