私は(ドラム・シーケンサーで使用される)JAVAでのオーディオの輸入に取り組み、私はAIFFファイルをインポートすると、以下のような問題があります。AIFFオーディオファイルのエンディアンを判別することは可能ですか?
私は同じタイプ(24ビット、44100kHz、モノラル)、1の2つのAIFFファイルを持っていますMacで作成され、もう1つはWindowsコンピュータでwavelabで作成されます。両方のファイルは非圧縮PCMであり、どちらもFORM == AIFFです。
MacのAIFFはBigEndianです(これはすべきです)。 Wavelab(ウィンドウ)のAIFFはLittleEndianです。
両方のファイルは、Wavelab(Windows)とQuicktime(Windows)で正しく再生できます。 これらのツールは、これらのファイルのエンディアンをどのように検出できますか?どのような方法であれ、可能でなければなりません。そうしないと、ファイルの少なくとも1つがノイズのように聞こえるでしょう(これは私のアプリケーションで起こります)。
ファイルヘッダー内に隠れた情報やAIFFファイルのエンディアンを判別する方法がありますか? 提案がありますか?
どうもありがとう
はい、AIFFはビッグエンディアンです。しかし、wavelabはリトルエンディアンで24bit aiffを作成します。それは事実です。これは24bit aiffsだけに起こります。他のすべてのビットレートはwavelabでビッグエンディアンとして正しく作成されます。私は奇妙に聞こえるかもしれません。しかし、ファイルは、実際には、リトルエンディアンです – gal
@gal:私は参照してください。私は答えを更新しました。 – musiKk
はい、同意します。ファイルが仕様に違反しているか、ヘッダーを読んでいる間に何か間違ったことをしています(私は16bit aiffsと全く同じ方法でそれを読んでいます。私は偽の圧縮「sowt」について読んだが、ファイルはそのタイプではない。ヘッダーはAIFFではなくAIFF形式です。ちょうど不思議、どのように両方のファイルが正常に再生される可能性があります – gal