ドキュメントによると、ID3 タグには非同期フラグがあります。私が理解しているように、ID3 フレーム (ヘッダーやフッターではなく) にのみ適用する必要があります。
しかし、解析する前にフレームをどのように正確に処理する必要がありますか (書き込みではなく読み取り用)。'11111111 111xxxxx'
のすべてのシーケンスを置き換えるだけ'11111111 00000000 111xxxxx'
ですか?
いいえ、それはタグを書き込むときに行うことです (忘れないでください。この場合、仕様に記載されているように、「0xff,0x00」を「0xff,0x00,0x00」に置き換える必要もあります)。
タグを読み取るときは、「0xff,0x00」シーケンスを「0xff」に置き換えるだけです。最後に読み取ったバイトを追跡し、0xff に続く単一の 0x00 バイトを破棄することにより、ファイルの読み取り中に一度にこれを行うのが最も簡単です。
これを理解するのはそれほど簡単ではありません。なぜなら、仕様は、タグを読み取るときに何をするかではなく、タグを書き込むときに非同期化の方法で何をすべきかを説明しているだけだからです。