
我想在我的 Arch Linux 系統上設定音頻,以便多個程式可以存取我的聲卡並同時發出音頻。
不幸的是,asoundrc 檔案的語法讓我感到困惑,目前我有這個檔案:
cm.!spdif {
type hw
card 1
device 0
}
pcm.!default {
type plug
slave {
pcm "plug:dmix" # this is a line is based on https://bbs.archlinux.org/viewtopic.php?id=95582
# I have also tried pcm "dmix", based on the thread. It failed to get multiple sound processes running simultaneously.
}
}
雖然一次一個程式可以發出聲音,但每當我嘗試在另一個程式中運行音訊時,都不會發出聲音,例如運行:
speaker-test -c 2
當另一個程式存取我的聲卡時不發出聲音。這很煩人,因為我經常暫停音訊發射程序並啟動其他程序,而我目前的情況不允許我這樣做。
這是輸出lspci | grep -i audio
:
00:03.0 Audio device: Intel Corporation Xeon E3-1200 v3/4th Gen Core Processor HD Audio Controller (rev 06)
00:1b.0 Audio device: Intel Corporation 8 Series/C220 Series Chipset High Definition Audio Controller (rev 05)
所以我的問題是,“我怎麼能以一種良好、簡單和自動化的方式進行設定?是否有一個我可以安裝的程式可以毫無問題地設定音訊?”
答案1
有一個很好、簡單且自動化的方法:只需確保所有程式都使用plughw
而不是hw
當它們指定所需的音訊設備時即可。這將把自動生成的一個dmix
放在真實設備的前面hw
。
要使其成為預設值,您的.asoundrc
檔案應如下所示:
pcm.!default "plughw:2,0"
ctl.!default "plughw:2,0"
用正確的數字來識別您想要的聲卡(請參閱例如aplay -l
)。
編輯
是的,數字是卡片和裝置以該順序。您可以新增第三個子裝置如果有多個子設備 ( plughw:2,0,1
),則為數字。