如何在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)函数来获取系统资源。
所以代码工作得很好,万一有人也遇到这种问题