PulseAudio pacmd
не способен переключать приемники по умолчанию, пока на вход приемника идет активно воспроизводимый поток. Однако есть способ все еще достичь этого.
Изменение приемника по умолчанию из командной строки
Сначала нам нужно определить порядковый номер приемников, которые мы хотим переключить. Это можно сделать, позвонив по телефону:
pacmd list-sinks
В зависимости от нашей системы это даст вам более или менее длинный список приемников и свойств, которые в настоящее время доступны:
>>> 2 sink(s) available.
* index: 0
name: <alsa_output.pci-0000_01_00.1.hdmi-stereo-extra1>
driver: <module-alsa-card.c>
:
:
index: 1
name: <alsa_output.pci-0000_00_14.2.analog-stereo>
driver: <module-alsa-card.c>
Здесь index
или то name
, что нам нужно для адресации приемника из командной строки. Текущий приемник по умолчанию помечен звездочкой (здесь 0
).
Чтобы иметь возможность переключать приемники по умолчанию из командной строки, нам может потребоваться отключить восстановление целевого устройства потока , отредактировав соответствующую строку в /etc/pulse/default.pa
:
load-module module-stream-restore restore_device=false
Чтобы изменить выходной приемник по умолчанию на сток, 1
мы запускаем
pacmd set-default-sink 1
Успех можно визуализировать, открыв меню « Настройки звука» .
Перемещение потока в другую раковину
Изменение приемника по умолчанию, пока у нас есть активный входной поток, воспроизводимый для данного приемника , не имеет никакого эффекта . Это должно быть сделано путем перемещения этого входа в другой приемник.
pacmd list-sink-inputs
скажет нам индекс входного потока
>>> 1 sink input(s) available.
index: 5
driver: <protocol-native.c>
Теперь мы знаем, что хотим переместить поток ввода 5
в сток 1
, вызвав
pacmd move-sink-input 5 1
или обратно, чтобы утонуть, 0
если мы хотим. Это будет сделано немедленно без необходимости остановки воспроизведения.
Изменение раковины по умолчанию во время игры
Конечно, мы можем объединить эти две команды для немедленного переключения приемников по умолчанию во время воспроизведения, например, с помощью
pacmd set-default-sink 1 & pacmd move-sink-input 5 1
Недостаток этого метода заключается в том, что индекс входного потока изменяется каждый раз, когда мы останавливаем и перезапускаем музыкальный проигрыватель. Поэтому нам всегда нужно выяснить текущий индекс потока, прежде чем мы сможем переключиться с помощью строки комманд.
pactl list short sinks
>4 bluez_sink.FC_A8_9A_2C_EB_0B module-bluez5-device.c s16le 1ch 8000Hz IDLE
теперь просто ссылаться на имяpactl set-default-sink bluez_sink.FC_A8_9A_2C_EB_0B