Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/353.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
控制java应用程序中的卷_Java_Volume - Fatal编程技术网

控制java应用程序中的卷

控制java应用程序中的卷,java,volume,Java,Volume,我对java相当陌生。我需要在java应用程序中控制音量(音量上升/下降、静音)。我找不到这样做的方法。我正在开发linux系统(仅供参考) 我厌倦了这个代码: Java代码: Port lineIn; FloatControl volCtrl; try { mixer = AudioSystem.getMixer(null); lineIn = (Port)mixer.getLine(Port.Info.LINE_IN); lineIn.open(); volCtrl = (F

我对java相当陌生。我需要在java应用程序中控制音量(音量上升/下降、静音)。我找不到这样做的方法。我正在开发linux系统(仅供参考)

我厌倦了这个代码:

Java代码:

Port lineIn;
FloatControl volCtrl;
try {
  mixer = AudioSystem.getMixer(null);
  lineIn = (Port)mixer.getLine(Port.Info.LINE_IN);
  lineIn.open();
  volCtrl = (FloatControl) lineIn.getControl(

      FloatControl.Type.VOLUME);
  // Assuming getControl call succeeds, 
  // we now have our LINE_IN VOLUME control.
} catch (Exception e) {
  System.out.println("Failed trying to find LINE_IN"
    + " VOLUME control: exception = " + e);
}
但我得到了执行权

Failed trying to find LINE_IN VOLUME control: exception = java.lang.IllegalArgumentException: Line unsupported: COMPACT_DISC source port

谢谢你的帮助

我认为没有一个常数叫做音量。它的主人是你。所以你应该这么做

volCtrl = (floatControl) lineIn.getControl(FloatControl.Type.MASTER_GAIN);
volCtrl.setValue(you_custom_value);

有时控件是嵌套的,这使得独立于平台的解决方案变得困难。我编写了一个实用程序类,其使用方式如下:

Audio.setMasterOutputVolume(0.5f);
源代码如下:

Stackoverflow用户可以根据WTFPL的条款使用Audio.java中的代码。

有一个名为
VOLUME
的常量,否则它将无法编译。