我试图调整游戏音乐的音量,并尝试了FloatControl volume =…,但是无论我将其设置为(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();
}
}
最佳答案
我对各种音频控制线的经验是,它们依赖于客户端计算机的声音系统,因此,什么起作用或不起作用存在很多差异。因此,我将SourceDataLine
用作输出,并通过将每个声音帧乘以音量因子来控制音量。您可以使用我编写的免费库(或检查其代码来编写自己的库)来利用此方法。主要类称为AudioCue,并在Clip上进行了紧密建模。
关于java - Java中的Control Clip Volume-> FloatControl Volume不执行任何操作,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59463307/