Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在JVM之外获取音频级别_Java_Audio - Fatal编程技术网

Java 在JVM之外获取音频级别

Java 在JVM之外获取音频级别,java,audio,Java,Audio,我需要检查在Windows上运行的任何应用程序的音频级别,当音频达到某一点时,执行一些代码。我的问题是,做这样的事情: Mixer.Info[] mixers = AudioSystem.getMixerInfo(); for (Mixer.Info mixerInfo : mixers) { Mixer mixer = AudioSystem.getMixer(mixerInfo); try { mixer.open(); Line.Info[]

我需要检查在Windows上运行的任何应用程序的音频级别,当音频达到某一点时,执行一些代码。我的问题是,做这样的事情:

Mixer.Info[] mixers = AudioSystem.getMixerInfo();
for (Mixer.Info mixerInfo : mixers) {
    Mixer mixer = AudioSystem.getMixer(mixerInfo);
    try {
        mixer.open();
        Line.Info[] lines = mixer.getSourceLineInfo();
        for (Line.Info linfo : lines)
            System.out.println(((SourceDataLine) AudioSystem.getLine(linfo)).getLevel());                
    } 
    catch (LineUnavailableException e) {
        e.printStackTrace();
    }
}
如果我没有弄错的话,它将无法工作,因为它无法检查在JVM之外播放的音频。这是正确的吗

如果正确,那么我可以使用JNA映射Windows dll并使用其函数检查音频级别吗


你知道我如何做到这一点吗?

因此,如果其他人正在寻找解决方案,我找到了一个实现。归功于github的所有者