Gdy demon Pulseudio nie jest uruchomiony, mogę użyć aplay do wysłania dźwięku do głośniki z

aplay -Dhw:1,0 sample.wav 

alsamixer wydaje się robić to, czego oczekuję, kontrolując głośność na karcie, kiedy gram jak powyżej; w szczególności kanały główne i przednie wpływają na głośność próbki odtwarzanej powyżej.

Kiedy wykonuję polecenie play -L, wyświetla się liczba PCM. Kiedy wybieram jeden z tych PCM do odtwarzania, w ogóle nie ma dźwięku. Jeśli PulseAudio jest uruchomione, aplikacja cicho zawiedzie. Jeśli pulseaudio nie działa, kończy się niepowodzeniem z błędem 2, nie można otworzyć pliku.

Wydaje się, że większość aplikacji dźwiękowych nie umożliwia niskiego poziomu specyfikacji sprzętu dźwiękowego, więc nie mogę uzyskać żadnego dźwięku w ogóle, z wyjątkiem gry. Uważam, że problem polega na tym, że nazwy PCM wyższego poziomu nie są poprawnie mapowane na urządzenia sprzętowe.

Zwrócę uwagę, że starsze jądro bez pulsu audio nie miało problemów z dźwiękiem na tej maszynie.

Te nie generują dźwięku:

aplay -Dfront sample.wav aplay -Dpulse sample.wav 

Wyjście aplay -L:

null Discard all samples (playback) or generate zero samples (capture) pulse PulseAudio Sound Server hdmi:CARD=HDMI,DEV=0 HDA Intel HDMI, HDMI 0 HDMI Audio Output hdmi:CARD=HDMI,DEV=1 HDA Intel HDMI, HDMI 1 HDMI Audio Output hdmi:CARD=HDMI,DEV=2 HDA Intel HDMI, HDMI 2 HDMI Audio Output default:CARD=PCH HDA Intel PCH, ALC892 Analog Default Audio Device sysdefault:CARD=PCH HDA Intel PCH, ALC892 Analog Default Audio Device front:CARD=PCH,DEV=0 HDA Intel PCH, ALC892 Analog Front speakers surround21:CARD=PCH,DEV=0 HDA Intel PCH, ALC892 Analog 2.1 Surround output to Front and Subwoofer speakers surround40:CARD=PCH,DEV=0 HDA Intel PCH, ALC892 Analog 4.0 Surround output to Front and Rear speakers surround41:CARD=PCH,DEV=0 HDA Intel PCH, ALC892 Analog 4.1 Surround output to Front, Rear and Subwoofer speakers surround50:CARD=PCH,DEV=0 HDA Intel PCH, ALC892 Analog 5.0 Surround output to Front, Center and Rear speakers surround51:CARD=PCH,DEV=0 HDA Intel PCH, ALC892 Analog 5.1 Surround output to Front, Center, Rear and Subwoofer speakers surround71:CARD=PCH,DEV=0 HDA Intel PCH, ALC892 Analog 7.1 Surround output to Front, Center, Side, Rear and Woofer speakers iec958:CARD=PCH,DEV=0 HDA Intel PCH, ALC892 Digital IEC958 (S/PDIF) Digital Audio Output 

wyjście aplay -l

card 0: HDMI [HDA Intel HDMI], device 3: HDMI 0 [HDMI 0] Subdevices: 1/1 Subdevice #0: subdevice #0 card 0: HDMI [HDA Intel HDMI], device 7: HDMI 1 [HDMI 1] Subdevices: 1/1 Subdevice #0: subdevice #0 card 0: HDMI [HDA Intel HDMI], device 8: HDMI 2 [HDMI 2] Subdevices: 1/1 Subdevice #0: subdevice #0 card 1: PCH [HDA Intel PCH], device 0: ALC892 Analog [ALC892 Analog] Subdevices: 0/1 Subdevice #0: subdevice #0 card 1: PCH [HDA Intel PCH], device 1: ALC892 Digital [ALC892 Digital] Subdevices: 1/1 Subdevice #0: subdevice #0 

Komentarze

  • Jeśli możesz odtwarzać dźwięk bezpośrednio do hw, Pulseaudio nie działa (lub nie może ' nie złapać tego urządzenia w celu eksplozji), więc odtwarzam na pulse może ' t działać.
  • @dirkt – Masz rację – dodałem więcej szczegółów do pytania.
  • Dla pulseaudio, uruchom pavucontrol i upewnij się, że Twój strumień trafia na właściwe wyjście (nie HDMI). Użyj też paplay zamiast aplay, aby usunąć złożoność (i źródła błędów). Bez funkcji Pulse udio, czy przetestowałeś aplay -D front:CARD=PCH,DEV=0 zgodnie z sugestią? Nigdy nie rozumiałem, że nazwa urządzenia ALSA jest całkowicie dopasowana, ale prawdopodobnie front sam może dopasować coś innego.

Odpowiedź

Odpowiedź dla mnie była taka, że Pulseaudio albo błędnie zinterpretowało udev, albo udev podawało mu złą konfigurację – nie wiem wystarczająco dużo, aby zadać pytanie. Jeśli zmienię dźwięk Pulse default.pa, aby jawnie ustawić konfigurację sprzętową zamiast pobierać ją z udev, działa.

W default.pa musiałem odkomentować te dwie linie:

load-module module-alsa-sink device=hw:1,0 load-module module-alsa-source device=hw:1,0 

i skomentuj te wiersze:

### Automatically load driver modules depending on the hardware available #.ifexists module-udev-detect.so #load-module module-udev-detect #.else ### Use the static hardware detection module (for systems that lack udev support) #load-module module-detect #.endif 

Odpowiedz

Aby wybrać właściwą kartę, musisz użyć pełnej nazwy urządzenia:

aplay -D front:CARD=PCH,DEV=0 sample.wav 

Aby zmienić domyślną kartę, dodaj coś takiego do globalnej /etc/asound.conf lub na Twój ~/.asoundrc:

 defaults.ctl.card "PCH" defaults.pcm.card "PCH"  

Aby PulseAudio używał właściwej karty, musisz ją skonfigurować (spróbuj pavucontrol).

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *