我有一个简单的应用程序的问题,可以改变Windows中的音量。我在互联网上找到了一些代码来源,经过我的修改后它才有效,但只能在我的电脑上使用。这是因为我的代码不通用,因为我指的是一个特定的数组,音量控制正在工作。我必须创建一般代码。这个 AudioSystem.getMixerInfo(); 创建了一系列混音器。我怎样才能找到这些阵列中的哪一个用于计算机的扬声器?
这是代码:
public void volumecontrol(){
javax.sound.sampled.Mixer.Info[] mixers = AudioSystem.getMixerInfo();
Mixer.Info mixerInfo = mixers[4];
Mixer mixer = AudioSystem.getMixer(mixerInfo);
Line.Info[] lineinfos = mixer.getTargetLineInfo();
try {
Line line = mixer.getLine(lineinfos[0]);
line.open();
if(line.isControlSupported(FloatControl.Type.VOLUME)){
control = (FloatControl) line.getControl(FloatControl.Type.VOLUME);
control.setValue((float) 0.7);
int value = (int) (control.getValue()*100);
slider = new JSlider((int)control.getMinimum()*100,(int)control.getMaximum()*100, value);
slider.setMajorTickSpacing(10);
slider.setPaintLabels(true);
System.out.println("Volume:"+control.getValue());
j.add(slider);
j.pack();
}
} catch (LineUnavailableException e) {
e.printStackTrace();
}
slider.addChangeListener(new ChangeListener() {
@Override
public void stateChanged(ChangeEvent arg0) {
control.setValue(slider.getValue()/100f);
}
});
}
感谢您的回答!