PulseAudio pacmd
nie jest w stanie przełączać domyślnych odbiorników, gdy na wejściu odbiornika aktywnie odtwarzany jest strumień. Istnieje jednak sposób, aby to osiągnąć.
Zmiana domyślnego ujścia z wiersza poleceń
Najpierw musimy ustalić numer indeksu zlewów, które chcemy przełączyć. Można to zrobić dzwoniąc:
pacmd list-sinks
W zależności od naszego systemu daje to mniej lub bardziej długą listę zlewów i właściwości, które są obecnie dostępne:
>>> 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
Lub name
podany tutaj jest to, czego potrzebujemy dla Adresowanie zlewu poprzez linię poleceń. Obecny domyślny zlew jest oznaczony gwiazdką (tutaj 0
).
Aby móc przełączyć domyślne ujścia z wiersza polecenia, może być konieczne wyłączenie przywracania urządzenia docelowego strumienia poprzez edycję wiersza odpowiadającego w /etc/pulse/default.pa
:
load-module module-stream-restore restore_device=false
Aby zmienić domyślny zlew wyjściowy na zlew 1
, uruchamiamy
pacmd set-default-sink 1
Sukces można zwizualizować, otwierając menu Ustawienia dźwięku .
Przenoszenie strumienia do innego zlewu
Zmiana domyślnego ujścia, gdy mamy aktywny strumień wejściowy odtwarzany do danego ujścia , nie ma żadnego efektu . Należy to raczej zrobić, przenosząc te dane wejściowe do innego zlewu.
pacmd list-sink-inputs
powie nam indeks strumienia wejściowego
>>> 1 sink input(s) available.
index: 5
driver: <protocol-native.c>
Wiemy teraz, że chcemy przenieść strumień wejściowy 5
do zatonięcia 1
przez wywołanie
pacmd move-sink-input 5 1
lub wróć do zlewu, 0
jeśli chcemy. Zostanie to wykonane natychmiast, bez konieczności zatrzymywania odtwarzania.
Zmiana domyślnego zlewu podczas gry
Oczywiście możemy połączyć te dwa polecenia, aby natychmiast przełączać domyślne ujścia podczas odtwarzania, np. Za pomocą
pacmd set-default-sink 1 & pacmd move-sink-input 5 1
Wadą tej metody jest to, że indeks strumienia wejściowego zmienia się za każdym razem, gdy zatrzymujemy i ponownie uruchamiamy odtwarzacz muzyki. Dlatego zawsze musimy znaleźć bieżący indeks strumienia, zanim będziemy mogli przełączyć się za pomocą linii poleceń.
pactl list short sinks
>4 bluez_sink.FC_A8_9A_2C_EB_0B module-bluez5-device.c s16le 1ch 8000Hz IDLE
teraz po prostu odwołaj się do nazwypactl set-default-sink bluez_sink.FC_A8_9A_2C_EB_0B