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);
}