如何创建静音选项

时间:2011-08-08 02:32:42

标签: java audio mute

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

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

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

1 个答案:

答案 0 :(得分:4)

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);
    }
    

    确保导入javax.sound.sampled。*

  • 从每个Mixer中检索回放行 getSourceLines()
  • 对于每个返回的行,尝试获取静音控件:

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

请注意,无法保证您将获得行,并且无法保证Java Sound实现为给定行提供MUTE控件。