Java中的Control Clip Volume-> FloatControl Volume不执行任何操作

问题描述 投票:0回答:1

我正在尝试调整游戏音乐的音量,并尝试了FloatControl音量=…但无论我将其设置为(1.0f或0.0f)的哪个值,它都是相同的音量。有什么想法吗?

public static void playGameSound()
    {
        try {
            AudioInputStream gameSound = AudioSystem.getAudioInputStream(new File("src/res/inGame.wav"));
            play = AudioSystem.getClip();
            play.open(gameSound);
            FloatControl volume = (FloatControl) play.getControl(FloatControl.Type.MASTER_GAIN);
            volume.setValue(1.0f);
            play.loop(Clip.LOOP_CONTINUOUSLY);
        }catch (LineUnavailableException | IOException | UnsupportedAudioFileException e){
            e.printStackTrace();
        }
    }
java audio volume
1个回答
1
投票

我对音频的各种控制线的经验是,它们依赖于客户端计算机的声音系统,因此,什么起作用或不起作用存在很多差异。因此,我将SourceDataLine用作输出,并通过将每个声音帧乘以音量系数来控制音量。您可以使用我编写的免费库(或检查其代码来编写自己的库)来利用此方法。主类称为AudioCue,并在Clip上进行了紧密建模。

© www.soinside.com 2019 - 2024. All rights reserved.