是否可以使用ALSA同时捕获麦克风和线路输入?

时间:2011-11-07 23:00:37

标签: c linux audio alsa

对ALSA并不十分熟悉,但我支持使用它的应用程序。

是否可以同时录制麦克风和线路输入的音频?不一定混合音频,尽管这是已被请求的可能性。是否可以设置为记录并使用ALSA单独读取每个?

关于ALSA的文档并不是非常有用,这基本上是我第一次使用ALSA在Linux上进行混音。

非常感谢任何和所有帮助;希望有人在过去做过这样的事情,或者有一个分享的样本或指向正确方向的链接。

2 个答案:

答案 0 :(得分:2)

也许这可以做到:不确定,但来自http://www.jrigg.co.uk/linuxaudio/ice1712multi.html,未经测试,但这将为您提供1个具有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  
}  

如果有人测试,请告诉我们结果?谢谢!
祝你好运!

答案 1 :(得分:1)

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个通道,根据需要将它们分开应用。当然,如果硬件支持,您也可以使用两个通道并记录四个通道。