Odtwarzaj dźwięk przez dwa lub więcej wyjść / urządzeń


79

Myślę, że to dość prosta koncepcja. Mam jedną kartę dźwiękową i jedną parę słuchawek Bluetooth. Chcę odtwarzać dźwięk przez kartę dźwiękową i słuchawki Bluetooth.

Wierzę, że Windows ma pola wyboru, które pozwalają „sprawdzić” wyjścia, aby je włączyć / wyłączyć, ale Ubuntu najwyraźniej ma odpowiednik selektorów radiowych (możesz wybrać tylko jeden na raz).

Premia Pytanie: Z podobnej uwagi mam 5 analogowych kanałów wyjściowych na mojej karcie dźwiękowej (oprócz mojego dźwięku cyfrowego i HDMI) - Chciałbym móc określić, co wychodzi z każdego z tych portów (np. „Przód” głośniki „na wszystkich 5 lub„ przednich ”,„ środkowych ”,„ tylnych ”itp.).

Z góry dziękuję!


Przeczytałem wszystkie odpowiedzi, sprawdzając również datę odpowiedzi. Jakie jest obecne rozwiązanie dla Ubuntu 18.04?
LeonidMew

Tak, wersja paprefsrepozytoriów Ubuntu 18.04 jest bezużyteczna (ponieważ nadal uważa, że ​​GConf jest modny i dlatego nie działa). Najlepszą alternatywą jest samodzielne ładowanie module-combine-sinkPulseAudio (bo to i tak paprefsdzieje się za sceną). Użyj polecenia pactl load-module module-combine-sinki sprawdź sekcję Dźwięki w Ustawieniach Ubuntu.
AneesAhmed777

Odpowiedzi:


88

Dzięki paprefsdostępowi do wirtualnego urządzenia wyjściowego, które umożliwia jednoczesne wyjście na wszystkie podłączone karty dźwiękowe / urządzenia:

sudo apt install paprefs 

Następnie w uruchomieniu terminalu paprefswybierz zakładkę „Jednoczesne wyjście” i zaznacz „Dodaj wirtualne wyjście dla jednoczesnego wyjścia na wszystkich lokalnych kartach dźwiękowych”.

paprefs

Dodatkowo utworzone urządzenie wyjściowe audio do jednoczesnego wyjścia można wybrać w zakładce „Wyjście” z menu preferencji dźwięku pulseaudio:

wprowadź opis zdjęcia tutaj

W tym przykładzie pokazano to dla urządzenia HDMI, ale jak tylko urządzenie Bluetooth zostanie rozpoznane, będzie również dostępne do jednoczesnego wyjścia.

Zmiany mogą wymagać ponownego uruchomienia pulseaudio w celu wyegzekwowania przez wylogowanie i ponowne zalogowanie do sesji lub uruchomienie pulseaudio -kw terminalu.


1
To załatwi sprawę. W miarę pogłębiania się w rozwoju dźwięku, naprawdę chciałbym móc wybrać określone urządzenia i / lub porty.
Nathan JB,

1
@ NathanJ.Brauer: możesz być zainteresowany tą odpowiedzią . Aby zmienić porty, zobacz także wiki pulseaudio, do której tam linkowałem.
Takkat

1
och, nieważne, sudo apt install paprefsdziała
tatsu

2
ten nie działa dla mnie w 18.04. Jeśli wiesz, jak to zrobić z ALSA, pomóż mi tutaj: askubuntu.com/q/1042485/586277
ICE

2
nie działa dla mnie w Ubuntu 16.04. Nie widzę żadnej takiej opcji jak „Jednoczesne wyjście” w oknie preferencji dźwięku
node_man

21

Ubuntu

Właśnie potwierdziłem, że to rozwiązanie (sprzed 4 lat) nadal działa na Ubuntu 14.04 LTS.

zainstalować

Otwórz terminal i wpisz sudo apt-get install paprefsprzejdź do zakładki dokładnie tak, jak na powyższym obrazku i wybierz opcję.

Uruchomienie początkowe

Następnie; pozostając w terminalu, wpisz, pulseaudio -kaby zabić i ponownie uruchomić pulseaudio.

Następnie przejdź do ustawień dźwięku, a zobaczysz opcję wyjścia na wiele urządzeń dźwiękowych.

Rekwizyty dla każdego, kto napisał paprefs, to genialny mały program, który chciałbym zobaczyć w Ubuntu bez konieczności dodatkowej instalacji.

Apple Mac OS OS X

Podobne rozwiązanie jest dostępne za pomocą dołączonego oprogramowania, a to, co jest tak wspaniałe, pulseaudioto to, że dźwięk wydaje się idealnie zsynchronizowany z obydwoma wyjściami, więc musi dostosowywać się również do opóźnienia, dlatego jest tak imponujący; w przeciwnym razie usłyszymy nieco opóźnioną wersję z jednego wyjścia i drugiego.


1
dziękuję za wykonanie pracy, aby sprawdzić, czy rozwiązanie jest nadal aktualne!
Peter Karasev

2
Działa to również na Ubuntu 16.04.1 LTS
aggsol

5

