Было бы здорово, если бы у меня было программное обеспечение для этого, но я считаю, что сценарий bash неизбежен. Однако, как человек, который никогда не писал ни одной строки кода bash, мне очень нужна была большая помощь. С чего начать?
Извините, у меня нет правильного ответа для вас, но я могу предложить вам следующее самое лучшее: Создайте переключатель для следующего аудиовыхода с щелчком мыши.
Мотивация к Решение. В моей системе есть порт HDMI + аудио, аудио-бар USB и зеленый аудиоразъем. Когда выбран USB-звук, моя система не обнаруживает, когда аудиоразъем моих наушников (un) подключен. Поэтому я не могу использовать аппаратные события и реагировать на них. [D1] Поэтому я решил использовать pacmd; инструмент для управления аудиосистемой. Он может использоваться в интерактивном режиме (pacmd) или с аргументами (pacmd --help).
Мотивация к решению: Скрипт и пусковая установка на моей панели Xubuntu. Щелчок на панели запуска переключится на следующий приемник звука. Если какая-либо программа воспроизводит звук, ее приемник звукового входного сигнала принудительно подается на приемник вывода, а уведомление уведомления отправляется, чтобы сообщить, какой приемник аудиовыхода активен.
notify-send количество аудиоустройств и их имена, вероятно, различны в вашей системе, поэтому требуются некоторые (незначительные) изменения в сценарии. Комментарии, помещенные в скрипт (далее вниз), помогут его настроить. [D7] Copy & amp; вставьте скрипт в файл с именем ToggleAudioOutput. Сделайте его исполняемым. Filemanager -> Rightclik -> Permissions -> Tick Allow ... В терминале -> Изменить каталог в расположение файла.
$ chmod + x ToggleAudioOutputLauncher 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
Извините, у меня нет правильного ответа для вас, но я могу предложить вам следующее самое лучшее: Создайте переключатель для следующего аудиовыхода с щелчком мыши.
Мотивация к Решение. В моей системе есть порт HDMI + аудио, аудио-бар USB и зеленый аудиоразъем. Когда выбран USB-звук, моя система не обнаруживает, когда аудиоразъем моих наушников (un) подключен. Поэтому я не могу использовать аппаратные события и реагировать на них. [D1] Поэтому я решил использовать pacmd; инструмент для управления аудиосистемой. Он может использоваться в интерактивном режиме (pacmd) или с аргументами (pacmd --help).
Мотивация к решению: Скрипт и пусковая установка на моей панели Xubuntu. Щелчок на панели запуска переключится на следующий приемник звука. Если какая-либо программа воспроизводит звук, ее приемник звукового входного сигнала принудительно подается на приемник вывода, а уведомление уведомления отправляется, чтобы сообщить, какой приемник аудиовыхода активен.
notify-send количество аудиоустройств и их имена, вероятно, различны в вашей системе, поэтому требуются некоторые (незначительные) изменения в сценарии. Комментарии, помещенные в скрипт (далее вниз), помогут его настроить. [D7] Copy & amp; вставьте скрипт в файл с именем ToggleAudioOutput. Сделайте его исполняемым. Filemanager -> Rightclik -> Permissions -> Tick Allow ... В терминале -> Изменить каталог в расположение файла.
$ chmod + x ToggleAudioOutputLauncher 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