2010-12-05 48 views
0

我编写了一些代码来捕获JavaSound API的声音。
它开始是这样的:使用JavaSound API以非独占模式捕获音频

 DataLine.Info info = new DataLine.Info(TargetDataLine.class, 
      audioFormat); 

     TargetDataLine line = (TargetDataLine) AudioSystem.getLine(info); 
     line.open(); 

然而,一旦函数getline()被调用,其他应用程序无法启动捕获声音的任何-更多。

相反,getLine()将失败,如果其他声音捕获应用程序正在运行。

通常我可以在Skype会话期间使用录音机,这意味着捕获声音不必是排他性的。

我想我的应用程序是非排他性的。我不想限制用户可以用它做什么。

JavaSound API tutorial记载:

通常,仅一个输入端口可以同时打开,但混合音频从多个端口的音频输入混频器也是可能的。

这是否意味着JavaSound只能以独占模式捕获,或者JavaSound本身只能处理一个输入端口?

如果前者是真的,是否有人知道如何在Java中解决这个问题?

回答