Alsa - 我如何知道我的預設音訊輸出是卡 2 和裝置 0,而不是 hdmi?

Alsa - 我如何知道我的預設音訊輸出是卡 2 和裝置 0,而不是 hdmi?

如何判斷我的系統預設聲音輸出是卡 2 和裝置 0,而不是卡片 2 裝置 3、7 或 1?

我這樣做了,但是沒有聲音。

$ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: Device [C-Media USB Audio Device], device 0: USB Audio [USB Audio]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 2: PCH [HDA Intel PCH], device 0: ALC892 Analog [ALC892 Analog]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 2: PCH [HDA Intel PCH], device 1: ALC892 Digital [ALC892 Digital]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 2: PCH [HDA Intel PCH], device 3: HDMI 0 [HDMI 0]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 2: PCH [HDA Intel PCH], device 7: HDMI 1 [HDMI 1]
  Subdevices: 0/1
  Subdevice #0: subdevice #0

$ cat /etc/asound.conf
#pcm.!default { 
#  type plug; 
#  slave { pcm "hw:2" } 
#} 
pcm.!default {
    type hw
    card 2
    device 0
}

答案1

如果您發現您的音效卡不斷切換索引,您將無法defaults.pcm.card 2/etc/asound.conf.一種(複雜的)方法可能有效,那就是使用您想要的優先順序配置聲音核心模組。

這種方法描述於Debian 錯誤 #614113:

  1. 跑步alsamixer;
  2. 使用 F6 並研究可用的聲音設備
  3. 設定在裝置上播放的正確等級;
  4. 運行一些允許選擇聲音設備的聲音播放器(audacious例如);
  5. 使用您的聲音裝置(重複步驟 2,3)並決定預設值;
  6. 退出alsamixer和播放器;
  7. 以 root 身分登入;
  8. 運行lsmod | grep snd並嘗試了解哪些模組對應於實體聲音設備;
  9. 如果不確定步驟 2 中是否正確確定模組:前往/sys/module並檢查名稱以「snd」開頭的所有目錄。該目錄的名稱與模組完全相同。如果您將在檢查目錄中看到「drivers」目錄 - 那麼檢查目錄的名稱是與實體聲音裝置對應的模組的名稱。記住(用記事本寫下)所有此類模組。
  10. 為您在步驟 2 和 3 中找到的每個模組運行 modinfo <module name> | grep desc 。這將是相應聲音設備的優先順序。
  11. /etc/modprobe.d;
  12. 創造snd_cards_priorities.conf;
  13. 寫入 snd_cards_priorities.conf 如下內容:

    alias snd-card-0 <module for highest priority card>
    options <module for highest priority card> index=0
    alias snd-card-1 <module for lower priority card>
    options <module for lower priority card> index=1
    
  14. 保存存檔;
  15. 使用命令重新啟動 alsa /usr/sbin/alsa force-reload
  16. 執行 cat /proc/asound/cards 命令並檢查聲音設備的順序是否正確(設備 #0 具有最高優先權);
  17. 重複步驟9、10幾次,檢查聲音設備順序沒有改變;
  18. 退出根;

  19. 運行alsamixer並配置您的預設聲音設備,退出alsamixer

  20. 使用您最喜歡的聲音播放器來測試您的新配置。

答案2

要設定預設設備,您不應重新定義設備default,而只需將以下內容放入/etc/asound.conf

defaults.pcm.card 2      # or better "PCH"
defaults.pcm.device 0

這僅適用於實際使用預設設備而未明確指定設備的程式。如果某些程式(如 PulseAudio 或 VLC)已針對某些特定輸出裝置進行配置,則必須變更該配置。

相關內容