如何创建一个为整个 Java 应用程序切换静音的函数?
实际上,所有声音都来自我在应用程序中加载的外部小程序。
加载小程序的代码在这里:https ://github.com/Tyilo/RS2Lite/blob/master/src/com/rs2lite/loader/GameAppletLoader.java
如何创建一个为整个 Java 应用程序切换静音的函数?
实际上,所有声音都来自我在应用程序中加载的外部小程序。
加载小程序的代码在这里:https ://github.com/Tyilo/RS2Lite/blob/master/src/com/rs2lite/loader/GameAppletLoader.java
有一个Port
可以让您访问计算机的混音器,但是静音那里的声音会使计算机的所有声音静音。所以这可能不是一个好的选择。
除此之外,我相信您需要当前播放的 Clip 或 SourceDataLine 的类实例。然而,最有可能的是,小程序使用 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.*
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 控制。