Java: Сериализация и десериализация аудио файлов

Я пишу небольшую файтинг-игру. Сейчас я создаю Создателя персонажей с анимацией, комбо и т. Д. У меня уже были некоторые проблемы с моими спрайтами, потому что BufferedImage не может быть сериализовано. Это было решено с помощью PixelGrabber - когда я нажимаю saveButton, этот pixelGrabber извлекает пиксели из изображения и сохраняет их как массив. Этот массив может быть сериализован тогда. Когда я загружаю этот проект, его можно десериализовать и снова использовать в качестве изображения. Теперь мой вопрос - возможно ли сохранить файл.wav как сериализуемый массив? И после этого десериализовать и снова использовать его как аудиофайл? Pssorry для моего английского

1 ответ

Вот простая структура для работы с файлами WAV: http://www.labbookpages.co.uk/audio/javaWavFiles.html

Я написал это довольно быстро, поэтому я извиняюсь, если есть какие-либо ошибки, но вот как будет выглядеть загрузка wav-файла в ArrayList:

//make sure to import java.util.ArrayList; 
try {
    // load the file, set up the buffer
    WavFile gameWav = WavFile.openWavFile( new File( "game_sound.wav" ) );
    ArrayList<double> gameWavArray = new ArrayList<double>();
    long framesRead = 0;
    long totalFrames = gameWav.getNumFrames();
    //read the buffer in 1000 frames at a time
    do {
        double[] gameWavBuffer = new double[1000];
        // Read the frames into array, increment framesRead
        framesRead = framesRead + Long.valueOf( gameWav.readFrames(gameWavBuffer, framesRead, 1000) );
        //add all of the new frames to our ArrayList
        Collections.addAll(gameWavArray, gameWavBuffer );
    }
    while (framesRead < totalFrames );
}
catch (Exception e) {
     System.err.println(e);
}
Другие вопросы по тегам