我在运行 Ubuntu 14.04 和 Kodi 14.1 的 HTPC 上安装了 XBMCbuntu。我一直在尝试安装和运行 Steam,以便能够从我的游戏 PC 上流式传输游戏。我按照以下步骤操作本指南仅使用 ALSA,因为 PulseAudio 根本不会给我声音,并且前置脚本和后置脚本在 ALSA 和 PA 之间切换时不起作用。
当我的 ~/.asoundrc 如下所示时,Kodi 中的音频可以正常工作:
pcm.dsp {
type plug
slave.pcm "dmixer"
}
pcm.dsp0 {
type plug
slave.pcm "dmixer"
}
pcm.!default {
type plug
slave.pcm "dmixer"
}
ctl.!default {
type plug
slave.pcm "dmixer"
}
pcm.dmixer {
type dmix
ipc_key 101
slave {
pcm "hw:0,3"
period_time 0
period_size 1024
buffer_size 4096
rate 48000
}
bindings {
0 0
1 1
}
}
但是当从菜单启动 Steam 时,音频会失真、发出噼啪声,而且通常是断断续续的,但声音是有的,而且可以辨认。经过一些试验和试错,我能够使用
ctl.!default {
type hw
card 0
}
会在 Kodi 中给我同样的破音。
ctl.!default {
type plug
slave.pcm "hdmi:CARD=HDMI,DEV=0"
}
给我正确的声音。我尝试在 dmix 设备中使用“插头”设备,但它根本不给我声音,进一步的研究证实它不起作用。由于我无法在 dmix 设备中使用“插头”设备,我需要一个解决方案,让我在 dmix 中使用相同的“插头”设备或者以某种方式修复“hw”设备。下面您将看到我的 aplay -l 和 aplay -L。此外,我有点困惑“hdmi:CARD=HDMI,DEV=0”来自哪里,因为 aplay -l 中没有列出卡 0 的设备 0。我在 aplay -L 中看到了它,但所有其他 PCM 都来自 aplay -l 中的设备。此外,我使用 HDMI 连接到我的电视和接收器,并且使用 ALC1150 设备既不能与 Kodi 中的系统选项配合使用,也不能与 ~/.asoundrc 中的系统选项配合使用。
$aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: HDMI [HDA ATI HDMI], device 3: HDMI 0 [HDMI 0]
Subdevices: 0/1
Subdevice #0: subdevice #0
card 1: Generic [HD-Audio Generic], device 0: ALC1150 Analog [ALC1150 Analog]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: Generic [HD-Audio Generic], device 1: ALC1150 Digital [ALC1150 Digital]
Subdevices: 1/1
Subdevice #0: subdevice #0
$aplay -L
null
Discard all samples (playback) or generate zero samples (capture)
pulse
PulseAudio Sound Server
dsp
dsp0
default
dmixer
hdmi:CARD=HDMI,DEV=0
HDA ATI HDMI, HDMI 0
HDMI Audio Output
dmix:CARD=HDMI,DEV=3
HDA ATI HDMI, HDMI 0
Direct sample mixing device
dsnoop:CARD=HDMI,DEV=3
HDA ATI HDMI, HDMI 0
Direct sample snooping device
hw:CARD=HDMI,DEV=3
HDA ATI HDMI, HDMI 0
Direct hardware device without any conversions
plughw:CARD=HDMI,DEV=3
HDA ATI HDMI, HDMI 0
Hardware device with all software conversions
sysdefault:CARD=Generic
HD-Audio Generic, ALC1150 Analog
Default Audio Device
front:CARD=Generic,DEV=0
HD-Audio Generic, ALC1150 Analog
Front speakers
surround40:CARD=Generic,DEV=0
HD-Audio Generic, ALC1150 Analog
4.0 Surround output to Front and Rear speakers
surround41:CARD=Generic,DEV=0
HD-Audio Generic, ALC1150 Analog
4.1 Surround output to Front, Rear and Subwoofer speakers
surround50:CARD=Generic,DEV=0
HD-Audio Generic, ALC1150 Analog
5.0 Surround output to Front, Center and Rear speakers
surround51:CARD=Generic,DEV=0
HD-Audio Generic, ALC1150 Analog
5.1 Surround output to Front, Center, Rear and Subwoofer speakers
surround71:CARD=Generic,DEV=0
HD-Audio Generic, ALC1150 Analog
7.1 Surround output to Front, Center, Side, Rear and Woofer speakers
iec958:CARD=Generic,DEV=0
HD-Audio Generic, ALC1150 Digital
IEC958 (S/PDIF) Digital Audio Output
dmix:CARD=Generic,DEV=0
HD-Audio Generic, ALC1150 Analog
Direct sample mixing device
dmix:CARD=Generic,DEV=1
HD-Audio Generic, ALC1150 Digital
Direct sample mixing device
dsnoop:CARD=Generic,DEV=0
HD-Audio Generic, ALC1150 Analog
Direct sample snooping device
dsnoop:CARD=Generic,DEV=1
HD-Audio Generic, ALC1150 Digital
Direct sample snooping device
hw:CARD=Generic,DEV=0
HD-Audio Generic, ALC1150 Analog
Direct hardware device without any conversions
hw:CARD=Generic,DEV=1
HD-Audio Generic, ALC1150 Digital
Direct hardware device without any conversions
plughw:CARD=Generic,DEV=0
HD-Audio Generic, ALC1150 Analog
Hardware device with all software conversions
plughw:CARD=Generic,DEV=1
HD-Audio Generic, ALC1150 Digital
Hardware device with all software conversions
答案1
以下错误报告中有一个可能的解决方法。基本上就是添加一个模块选项并使用 amixer 脚本来静音/取消静音您的数字设备。
至少你应该订阅该错误并指出它对你有影响。
https://bugs.launchpad.net/ubuntu/+source/alsa-driver/+bug/359361