使用JavaSound API以非独占模式捕获音频

时间:2010-12-05 11:58:20

标签: java audio capture javasound

我写了一些用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中解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

我认为,这是一个与linux / ubuntu相关的问题。我在网上发现了一些提及和/或解决这个问题的网站,其中有两个: