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 уже воспроизводит его с максимальным качеством.

0 ответов

Другие вопросы по тегам