私はオーディオデータを処理するアプリケーションに取り組んでいます。 私はjavaを使用しています(私はMP3SPI、Jlayer、Tritonusを追加しました)。 .wavファイルからバイト配列にオーディオデータを抽出しています。私が扱っているオーディオデータサンプルは16ビットステレオです。私は1つのサンプルのフォーマットを読んだものによれば.WAVオーディオデータサンプルをダブルタイプに変換するには?
である:AABBは、左チャンネルとCCDD rigthチャネル(各チャネルに2バイト)を表す
AABBCCDD
。 このサンプルをdouble型に変換する必要があります。私はデータフォーマットについて読んでいます。 Javaはビッグエンディアンを使用し、.wavファイルはリトルエンディアンを使用します。私はちょっと混乱している。あなたは変換プロセスで私を助けてくれますか? ありがとうございました
良い点ですが、すべてのバイト[]アクセスでそれを実行する必要があります(左に24ビット以上シフトしない限り)。それらはintに昇格されるので、0x80は0xffffff80になります – erickson
これはまさに私が望んでいたものです。上位バイトの符号を保持します。 実際には、私はそれをテストしませんでした(特に浮動小数点値ではうまくいきません)が、符号付き16ビット値は32ビット以上に昇格したときにその符号を失ってはいけません。 –
こんにちは、あなたの答えに感謝します。 @erickson; ;私はあなたのコメントを本当に理解していません。 @GB;これを行うことで、左チャンネルの各サンプルの値を左に、右チャネルの右のサンプルの値を左に取得します。最後に、各サンプルに対して2つの値を設定します。各サンプルに対して1つの値を取得することは可能ですか? – dedalo