Чтобы переключиться на аудиовыход HDMI (монитора) и вернуться к обычному аудиовыходу через системный аудиоразъем (для наушников, поскольку на моем мониторе нет звука), я обнаруживаю, что открываю настройки звука и каждый раз выбираю правильный канал. Есть ли способ, которым я могу создать кнопку переключения на панели или назначить некоторую комбинацию клавиш для переключения, так как я делаю переключение так часто.
:aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: Intel [HDA Intel], device 0: STAC92xx Analog [STAC92xx Analog]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: Intel [HDA Intel], device 3: HDMI 0 [HDMI 0]
Subdevices: 0/1
Subdevice #0: subdevice #0
card 0: Intel [HDA Intel], device 7: STAC92xx Digital [STAC92xx Digital]
Subdevices: 1/1
Subdevice #0: subdevice #0
sound
software-recommendation
iJeeves
источник
источник
Ответы:
С помощью pulseaudio мы можем выбрать выходной приемник из командной строки:
Эта команда может использоваться в панели запуска, скрипте или даже назначаться сочетанию клавиш для быстрого переключения между различными приемниками. Пожалуйста, замените "SINKNAME" именем или номером желаемой раковины. Список известных приемников с соответствующими номерами и именами задается командой:
Примечание. Изменение выходного приемника через интерфейс командной строки может вступить в силу только в том случае, если чтение целевого устройства потока отключено. Это можно сделать, отредактировав соответствующую строку в
/etc/pulse/default.pa
:В качестве альтернативы мы могли бы запустить pulseaudio для одновременного вывода звука на внутреннее аудиоустройство и на hdmi-устройство, запустив paprefs с возможностью добавить виртуальное устройство вывода:
источник
pacmd set-default-sink "alsa_output.pci-0000_00_1b.0.analog-stereo"
иpacmd set-default-sink "alsa_output.pci-0000_00_1b.0.hdmi-stereo"
работает только после выбора соответствующего профиля в настройках звука. Если у меня установлен HDMI, и я запускаю команду pacmd для аналогового стерео, я получаю ошибку.Sink alsa_output.pci-0000_00_1b.0.analog-stereo does not exist.
Но если я вручную выбираю профиль из графического интерфейса настройки звука и запускаю ту же команду, я не получаю сообщение об ошибке. Так что это не помогает переключаться.Я нашел это очень раздражающим для себя и написал скрипт для переключения вывода:
а затем привязать неиспользуемую клавишу на клавиатуре для ее выполнения (см. Как связать пользовательские команды с сочетаниями клавиш? )
источник
Еще один сценарий переключения Sink
протестировано на Ubuntu 16.04
Но этот позволяет переключать только звук приложения, которое вы хотите.
ИСПОЛЬЗОВАНИЕ: Фокус приложения, которое вы хотите изменить его приемник и запустить этот скрипт. Это оно!!!
Этот сценарий обнаруживает приложение, находящееся в фокусе, находит все воспроизводимые с него аудиофайлы и переключает их на следующий доступный приемник.
https://gist.github.com/madacol/1a0d8569166886d2d98f073f7f5c5fe3
Объясняя сценарий
Нам нужно найти PID приложения в фокусе
Но сначала нам нужен XID
Затем вставьте его сюда,
$xid
чтобы получить pid приложенияТеперь нам нужно найти входные данные, связанные с этим PID.
Сначала давайте линеаризуем вывод команды,
pacmd list-sink-inputs
чтобы перечислить один вход-приемник в каждой строке, показывая ее индекс, приемник и pid в одной строке.давайте проанализируем это шаг за шагом:
grep -E 'index:|sink:|process.id
только сохранить строки , которые содержатindex:
,sink:
илиprocess.id
tr '\n' ' '
объединяет все линииtr -d '"'
удаляет все"
символы Нужно получить пид без кавычекsed -e 's/index:/\n/g'
заменяет всеindex:
вхождения символом новой строки\n
tail -n +2
удаляет первую строку, потому что она пустаИ результат примерно такой:
Давайте разберем одну строку, чтобы понять, что это значит:
182
является индексом входного потока,0
является индексом приемника, и13752
в конце, является pid принадлежащего приложенияЗатем мы перебираем каждую строку
И, наконец, отфильтруйте только тот pid входного сигнала, который соответствует pid целевого приложения.
Извлечение данных
С помощью
awk
мы можем получить необходимые нам элементыПолучить число приемников, чтобы узнать, когда вращение приемников должно возобновиться с 0.
Чтобы найти следующий приемник, нам нужно перебрать список приемников, чтобы узнать, какой из них соответствует current_sink_index и узнать индекс следующего приемника.
И наконец, мы перемещаем вход-приемник для воспроизведения в next_sink_index
Примечание по Ubuntu 16.04:
При настройке сочетания клавиш я не мог заставить его работать с менеджером ярлыков в Ubuntu. Поэтому мне пришлось установить compizconfig-settings-manager
источник
Если вы используете Gnome Shell вместо Unity, вы можете установить расширение ниже. После этого вы сможете переключаться с ярлыка громкости на верхней панели. https://extensions.gnome.org/extension/142/output-device-chooser-on-volume-menu/
источник
Поскольку на скриншоте видна только одна звуковая карта, я думаю, что выход этой звуковой карты должен быть переключен.
Например: у меня есть ноутбук с одной встроенной звуковой картой, но он имеет цифровой выход (SPDIF) в док-станции.
Итак, что я хотел сделать, это переключить активный выход или «Профиль» в pulseaudio.
Я нашел команды, которые делают именно это:
То, что я сделал, чтобы получить правильные названия для желаемой настройки вывода - здесь, цифровой выход, но аналоговый (микро) вход - было:
источник
Я тоже пытался найти решение этой проблемы. Начиная с Ubuntu 11.04 это не представляется возможным напрямую, я нашел это руководство только для добавления HDMI и Analog в качестве отдельных выходов, поэтому pacmd показывает 3 приемника. Затем можно переключаться между приемниками, используя приведенные выше команды. ( см. также )
Но, по-видимому, Ubuntu 11.11 получит PulseAudio с системой обнаружения джека. Согласно веб-сайту ниже, Дэвид Хеннингссон кодировал обнаружение через udev, поэтому импульсное аудио автоматически переключается на последний добавленный выход, включая переключение между различными профилями одной и той же звуковой карты (как в случае с вашей и моей настройкой). (см. здесь )
Поэтому я надеюсь, что это сработает, когда я попробую финальную версию в следующую пятницу.
источник
Основываясь на многих предыдущих ответах, я написал сценарий, который устанавливает приемник воспроизведения, чередующийся между доступными.
Лучший способ использовать его - создать сочетание клавиш для его запуска, поэтому при каждом нажатии этой комбинации клавиш звук перенаправляется на следующий доступный приемник.
Код доступен здесь: https://gist.github.com/germank/7fa2fb07d45a838bf890addadd8bea8c
источник
В моем случае аналоговых вариантов нет в списке. Установите pavucontrol:
sudo apt install pavucontrol
Может решить проблему, запустив приложение:
pavucontrol
(введите)Теперь я могу здесь озвучивать и выбирать разные профили (под Linux Mint):
источник
Альтернативой индикатору Sound Switcher (который требует добавления PPA) является создание команды (или сценария) и вызов ее с помощью ярлыка:
В моем случае был
hdmi-stereo-extra1+input
профиль, поэтому в одной строке было бы:Вы можете использовать собственный ярлык (
gnome-control-center keyboard
) для его выполненияbash -c
(предупредит вас, если есть какой-либо конфликт с другим ярлыком):Я использую:
Также вы можете добавить
alias
в свой.bashrc
.Протестировано на Ubuntu 16.04 и 18.04
Если вы не хотите описывать поведение сценария, я внес некоторые изменения, основанные на ответе @ user829996:
источник
Я написал индикаторный апплет, который позволяет переключать вывод звука.
источник