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
set-default-sink
ale nadal będziesz potrzebować numeru indeksumove-sink-input
.0 sink input(s) available.
? Ale ten gówniany odtwarzacz Flash wciąż odtwarza dźwięk?client(s) logged in
pacmd list
Napisałem prosty skrypt, aby automatycznie przenosić wszystkie wejścia sink.
Stosowanie:
./movesinks.sh <sink number>
źródło
Poprawiona wersja skryptu @Gaco
moja kopia środowiska uruchomieniowego znajduje się na github i zawiera również automatyczne przełączanie kanału głównego dla
kmix
źródło
Istnieje skrypt rubinowy (który pierwotnie rozwidlałem i przepisałem sekcje), który pozwala zmienić domyślne zlewy, głośność i status wyciszenia z wiersza poleceń.
źródło
Zebrałem rzeczy z kilku różnych miejsc i wymyśliłem ten skrypt, aby skonfigurować JAMBOX po sparowaniu. Twój MAC będzie oczywiście inny. Ponieważ kontroluję głośność JAMBOX za pośrednictwem aplikacji Clementine, w moim przypadku najlepiej działa 130% głośności. Możesz to zmienić wraz z plikiem rhythmbox.png (był to jedyny obraz głośnika, jaki mogłem znaleźć na komputerze). Sprawdzanie błędów jest szczątkowe, ale działa całkiem niezawodnie. Dla wygody umieściłem to w programie uruchamiającym komputery stacjonarne na netbooku ASUS.
źródło
pactl list short
. Możesz uprościć następujący wiersz, wykonując cięcie bezpośrednio po:pactl list short sink-inputs | cut -f1 | while read streamId
działa dla mnie.ZLEWY PRZEŁĄCZNIKOWE.
Skrypt Gaco z jeszcze jedną linią do przełączania kół między dostępnymi zlewami.
źródło
A oto skrypt, który będzie również przełączał się między zlewami:
http://marginalhacks.com/index.0.html#pulse-switch-out
Oto poniższy skrypt:
źródło
Opierając się na odpowiedzi Gaco, przepisałem ją trochę na własny użytek. Może ktoś uzna to za przydatne. Służy do przełączania głośników USB i zestawu słuchawkowego USB do gier.
źródło
Myślę, że jest jeszcze jedna opcja, o której warto wspomnieć i jest ona dostępna na oficjalnej stronie FAQ na temat PulseAudio na freedesktop.org . Pod następującym tytułem:
Udostępniają następujący skrypt:
źródło
Dostosowałem @mpapis do prostego „przełączania sink0 lub sink1” podczas uruchamiania:
źródło