Я использую два звуковых устройства, обычный аналоговый выход и звук через HDMI. Когда я не использую телевизор, я оставляю его выключенным и переключаюсь на динамики. Поскольку я делаю это регулярно, я хотел бы, чтобы сценарий сделал это для меня.
У меня был скрипт, который переключался между ними, но только для текущего приложения, производящего звук. Я потерял его и не могу найти интернет-источник.
Может ли кто-нибудь помочь мне воссоздать этот сценарий?
Я нашел сценарий наконец. Этот сценарий переместит все входные приемники (т.е. Ваша музыка, видео звук и т.д.) к Вашему другому звуковому устройству. Если Вы запустите скрипт снова, то он положит обратно все приемники к Вашему исходному звуковому устройству. (Я только протестировал это на двух звуковых устройствах).
Инструкция относительно того, как установить:
Измените полномочия файла позволить выполнение.
или
Дважды щелкните по файлу и нажмите выполненный. Это изменит выходное звуковое устройство.
Я затем добавил опцию на значке настроек в средстве запуска единицы для простоты доступа с помощью Тонкой настройки Ubuntu.Приятного отдыха!
Код:
#!/bin/bash
declare -i sinks=(`pacmd list-sinks | sed -n -e 's/\**[[:space:]]index:[[:space:]]\([[:digit:]]\)/\1/p'`)
declare -i sinks_count=${#sinks[*]}
declare -i active_sink_index=`pacmd list-sinks | sed -n -e 's/\*[[:space:]]index:[[:space:]]\([[:digit:]]\)/\1/p'`
declare -i next_sink_index=${sinks[0]}
#find the next sink (not always the next index number)
declare -i ord=0
while [ $ord -lt $sinks_count ];
do
echo ${sinks[$ord]}
if [ ${sinks[$ord]} -gt $active_sink_index ] ; then
next_sink_index=${sinks[$ord]}
break
fi
let ord++
done
#change the default sink
pacmd "set-default-sink ${next_sink_index}"
#move all inputs to the new sink
for app in $(pacmd list-sink-inputs | sed -n -e 's/index:[[:space:]]\([[:digit:]]\)/\1/p');
do
pacmd "move-sink-input $app $next_sink_index"
done
#display notification
declare -i ndx=0
pacmd list-sinks | sed -n -e 's/device.description[[:space:]]=[[:space:]]"\(.*\)"/\1/p' | while read line;
do
if [ $(( $ord % $sinks_count )) -eq $ndx ] ; then
notify-send -i notification-audio-volume-high --hint=string:x-canonical-private-synchronous: "Sound output switched to" "$line"
exit
fi
let ndx++
done;
Весь кредит переходит к парням сюда, я просто повторно нашел ответ на свой вопрос.