首页 > 解决方案 > 无法在 Java 中增加分贝(使用静音选项)

问题描述

我正在我的 GUI 中使用静音按钮,直到现在我还没有想出一种方法可以做到这一点,所以我想减少分贝并在每次点击时增加它们。所以当我点击静音按钮时,我有:

for (int i=1; i<clips.length; i++) {
                FloatControl gainControl =
                        (FloatControl) clips[i].getControl(FloatControl.Type.MASTER_GAIN);
                gainControl.setValue(-60.0f);
            }

而且效果很好。但是当我做相反的事情(意思是 +60.0f)时,我得到 IllegalArgumentException:请求的值 60.0 超过允许的最大值 6.0206。

我像这样加载剪辑:

AudioInputStream i1 = AudioSystem.getAudioInputStream(Game.class.getResource("clips/1.wav"));
    clips[1] = AudioSystem.getClip();
    clips[1].open(i1);

有没有办法用我的方法绕过这个,或者有人知道更好的方法来做我想做的事吗?任何帮助是极大的赞赏。

标签: javauser-interfaceillegalargumentexceptionmuteaudioinputstream

解决方案


推荐阅读