次の方法を使用して、バイト配列として保存されているサウンドを再生しようとしています。
byte[] clickSamples = getAudioFileData("sound.wav");
ByteBuffer buffer = ByteBuffer.allocate(bufferSize*2);
int tick = 0;
for (int i = 0; i < clickSamples.length; i++) {
buffer.putShort((short) clickSamples[i]);
tick++;
if (tick >= bufferSize/SAMPLE_SIZE) {
line.write(buffer.array(), 0, buffer.position());
buffer.clear();
tick = 0;
}
}
何が問題なのかを説明するのはちょっと難しいです。音はしますが、「シュッ」というような音しか聞こえません。
アプリケーション全体がバイトバッファを中心に構築されているため、このメソッドをバイトバッファなどで使用したいと考えています。Clip または AudioInputStream を使用することは、実際にはオプションではありません。
だから私は私の質問は次のとおりだと思います:
バイトバッファを使用してバイト配列から直接サウンドを再生するにはどうすればよいですか?
ご協力ありがとうございました!