好吧,所以我想在登录我的客户端时让剪辑的音量逐渐减少
问题是,我需要改变这个
FloatControl gainControl = (FloatControl)
clip.getControl(FloatControl.Type.MASTER_GAIN);
gainControl.setValue(-10.0f);//
进入for循环,我不知道该怎么做
我是新来的,所以我不确定事情是如何运作的,所以如果我遗漏任何信息,请告诉我
编辑:我知道了,这里是任何有类似问题的人的代码FloatControl gainControl = (FloatControl)
clip.getControl(FloatControl.Type.MASTER_GAIN);
for(int i = 0; i >= -35; --i) {
try {
Thread.sleep(160);
} catch (InterruptedException e) {
e.printStackTrace();
}
gainControl.setValue((float) i);
}
答案 0 :(得分:0)
怎么样:
FloatControl gainControl = (FloatControl) clip.getControl(FloatControl.Type.MASTER_GAIN);
for(int i = 0; i >= -10; --i) {
gainControl.setValue((double) i);
}
如果你想用分数减少它,你可以做类似的事情:
for(int i = 0; i >= -50; --i) {
gainControl.setValue(0.2 * i);
}
在第二种情况下,你从音量减少0.2。
我正在使用int,因为浮点数会导致>=
条件问题。
答案 1 :(得分:0)
如果您愿意,可以使用double作为循环“索引”。由于通常的浮点问题,您只需要注意循环终止条件。
public class DoubleIndex {
public static void main(String[] argv) {
for (double x = 0.0; x < 2.0; x+=0.2) {
System.out.println(x);
}
}
}
(请注意,由于浮点精度问题,这会迭代11次。)
C:\JavaTools>java DoubleIndex
0.0
0.2
0.4
0.6000000000000001
0.8
1.0
1.2
1.4
1.5999999999999999
1.7999999999999998
1.9999999999999998