Измените звук из командной строки

Я написал сценарий, который меняет мой вывод на экран с DVI (мой монитор) на HDMI (мой телевизор) с помощью xrandr. В этом скрипте я также хотел бы изменить свой аудиовыход с аналоговой линии на HDMI.

Я пробовал следующее:

pacmd set-default-sink alsa_output.pci-0000_01_00.1.hdmi-stereo-extra1 

Похоже, что некоторые звуки (например, звук, который вы слышите, когда вы настраиваете громкость на рабочем столе), на hdmi, но по умолчанию звук для приложений (например, режим большого изображения в паре и различные игры) установлен на аналоговый. Чтобы изменить его на HDMI, мне нужно щелкнуть панель настроек звука на рабочем столе и изменить ее вручную на HDMI.

Как я могу правильно изменить выход звука из командной строки? Или, наоборот, что именно настройки Ubuntu звучат под капотом, когда я меняю звук?

Я запускаю Ubuntu 15.10.

Изменение устройства вывода по умолчанию действительно может быть выполнено с помощью интерфейса CLI pulseaudio:

 pacmd set-default-sink <sink_name|index> 

Однако это устройство по умолчанию может быть изменено с помощью восстановления модуля-потока, которое по умолчанию загружается. Этот модуль также восстановит устройство, если мы не вызываем его со следующим параметром:

 load-module module-stream-restore restore_device=false 

Это нужно поместить в наш default.pa чтобы заменить соответствующую строку там.

Чтобы сделать это изменение действительным для всех пользователей, нам необходимо отредактировать /etc/pulse/default.pa как root. Однако лучше всего работать с копией этого файла в нашем каталоге пользователей, где мы можем поместить его в ~/.config/pulse/

 cp /etc/pulse/default.pa ~/.config/pulse/ 

Настройка, которую мы сделали там, будет отменена в /etc/pulse , поэтому здесь можно поэкспериментировать. Если что-то пойдет не так, мы просто удалим этот файл, чтобы позволить pulseaudio снова использовать системные значения по умолчанию.

Все изменения в default.pa – это сброс сервера pulseaudio для вступления в силу. Это можно сделать с помощью:

 pulseaudio -k 

Также см:
Как изменить пульсовый приемник с помощью «pacmd set-default-sink» во время воспроизведения?