我编写了一些代码来使用 JavaSound API 捕获声音。
它是这样开始的:
DataLine.Info info = new DataLine.Info(TargetDataLine.class,
audioFormat);
TargetDataLine line = (TargetDataLine) AudioSystem.getLine(info);
line.open();
但是,一旦调用getLine(),其他应用程序就不能再开始捕获声音了。
反过来,如果其他一些声音捕获应用程序正在运行,getLine()将失败。
通常我可以在 Skype 会话期间使用录音机,这意味着捕获声音不必是专有的。
我希望我的应用程序也是非排他性的。我不想限制用户可以用它做什么。
在JavaSound API 教程中它写道:
通常,一次只能打开一个输入端口,但也可以使用混合来自多个端口的音频的音频输入混音器。
这是否意味着 JavaSound 只能以独占模式捕获,或者 JavaSound 本身只能处理一个输入端口?
如果前者是真的,那么有人知道如何在 Java 中解决这个问题吗?