private void writeDataToLine() throws LineUnavailableException {
playing = true;
line = AudioSystem.getSourceDataLine(format);
if (line == null) {
return;
}
line.open();
line.start();
for (int i = 0; i < data.length && playing; i += BUFFER_SIZE) {
if (line.isControlSupported(Type.MASTER_GAIN)) {
final FloatControl gainControl = (FloatControl)line.getControl(Type.MASTER_GAIN);
final float minimum = gainControl.getMinimum();
final float maximum = gainControl.getMaximum();
final float actualGain = Math.max(minimum, Math.min(maximum, gain));
gainControl.setValue(actualGain);
}
if (i + BUFFER_SIZE > data.length) {
i = data.length - BUFFER_SIZE;
}
line.write(data, i, BUFFER_SIZE);
}
line.drain();
}
Sound.java 文件源码
java
阅读 33
收藏 0
点赞 0
评论 0
项目:spjgl
作者:
评论列表
文章目录