Sound.java 文件源码

java
阅读 33 收藏 0 点赞 0 评论 0

项目:spjgl 作者:
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();
}
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号