如何在Java中设置SourceDataLine的卷

我正在尝试在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); } 

我写的所有东西,直到这段代码工作正常,但显然dataLine不是控制支持因为它跳过这个IF语句。

我的问题是:你知道为什么会这样,我怎么能解决这个问题,以便控制我的应用程序量?

您是否尝试过查看dataLine.getControls()将返回的内容?

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

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

好,朋友们,

我发现了我的混乱局面。 我实际上忘了调用dataLine.open(audioFormat)函数来获取系统资源。

所以代码工作得很好,万一有人也遇到这种问题