Quando o daemon pulseaudio não está em execução, posso usar aplay para enviar som para os alto-falantes com

aplay -Dhw:1,0 sample.wav 

alsamixer parecem fazer o que eu espero ao controlar o volume do cartão quando toco como descrito acima; em particular, os canais master e front afetam o volume do sample reproduzido acima.

Quando eu faço aplay -L, ele lista uma série de PCMs. Quando seleciono um desses PCMs para a reprodução, não há som algum. Se pulseaudio estiver em execução, a reprodução falhará silenciosamente. Se pulseaudio não estiver rodando, ele falha com um erro 2, incapaz de abrir o arquivo.

A maioria dos aplicativos de som não parece permitir especificações de baixo nível do hardware de som, então eu não consigo obter nenhum som em tudo, exceto através de aplay. Acredito que o problema é que os nomes de PCM de nível superior não estão sendo mapeados corretamente para dispositivos de hardware.

Notarei que um kernel antigo sem áudio de pulso não apresentava problemas de som nesta máquina.

Estes não produzem som:

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

aplay -L output:

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 

aplay -l output

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 

Comentários

  • Se você pode tocar som diretamente para o hw, o Pulseaudio não está em execução (ou não conseguiu ' agarrar este dispositivo para uso explosivo), reproduzindo assim pulse não pode ' funcionar.
  • @dirkt – Você está certo – adicionei mais detalhes à pergunta
  • Para pulseaudio, inicie pavucontrol e certifique-se de que sua transmissão está indo para a saída correta (não HDMI). Além disso, use paplay em vez de aplay para remover a complexidade (e fontes de erros). Sem pulsea udio, você testou aplay -D front:CARD=PCH,DEV=0 conforme sugerido? Nunca entendi que o nome do dispositivo ALSA correspondia completamente, mas possivelmente front sozinho pode corresponder a outra coisa.

Resposta

A resposta para mim foi que o Pulseaudio estava interpretando incorretamente o udev ou o udev estava com a configuração errada – não sei o suficiente para decidir a questão. Se eu alterar o áudio do Pulse default.pa para definir explicitamente a configuração de hardware em vez de obtê-la do udev, funciona.

Em default.pa, tive que descomentar estas duas linhas:

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

e comente estas linhas:

### 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 

Resposta

Você deve usar o nome completo do dispositivo para selecionar o cartão correto:

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

Para alterar o cartão padrão, adicione algo assim ao /etc/asound.conf ou para o seu ~/.asoundrc:

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

Para fazer o PulseAudio usar a placa correta, você deve configurá-la (tente pavucontrol).

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *