Mam zestaw ładnych słuchawek bezprzewodowych, których od czasu do czasu używam, oprócz moich głośników i normalnego mikrofonu.
Chciałbym napisać skrypt przełączający między jednym źródłem wejściowym i wyjściowym a drugim, w zasadzie przełącznikiem między moimi słuchawkami a głośnikami + mikrofonem.
Chciałbym zmienić między tym:
...i to:
Czy jest dla mnie sposób skryptu transferu między dwoma wejściami i wyjściami? Zasadniczo szukam czegoś takiego:
CURRENT_INPUT="$(get-current-input-name)"
CURRENT_OUTPUT="$(get-current-output-name)"
if [ "$CURRENT_INPUT" == "Vengeance 2000" ]; then
set-current-input "HD Pro Webcam C920"
else
set-current-input "Vengeance 2000"
fi
if ["$CURRENT_OUTPUT" == "Vengeance 2000" ]; then
set-current-output "Built-in Audio"
else
set-current-output "Vengeance 2000"
fi
Czy istnieje sposób na napisanie tego skryptu?
audio
alsa
pulseaudio
Naftuli Kay
źródło
źródło
man pactl
rzucić okiem na opcje wiersza poleceń PulseAudio.Odpowiedzi:
Jak zauważyła @ Teresa-e-Junior,
pactl
jest to narzędzie do użycia:Przede wszystkim możemy chcieć uzyskać identyfikatory naszych zlewozmywaków PA. W moim systemie otrzymuję to:
Zlew 1 jest obecnie moim domyślnym zlewem.
Ale teraz chcę, aby wszystkie moje obecne i przyszłe strumienie były odtwarzane przez HDMI (tj. Sink 0).
Istnieje polecenie ustawienia domyślnego ujścia PulseAudio, ale wydaje się, że nie ma to żadnego wpływu na mój komputer:
Zamiast tego wydaje się, że nowe strumienie są podłączone do zlewu, do którego ostatnio przeniesiono strumień.
Powiedzmy więc pactl, aby przesunął wszystkie aktualnie odtwarzane strumienie do zatonięcia
0
. Najpierw musimy je wymienić:Ok, mamy dwa strumienie (identyfikatory 290 i 295), które są dołączone do zlewu
1
.Przenieśmy je do tonięcia
0
:Tak powinno być. Teraz musimy tylko stworzyć skrypt, który wykona dla nas pracę:
Możesz to nazwać za pomocą identyfikatora ujścia lub nazwy ujścia jako parametru (tj. Albo
0
czegoś w tym rodzajualsa_output.pci-0000_01_00.1.hdmi-surround
).Teraz możesz dołączyć ten skrypt do zdarzenia udev lub skrótu klawiszowego.
źródło
0 sink input(s) available.
? Ale ten gówniany odtwarzacz Flash wciąż odtwarza dźwięk? I widzę Flashclient(s) logged in
pacmd list
$ pacmd set-default-sink INDEX
jest nadal potrzebny dla mojego skryptu, w przeciwnym razie polecenia klawiatury do zmiany głośności będą nadal korzystać ze starego źródła sink.Do manipulowania serwerem dźwięku PulseAudio służą następujące polecenia:
Oto kilka przykładów ich działania.
pacmd list-sinks
:: nazwa listy lub numer indeksu możliwych zlewówpacmd set-default-sink [sinkname]
:: ustaw domyślny ujście wyjściowepacmd set-default-source [sourcename]
:: ustaw domyślne wejściepacmd set-sink-volume [index] [volume]
:: ustaw głośność zlewupacmd set-source-volume index volume
:: zakres regulacji głośności 0 - 65536 (im niższa liczba, tym niższa głośność)To tylko kilka, które wyciągnąłem ze strony wiki i man. Zapoznaj się z tym, aby uzyskać bardziej szczegółowe informacje. Lub możesz wyświetlić polecenia
--help
lubman
stronę.Istnieje również narzędzie wiersza poleceń, które służy temu celowi. Nazywa się Ponymix . Jest to mikser z linii poleceń dla PulseAudio. Podany link znajduje się na stronie github projektów. Został opracowany przez znajomego i programistę Arch Linux Trusted User / Developer. Jeśli nie korzystasz z Arch, możesz po prostu skompilować go ze źródła używając
make
isudo make install
.źródło
Na moim laptopie z Fedorą 20 wyjście HDMI nie jest wymienione jako zlew w profilu domyślnym, ale jako inny profil .
Mam tylko 1 taki zlew, fajna muzyka odtwarzana na głośnikach laptopa:
Jeśli uruchomię,
pactl set-card-profile 0 output:hdmi-stereo
ładna muzyka będzie odtwarzana przez HDMI. Dostaję:Aby wrócić do ustawień domyślnych, po prostu biegnę
pactl set-card-profile 0 output:analog-stereo+input:analog-stereo
. Tak czy inaczej, domyślnie pojawi się ponownie, jeśli uruchomię ponownie.Lista profili mojej karty znajduje się gdzieś na
pactl list cards
wyjściu.źródło
set-card-profile
nie zostało wcześniej wspomniane, a to najważniejsze informacje na temat tej odpowiedzi.