當 ALSA 的 .asoundrc 檔案使用硬體類型而不是插頭類型時,聲音會出現失真/爆裂聲

當 ALSA 的 .asoundrc 檔案使用硬體類型而不是插頭類型時,聲音會出現失真/爆裂聲

我在運行 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

相關內容