小さな格闘ゲームを書いています。現在、アニメーション、コンボなどを使用してキャラクター メーカーを作成しています。 BufferedImage をシリアル化できないため、スプライトにはすでにいくつかの問題がありました。これは PixelGrabber で解決されました - saveButton をクリックすると、この pixelGrabber は Image からピクセルを取得し、配列として保存します。その後、この配列をシリアル化できます。このプロジェクトをロードすると、逆シリアル化され、再びイメージとして使用されます。さて、私の質問 - .wav ファイルをシリアライズ可能な配列として保存することは可能ですか? この後、デシリアライズしてオーディオファイルとして再度使用しますか? 私の英語でごめんなさい
1100 次
1 に答える
0
以下は、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);
}
于 2012-11-13T20:39:54.903 に答える