Форум русскоязычного сообщества Ubuntu


Получить помощь и пообщаться с другими пользователями Ubuntu можно
на irc канале #ubuntu-ru в сети Freenode
и в Jabber конференции ubuntu@conference.jabber.ru

Автор Тема: [Не решено] Переключение звука между монитором и телевизором  (Прочитано 1681 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Gadd

  • Автор темы
  • Участник
  • *
  • Сообщений: 209
    • Просмотр профиля
Хочу сделать переключение вывода изображения и звука с монитора на телевизор (hdmi) по горячим клавишам. Всё работает, кроме звука.
Звук переключаю так (одна команда должна переключать на монитор, вторая - на телевизор):
pacmd set-default-sink alsa_output.pci-0000_00_14.2.analog-stereo
pacmd set-default-sink alsa_output.pci-0000_01_00.1.hdmi-stereo-extra1

alsa_output.pci-0000_00_14.2.analog-stereo и alsa_output.pci-0000_01_00.1.hdmi-stereo-extra1 - имена моих синков, их номера почему-то иногда меняются, поэтому я и используюь имена вместо номеров. Хотя и hdmi как-то был alsa_output.pci-0000_01_00.1.hdmi-stereo

Читал, что в некоторых случаях необходимо так же перевести все sink-input на соответсвующий sink (я так понял, это всё, что в данный момент проигрывает звук):
pacmd move-sink-input <sink-input-number> <sink>

Дело в том, что sink-input каждый раз разные и их может быть несколько, и придется их искать скриптом, в принципе не проблема, есть где скопипастить.
При выполнении set-default-sink в GUI настройках звука выбирается соответсвующее устройство, но звук не переключается, при выборе мышкой всё переключается.

Вопрос - как сделать проще без заморочек и скриптовых поисков этих sink-input?
« Последнее редактирование: 10 Июнь 2014, 20:33:25 от Gadd »
Ubuntu 16.04 x86_64
AMD FX X8 8350, Gigabyte 990FXA-UD3 (rev 3.0), GeForce GTX760 2ГБ
Установлены все обновления

Оффлайн Gadd

  • Автор темы
  • Участник
  • *
  • Сообщений: 209
    • Просмотр профиля
В общем сделал так:
#!/bin/bash

if [[ $1 = dvi ]]; then
Sink=alsa_output.pci-0000_00_14.2.analog-stereo
Output=DVI-I-0
Disable_output=HDMI-0
elif [[ $1 = hdmi ]]; then
Sink=alsa_output.pci-0000_01_00.1.hdmi-stereo-extra1
Output=HDMI-0
Disable_output=DVI-I-0
else exit 0
fi

xrandr --output $Output --auto &&
xrandr --output $Disable_output --off &&
pacmd set-default-sink $Sink

pactl list short sink-inputs|while read stream; do
    streamId=$(echo $stream|cut '-d ' -f1)
    pactl move-sink-input "$streamId" "$Sink"
done

скрипт запускать с параметром dvi или hdmi в  зависимости от того, на что переключаем
Ну и вешаем на горячие клавиши команды такого вида:
bash -c "path/switchmon dvi"где path - путь к скрипту, switchmon - название скрипта, dvi - параметр
Ubuntu 16.04 x86_64
AMD FX X8 8350, Gigabyte 990FXA-UD3 (rev 3.0), GeForce GTX760 2ГБ
Установлены все обновления

Оффлайн Gadd

  • Автор темы
  • Участник
  • *
  • Сообщений: 209
    • Просмотр профиля
UPD
Снова здорова!
Обнаружилась проблема: в вышеописанной конструкции переключаются звуки которые в данный момент звучат. Звуки, которые должны появиться в приложении, запускаемом после переключения монитора, не появляются  :(
Ubuntu 16.04 x86_64
AMD FX X8 8350, Gigabyte 990FXA-UD3 (rev 3.0), GeForce GTX760 2ГБ
Установлены все обновления

 

Страница сгенерирована за 0.07 секунд. Запросов: 25.