AIFFオーディオファイルのエンディアンネスを決定することは可能ですか(どのように)可能ですか?

StackOverflow https://stackoverflow.com/questions/7359180

  •  28-10-2019
  •  | 
  •  

質問

Java(ドラムシーケンサーで使用)のオーディオインポーターに取り組んでいますが、AIFFファイルのインポートに次の問題があります。

同じタイプの2つのAIFFファイル(24bit、44100kHz、Mono)があり、1つはMacで作成され、もう1つはWindowsコンピューターにWavelabで作成されます。どちらのファイルも非圧縮PCMであり、どちらもform == aiffです。

MacのAiffはBigendian(本来あるべき)であり、Wavelab(Windows)のAIFFはLittleendianです。

両方のファイルは、Wavelab(Windows)およびQuickTime(Windows)で適切に再生できます。これらのツールは、これらのファイルのエンディアンネスをどのように検出できますか?何らかの方法で可能である必要があります。そうしないと、少なくとも1つのファイルがノイズのように聞こえます(それが私のアプリケーションで起こることです)。

ファイルヘッダー内に隠された情報がありますか、それともAIFFファイルの終わりを決定する他の方法はありますか?助言がありますか?

どうもありがとう

役に立ちましたか?

解決

クイックグーグルによると、AIFFファイルはそうです ビッグエンディアン.

しかし、によれば ウィキペディア データを圧縮するAIFF-Cと呼ばれる別の形式があります。 Appleは最近Little Endianを使用し、名前の偽の圧縮方法を作成しました sowt それは本質的に「圧縮はありませんが、リトルエンディアン」を意味します。あなたはそれをチェックする必要があるかもしれません。

それとは別に、Plain Aiffはエンディアンネスをチェックする方法を提供しません。リトルエンディアンでエンコードされた標準的なAIFFは、仕様に違反しているようです。

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