Aby uzupełnić doskonałą odpowiedź Takkata, zauważyłem, że domyślna nazwa nowego urządzenia była zbyt długa i zniekształciłem okno dialogowe Ustawienia dźwięku. Aby skrócić tę nazwę, musiałem dodatkowo wykonać następujące polecenie:

gconftool --set --type string /system/pulseaudio/modules/combine/args0 sink_properties=device.description=Combined

Ustawienia dźwięku z połączonym urządzeniem


2
Jak mogę to cofnąć ?!
Iman Mohamadi

4

Nie mogłem wyciągnąć propozycji Takkata z pudełka w Debianie 8.7, chociaż zrestartowałem system. Zakładam, że wypełniłeś propozycję Takkata podczas instalacji paprefs. Rozszerzenie odpowiedzi Takkata, które działa w oparciu o Arch Arch wiki, w którym przechowuje wejście analogowe i Pulse wywołuje ten „dupleks”

# /etc/pulse/default.pa
# http://unix.stackexchange.com/a/180374/16920
load-module module-alsa-sink device=hdmi:0
load-module module-combine-sink sink_name=combined
set-default-sink combined

Następnie uruchom ponownie pulseaudio:

pulseaudio -k

Dla mnie ten zadziałał, gdy miałem urządzenie = "hw: 0,0" zgodnie z aplay -l(patrz forums.linuxmint.com/viewtopic.php?t=264540#p1436479 )
Laurenz

Pamiętaj, aby umieścić na początku pliku! Działa to dla mnie (hw: 0,0) na Ubuntu 18.04.2, grając na dwóch monitorach HDMI, po tym, jak przesunąłem linie na górę.
orangenarwhals

2

W Kubuntu 18.04, Plazma 5.12 paprefsnie jest potrzebna, ponieważ podobne ustawienie już tam jest:

wprowadź opis zdjęcia tutaj

Nowa opcja wyjścia powinna być dostępna po ponownym uruchomieniu, zwana „Jednoczesnym wyjściem”.

wprowadź opis zdjęcia tutaj

Lub w pavucontrol:

wprowadź opis zdjęcia tutaj


W 18.10 z Plazą 5.13.5 ta opcja „Wyjścia symultanicznego” została usunięta, więc aprefsjest potrzebna.


0

Ponieważ LeonidMewpytałem o 18.04 (używam 18.04.2), oto moja wersja.

GUI paprefspróbował połączyć jedno HDMI z jednym wyjściem analogowym, zamiast obu HDMI. Musiałem więc edytować plik zgodnie z opisemLéo Léopold Hertz 준영

$ gedit /etc/pulse/default.pa
# then after changes 
$ pulseaudio -k

Obie te metody działają same, więc wybierz jedną ( pamiętaj, aby dodać na początku pliku , umieszczam ją zaraz po tym .fail! W przeciwnym razie nie działa).

Metoda A

load-module module-alsa-sink device=hw:1,3 sink_name=hdmi
load-module module-alsa-sink device=hw:1,7 sink_name=hdmi2
load-module module-combine-sink sink_name=combined slaves=hdmi,hdmi2
set-default-sink hdmi-combined

Metoda B

load-module module-alsa-sink device=hw:0,0
load-module module-combine-sink sink_name=combined

Odniesienie

Metoda A

Dla porównania, hw:0,0pochodzi zaplay -l

$ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: PCH [HDA Intel PCH], device 0: ALC892 Analog [ALC892 Analog]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 1: ALC892 Digital [ALC892 Digital]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: NVidia [HDA NVidia], device 3: HDMI 0 [HDMI 0]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: NVidia [HDA NVidia], device 7: HDMI 1 [HDMI 1]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: NVidia [HDA NVidia], device 8: HDMI 2 [HDMI 2]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: NVidia [HDA NVidia], device 9: HDMI 3 [HDMI 3]
  Subdevices: 1/1
  Subdevice #0: subdevice #0

Metoda B

I 1:3pochodzi z

$ pacmd list-sinks | grep -e 'name:' -e 'alsa.device ' -e 'alsa.subdevice '
    name: <alsa_output.pci-0000_00_1b.0.iec958-stereo>
        alsa.subdevice = "0"
        alsa.device = "1"
    name: <alsa_output.pci-0000_01_00.1.hdmi-stereo-extra1>
        alsa.subdevice = "0"
        alsa.device = "7"

W „ustawieniach dźwięku” ustawiłem drugie HDMI jako wyjście, a potem dostałem

$ pacmd list-sinks | grep -e 'name:' -e 'alsa.device ' -e 'alsa.subdevice '
    name: <alsa_output.pci-0000_00_1b.0.iec958-stereo>
        alsa.subdevice = "0"
        alsa.device = "1"
    name: <alsa_output.pci-0000_01_00.1.hdmi-stereo>
        alsa.subdevice = "0"
        alsa.device = "3"

Aby zweryfikować, pobiegłem

$ aplay -D plughw:1,3 /usr/share/sounds/alsa/Front_Right.wav
$ aplay -D plughw:1,7 /usr/share/sounds/alsa/Front_Right.wav

które brzmiały na ich odpowiednich monitorach.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.