如何在 Java 中设置 SourceDataLine 的音量

Liv*_*viu 5 java audio controls

我正在尝试用 Java 制作一个 mp3 播放器,但我不知道如何控制其中的音量。

我试过这样的事情:

         // Adjust the volume on the output line.
         if (dataLine.isControlSupported(FloatControl.Type.MASTER_GAIN)) {
             FloatControl volume = (FloatControl) dataLine.getControl(FloatControl.Type.MASTER_GAIN);
            volume.setValue(100.0F);
         }
Run Code Online (Sandbox Code Playgroud)

在这段代码工作正常之前,我编写的所有内容都很好,但显然 dataLine 不受支持,因为它跳过了这个 IF 语句。

我的问题是:你知道为什么会发生这种情况吗,我该如何解决这个问题,以便我可以控制我的应用程序的音量?

Mar*_*ark 3

您是否尝试过看看dataLine.getControls()会返回什么?

获取与该行关联的控件集。某些控件可能仅在线路开放时可用。如果没有控件,则此方法返回长度为 0 的数组。

如果你想要音量,你不想测试控件FloatControl.Type.VOLUME吗?