0

ID3v2.3 タグの読み取りに問題があります。まず、www.id3.org から id3 タグについて読みました。id3 タグのドキュメントには、最初の 3 バイトに「ID3」が含まれ、次に 2 バイトにバージョンとリビジョン番号 (03 00 など) が含まれ、次の最初のバイトにフラグ (非同期、拡張ヘッダー、実験的インジケーター) が含まれ、次の 4 バイトがあると書かれています。サイズは予約制です。サイズが読み取れます。しかし、私の問題は、現在の位置から順方向 (ID3 タグのサイズから取得したサイズ) にポインターをシークすると、ID3 タグの最後に到達したことを意味し、次のバイトが読み取られることを意味します。 MP3 データ バイトですが、そうではありません。ID3タグのサイズを利用して、MP3ヘッダーとMP3データを検出するのを手伝ってください。2 つ目の質問は、MP3 フレームが ID3 フレームと混在しているのか、それとも ID3 タグから完全に分離されているのかということです。ID3 タグから分離されている場合、ID3 タグの最後に最初の MP3 フレームがあります。正しいですか?教えて

4

2 に答える 2

1

サイズを間違えて読んだ可能性はありますか?4つのサイズのバイトでは、左端のビットがゼロになっています。これにより、28ビットのみが残ります。ID3.orgのドキュメントから引用:

「ID3v2タグサイズは4バイトでエンコードされ、最
上位ビット(ビット7)はすべてのバイトでゼロに設定され、合計28ビットになります。ゼロビットは無視されるため、257バイトの長さのタグは$00として表されます。 000201。」

すなわち。00000000 0000000000000010000000001は000000000000000000100000001になります

これはおそらくタグに関して私にとって最も混乱したことだったので、おそらくそれはあなたを不意を突かれたのかもしれません。

于 2011-04-15T02:37:57.883 に答える
1

ID3フレームと混合されていないMP3フレーム。ID3v2.xのタグヘッダーサイズ値は同期セーフ整数であることに注意してください。これは基本的に、各バイトのMSBが0の形式に変換された整数です。7ビットごとに1つの0を挿入するのと同じです。ウィキペディアで読む:http://en.wikipedia.org/wiki/Synchsafe

また、ここで見ることができます:同期セーフ整数

以下のリンクでは、ID3タグシステムの概要と、ID3タグをデコードする方法の手動説明を見つけることができます:ID3タグとは何ですか?

于 2011-05-09T17:37:33.283 に答える