Java AudioSystem .wav Scratchy/ Плохое качество
Я работаю над звуковой системой для игры, над которой я работаю, и использую аудиосистему Java для загрузки и воспроизведения звуковых файлов.
Звуки в норме близки к максимальной или громкой громкости, но если я ее понизлю, скажем, около -27 децибел, то это будет неуклюжий, плохой и искаженный звук.
Любые подсказки о том, что я могу сделать?
public void run()
{
try {
if (isSong)
stream = AudioSystem.getAudioInputStream(new File(location));
else
stream = AudioSystem.getAudioInputStream(soundStream);
info = new DataLine.Info(Clip.class, stream.getFormat());
sound = (Clip) AudioSystem.getLine(info);
sound.open(stream);
volumeControl = (FloatControl) sound.getControl(FloatControl.Type.MASTER_GAIN);
volumeControl.setValue(getDecibels(Configuration.volume));
if (delay > 0) {
Thread.sleep(delay);
}
sound.start();
playing = true;
while (sound.isRunning()) {
Thread.sleep(250);
}
if (!isSong) {
Thread.sleep(10000);
playing = false;
sound.close();
stream.close();
player.interrupt();
}
} catch (Exception e) {
player.interrupt();
e.printStackTrace();
}
}
public static float getDecibels(int level)
{
System.err.println("GetDecibels: Volume:" + level + ", lvl:" + (-35.0 + ((level * 4) / 10)));
return (float) -35.0 + ((level * 4) / 10);
}
Я также использую то же самое для воспроизведения MIDI-файлов, и они прекрасно воспроизводятся независимо от громкости.
Это только WAV-файлы, которые искажаются и неестественно.
Я пытался изменить аудиоформат, но по умолчанию, играя так, Java уже воспроизводит его с максимальным качеством.