對ALSA不太熟悉,但我支持使用它的應用程序。使用ALSA可以同時捕獲麥克風和線路輸入嗎?
是否可以同時錄製麥克風和線路輸入的音頻?不一定要混合音頻,儘管這是一個可能性已被要求。兩者都可以設置爲記錄並使用ALSA分別讀取每一個?
關於ALSA的文檔並不是非常有幫助,這基本上是我第一次使用ALSA在Linux上進行混音。
任何和所有的幫助將不勝感激;希望有人在過去做過這樣的事情,要麼有樣品可以分享,要麼指向正確的方向。
對ALSA不太熟悉,但我支持使用它的應用程序。使用ALSA可以同時捕獲麥克風和線路輸入嗎?
是否可以同時錄製麥克風和線路輸入的音頻?不一定要混合音頻,儘管這是一個可能性已被要求。兩者都可以設置爲記錄並使用ALSA分別讀取每一個?
關於ALSA的文檔並不是非常有幫助,這基本上是我第一次使用ALSA在Linux上進行混音。
任何和所有的幫助將不勝感激;希望有人在過去做過這樣的事情,要麼有樣品可以分享,要麼指向正確的方向。
arecord -l
會給你一個可用捕獲設備的列表。在我的情況下:
**** List of CAPTURE Hardware Devices ****
card 0: M2496 [M Audio Audiophile 24/96], device 0: ICE1712 multi [ICE1712 multi]
Subdevices: 1/1
Subdevice #0: subdevice #0
所以,用我的卡,你會不走運 - 只有一個設備(即只有一個不同的來源)。該設備將爲您提供由硬件路由至其的所有數據,如由外部混音器應用程序配置的那樣。
然而,對於某些卡片,可能是,但可以將MIC路由到通道1(左側)和LINE到通道2(右側),然後錄製2個通道,根據需要將它們分開。當然,如果硬件支持,您也可以使用兩個通道,並記錄四個通道。
也許可以這樣做:不確定,但從http://www.jrigg.co.uk/linuxaudio/ice1712multi.html,未經過測試,但這會給你帶有4個通道的虛擬設備。
pcm.multi_capture {
type multi
slaves.a.pcm hw:0
slaves.a.channels 2
slaves.b.pcm hw:1
slaves.b.channels 2
bindings.0.slave a
bindings.0.channel 0
bindings.1.slave a
bindings.1.channel 1
bindings.2.slave b
bindings.2.channel 0
bindings.3.slave b
bindings.3.channel 1
}
我不知道你是否可以將其與路由或正確sintax混合:
pcm.route_capture {
type route
slave.pcm "multi_capture"
ttable.0.0 0.5
ttable.1.1 0.5
ttable.0.2 0.5
ttable.1.3 0.5
}
或
pcm.route_capture {
type route
slave.pcm "multi_capture"
ttable.0.0 0.5
ttable.1.1 0.5
ttable.2.0 0.5
ttable.3.1 0.5
}
如果有人試驗,請告訴我們的結果?謝謝!
祝你好運!
謝謝你。我正在開發嵌入式系統,唯一顯示的捕獲設備是內置音頻混音器。它具有線路和麥克風輸入的控制,但顯然我無法加入它們;電路板似乎一次只能連接一個輸入通道。我確實找到了一種方法來告訴線路繞過編解碼器並直接播放揚聲器,這可能是我長期以來所做的。 問題仍然存在,但是,沒有C代碼解釋如何做到這一點;我仍然需要system()調用amixer。 – Will