我编写了一些代码来捕获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只能以独占模式捕获,或者JavaSound本身只能处理一个输入端口?
如果前者是真的,是否有人知道如何在Java中解决这个问题?
是的,现在看来,这是一个Linux/java问题 – qwlice 2010-12-21 14:26:52