AbstractLine不支持的控件类型:Master Gain Java
我在使用AbstractLine不支持的控件类型:Master Gain Java,java,clip,Java,Clip,我在使用Clip.getControl()时出错,原因如下:- import java.io.File; import java.io.IOException; import javax.sound.sampled.AudioInputStream; import javax.sound.sampled.AudioSystem; import javax.sound.sampled.Clip; import javax.sound.sampled.FloatControl; import jav
Clip.getControl()
时出错,原因如下:-
import java.io.File;
import java.io.IOException;
import javax.sound.sampled.AudioInputStream;
import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.Clip;
import javax.sound.sampled.FloatControl;
import javax.sound.sampled.LineUnavailableException;
import javax.sound.sampled.UnsupportedAudioFileException;
public class HitPlayer {
private AudioInputStream ais;
private Clip clip;
private FloatControl gain;
public HitPlayer(String fname){
try {
ais = AudioSystem.getAudioInputStream(new File(fname));
clip = AudioSystem.getClip();
gain = (FloatControl) clip.getControl(FloatControl.Type.MASTER_GAIN);
} catch(UnsupportedAudioFileException e){
System.err.println("File format not accepted");
} catch(IOException e){
System.err.println("IO error");
} catch(LineUnavailableException e){
System.err.println("Line unavailable");
}
}
public void setGain(float db){
gain.setValue(db);
}
public void reset(){
try {
ais.reset();
} catch (IOException e) {
System.err.println("IO error when resetting");
}
}
public void play(){
clip.start();
}
}
stacktrace如下所示:-
Exception in thread "main" java.lang.IllegalArgumentException: Unsupported control type: Master Gain
at com.sun.media.sound.AbstractLine.getControl(AbstractLine.java:164)
at beat.HitPlayer.<init>(HitPlayer.java:21)
at beat.DrumMachine.<init>(DrumMachine.java:18)
at beat.Main.main(Main.java:14)
线程“main”java.lang.IllegalArgumentException中的异常:不支持的控件类型:主增益
位于com.sun.media.sound.AbstractLine.getControl(AbstractLine.java:164)
击球员(HitPlayer.java:21)
击鼓机(DrumMachine.java:18)
at beat.Main.Main(Main.java:14)
我一直试图通过检查grepcode上OpenJDK的代码来跟踪错误;以及相关的课程
我想知道是否有人遇到过这个问题,我正在使用
java版本“1.7.0_07”
OpenJDK运行时环境(IcedTea7 2.3.2)(Slackware)
OpenJDK 64位服务器虚拟机(构建23.2-b09,混合模式)
,如果这有区别的话
我基本上是通过gain=(FloatControl)clip.getControl(FloatControl.Type.MASTER\u gain)来访问增益或音量控制代码>。无论我使用的是MASTER\u GAIN
还是VOLUME
我忘了打开电话线了。增加了以下内容:-
clip.open(ais);
您在测试期间使用了什么平台?