質問

次のコードを使用して、.wavファイルをバイト配列に読み取ります。

AudioInputStream inputStream = 
    AudioSystem.getAudioInputStream(/*my .wav file */);
int numBytes = inputStream.available();
byte[] buffer = new byte[numBytes];
inputStream.read(buffer, 0, numBytes);
inputStream.close();

バイト配列を読み込む前または読み込んだ後に.wavヘッダーを削除する簡単な方法はありますか?

役に立ちましたか?

他のヒント

AudioInputStream read()メソッドからのデータは既に生のwavデータです。したがって、.wavヘッダーを心配する必要はありません。ヘッダーにアクセスしたい場合は、このAudioInputStreamに関連付けられたAudioFormatオブジェクトを使用します。

http://download.oracle.com/javase/tutorial/sound/ converters.html

ところで、.wavファイルが非常に小さい場合を除き、サンプルで行ったように1回の読み取りですべてを取得することはできません。上記のチュートリアルの最初のコードスニペットのように、whileループに読み取りを配置する必要があります。

.wavヘッダーの長さが44バイトである場合、最初の44個をスキップ/削除すると、そこにあることになります。

確かにわからない。

wavファイルヘッダーは固定サイズですか?もしそうならinputStream.skip?

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top