Когда демон PulseAudioнетработая, я могу использовать aplay для отправки звука на динамики с
aplay -Dhw:1,0 sample.wav
alsamixer, похоже, делает то, что я и ожидал, управляя громкостью на карте, когда я играю, как указано выше; в частности, главный и передние каналы влияют на громкость сэмпла, воспроизводимого выше.
Когда я делаю aplay -L, он выводит список PCM. Когда я выбираю один из этих PCM для aplay, звука нет вообще. Если pulseaudio запущен, aplay беззвучно завершается сбоем. Если pulseaudio не запущен, он завершается с ошибкой 2, невозможно открыть файл.
Большинство звуковых приложений, похоже, не допускают низкоуровневую спецификацию звукового оборудования, поэтому я не могу получить никакого звука, кроме как через aplay. Я считаю, что проблема в том, что имена PCM более высокого уровня не отображаются правильно на аппаратных устройствах.
Замечу, что старое ядро без PulseAudio не имело проблем со звуком на этой машине.
Они не производят звука:
aplay -Dfront sample.wav
aplay -Dpulse sample.wav
вывод 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
вывод 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
решение1
Ответ для меня был в том, что Pulseaudio либо неправильно интерпретировал udev, либо udev передавал ему неправильную конфигурацию — я не знаю ни того, ни другого достаточно, чтобы решить этот вопрос. Если я изменю Pulse audio default.pa, чтобы явно задать конфигурацию оборудования вместо получения ее от udev, это сработает.
В default.pa мне пришлось раскомментировать эти две строки:
load-module module-alsa-sink device=hw:1,0
load-module module-alsa-source device=hw:1,0
и прокомментируйте эти строки:
### 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
решение2
Для выбора правильной карты необходимо использовать полное имя устройства:
aplay -D front:CARD=PCH,DEV=0 sample.wav
Чтобы изменить карту по умолчанию, добавьте что-то вроде этого в глобальный /etc/asound.conf
или в свой файл ~/.asoundrc
:
defaults.ctl.card "PCH"
defaults.pcm.card "PCH"
Чтобы PulseAudio использовал правильную карту, ее необходимо настроить (попробуйте pavucontrol
).