[英]Controlling volume in a java application
我在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
谢谢你的帮助
有时控件是嵌套的,这使得与平台无关的解决方案变得困难。 我编写了一个实用程序类,该类的用法如下:
Audio.setMasterOutputVolume(0.5f);
源代码在这里: https : //github.com/Kunagi/ilarkesto/blob/master/src/main/java/ilarkesto/media/Audio.java
Stackoverflow用户可以根据WTFPL的条款使用Audio.java中的代码。
我认为没有一个常量叫做VOLUME。 它的MASTER_GAIN。 所以你应该做
volCtrl = (floatControl) lineIn.getControl(FloatControl.Type.MASTER_GAIN);
volCtrl.setValue(you_custom_value);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.