• 締切済み

MP3のコメントタグやSYLTの詳細

お世話になります。 Webでもちろん調べてはいるのですが、明確にわかるものがない為 質問しました。 MP3中のコメントタグ(ID3v2.3)の『COMM』の詳細を 教えてください。 他に、『SYLT』タグの詳細も併せて教えていただければ 幸いです。 くれぐれも、『ググれ』とか『~を見ればわかるだろ』といった 文句や誹謗中傷的な誠意のない回答はおやめください。 よろしくお願いします。

みんなの回答

回答No.3

No.2の方の情報に加えて……。 テキスト系の情報を取ってきたときに,仕様書通りに読むと文字化けすることがあります。 文字列のエンコーディングに関して,encodingが$00のとき,仕様書ではISO-8859-1となっていますが, 日本語Windows上ではWindows-31jで書き込んでいる場合があるようです。 このため,文字列の処理はencodingが$00の場合に仕様書に沿うのか,別のエンコーディングを使うのか, 選択できるようにする必要があります。

tatapatank
質問者

お礼

回答、ありがとうございます。 文字コードについては、さすがに悩まされました。 どのみち、タグ情報が読み取れなくても実際のMP3の再生には 別段影響があるわけではないので、既存の規格をもとに、 ある程度自分なりのルールを決めてデータを調整したいと思います。 まぁ、他から読み取るときには失敗してしまいますが…。 お詫びですが、カテゴリ的に[その他]に当たるのですが、[Java]の カテゴリで書き込みをしてしまいました。申し訳ありませんでした。 ありがとうございました。

  • akier01
  • ベストアンサー率81% (263/321)
回答No.2

既に貴方の以前の質問でID3v2.3の規格が提示されてるのですから、「『COMM』の詳細を 教えてください」などという漠然とした質問ならこれ以上回答する必要性を感じないのですが・・・。 規格を読んで部分的に解らない点があるのなら、それを具体的に質問すべきでしょうね。 コメントについては、大昔に当方が書いた、バイナリエディタでタグ内容を見ることを前提とした実態に即したメモ書きがありますので、一応それをコピペしておきます。 ************************************ Frame ID:COMM(43 4F 4D 4D) Size:00 00 00 xx Flags:xx xx 通常は 00 00 Text encoding: xx  ISO8859-1は00 , UTF16は01 Language:xx xx xx  ISO639-2で規定の3文字の言語コードを記述。英語はeng(65 6E 67)、日本語はjpn(6A 70 6E)など。 http://ja.wikipedia.org/wiki/ISO_639 short descriptor :(任意、無しなら終端文字 00 のみ、或いは FF FE 00 00) The actual text:(終端文字は 00 或いは 00 00)(+ UTF16なら先頭にBOMのFF FE) ただし、ソフトにより short descriptor や The actual text の終端文字や BOM を省略するものがある。 尚、Text encoding と short descriptor の両方が一致しない限り、コメントは幾つでも持つことが可能。 コメントの構造は以上ですが、実際にどのように使われているか、少々補足。 殆どのソフトは Language と short descriptor は利用していません。そもそも、タグエディタや音楽管理ソフトのコメント欄でそんな項目はあまり見たことが無いはずです。 多くのソフトは、書き込みの際には Language は何らかの値を決め打ちで書き込みます。大抵は「eng」ですが、中には「jpn」や、或いは「XXX」のような書き込みをするソフトもあります。 short descriptor は何も文字を書き込まずに、終端を示す「$00 (00)」だけ書き込むものが多いです(UTF-16なら、BOMのFF FEも)。 そして読み込みの際にはこれらをチェックすらせず、ファイル先頭から探していって「COMM」を見つければその本文(The actual text)だけを取得する、というソフトが殆どです。 一方で、そうではないソフトも一部あり、その辺の食い違いによりトラブルが発生することが時々あります。代表的なのは、iTunesや、日本語WindowsXPのプロパティですね。

tatapatank
質問者

お礼

回答、ありがとうございます。

関連するQ&A