如何创建静音选项

Tyi*_*ilo 5 java audio mute

如何创建一个为整个Java应用程序切换静音的函数?

实际上,所有声音都来自我在应用程序中加载的外部小程序。

加载小程序的代码在这里:https : //github.com/Tyilo/RS2Lite/blob/master/src/com/rs2lite/loader/GameAppletLoader.java

Flo*_*ian 5

使用Port可以访问计算机的混音器,但是将声音设为静音会静音计算机的所有声音。因此,这可能不是一个好选择。

除此之外,我认为您需要当前播放的Clip或SourceDataLine的类实例。但是,最有可能的是,该applet使用Applet的AudioClip类进行播放,该类可能在内部也可能不使用Clip / SourceDataLine。

无论如何,您可以尝试以下方法,它应该适用于大多数Java Sound实现:

  • 从AudioSystem,获取所有混音器

    Mixer.Info[] infos = AudioSystem.getMixerInfo();
    for (Mixer.Info info: infos) {
        Mixer mixer = AudioSystem.getMixer(info);
    }
    
    Run Code Online (Sandbox Code Playgroud)

    确保导入javax.sound.sampled。*

  • 从每个混音器中,通过 getSourceLines()
  • 对于返回的每一行,请尝试获取“静音”控件:

    BooleanControl bc = (BooleanControl) line.getControl(BooleanControl.Type.MUTE)
    if (bc != null) {
        bc.setValue(true); // true to mute the line, false to unmute
    }
    
    Run Code Online (Sandbox Code Playgroud)

注意,不能保证您将获得行,也不能保证Java Sound实现为给定的行提供MUTE控件。