使用JSlider更改JAVA卷
我有一个简单的应用程序,可以在windows中改变音量的问题。我在互联网上找到了一些代码的源代码,经过修改后,它可以工作,但只在我的电脑上。这是因为我的代码不是通用的,因为我指的是一个特定的阵列,它可以控制音量。一般来说,我必须创建代码。这AudioSystem.getMixerInfo()为我创建一个混音器阵列。我如何找到这些阵列中的哪一个是用于计算机扬声器的 以下是代码:使用JSlider更改JAVA卷,java,audio,volume,Java,Audio,Volume,我有一个简单的应用程序,可以在windows中改变音量的问题。我在互联网上找到了一些代码的源代码,经过修改后,它可以工作,但只在我的电脑上。这是因为我的代码不是通用的,因为我指的是一个特定的阵列,它可以控制音量。一般来说,我必须创建代码。这AudioSystem.getMixerInfo()为我创建一个混音器阵列。我如何找到这些阵列中的哪一个是用于计算机扬声器的 以下是代码: public void volumecontrol(){ javax.sound.sampled.Mixer.Info[
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);
}
});
}
谢谢你的回答