2011年8月16日 星期二

PulseAudio 永遠低延遲播放來自線路輸入的訊號

像音效卡的 line-in、麥克風或 SPDIF等訊號輸入,除非你讓音效卡直接輸出錄音,不然平常應該聽不到輸入訊號才對。讓音效卡永遠播放來自錄音裝置的訊號有一些好處,這樣可以把系統播放的聲音和錄音裝置的訊號合在一起。譬如說實況 console game 的時候加入 PC 端播放的音樂,上一篇錄音的文章雖然也可以做到,但是會有只能兩邊挑一個聽的問題,不是聽音樂犧牲音效不然就是聽音效不聽音樂,對玩家來說頗不方便。不過讓音效卡永遠播放來自錄音裝置的訊號也不是沒有缺點,像 SE200PCI 這種麥克風和線路輸入混合的硬體就會有麥克風訊號被播放的問題。

底下的設定請寫到 /etc/pulse/default.pa

load-module module-loopback source=alsa_input.pci-0000_05_07.0.analog-stereo sink=alsa_output.softvol

其中 alsa_intput 是你的錄音裝置,alsa_output 是輸出(播放)裝置。如果播放有延遲的問題,請修改 /etc/pulse/daemon.conf 內的 default-fragment 系列參數。
default-fragments = 8
default-fragment-size-msec = 1