A 回答 (2件)
- 最新から表示
- 回答順に表示
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のプロパティですね。
No.3
- 回答日時:
No.2の方の情報に加えて……。
テキスト系の情報を取ってきたときに,仕様書通りに読むと文字化けすることがあります。
文字列のエンコーディングに関して,encodingが$00のとき,仕様書ではISO-8859-1となっていますが,
日本語Windows上ではWindows-31jで書き込んでいる場合があるようです。
このため,文字列の処理はencodingが$00の場合に仕様書に沿うのか,別のエンコーディングを使うのか,
選択できるようにする必要があります。
回答、ありがとうございます。
文字コードについては、さすがに悩まされました。
どのみち、タグ情報が読み取れなくても実際のMP3の再生には
別段影響があるわけではないので、既存の規格をもとに、
ある程度自分なりのルールを決めてデータを調整したいと思います。
まぁ、他から読み取るときには失敗してしまいますが…。
お詫びですが、カテゴリ的に[その他]に当たるのですが、[Java]の
カテゴリで書き込みをしてしまいました。申し訳ありませんでした。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
配列にnullを代入すると、null...
-
プログラミングの問題です。大...
-
Processingでマウスクリックで...
-
デバッグツールの具体例を教え...
-
eclipseで作ったプログラムを他...
-
ゲーム開発の入門書を探しています
-
eclipse実行ができない
-
入力候補を選択した時点でDBを...
-
jdbcでinsert,delete,createをe...
-
session,requestはjspで未定義...
-
サーブレットをapacheで公開す...
-
下記のリストならno002が含まれ...
-
is this even a thing?
-
JAの支部?地域の農協のカード...
-
えハミルトン路と全域木のちが...
-
CSV出力を画面から選択したデー...
-
ショートカットキーについて
-
list の空は [] ってあわらすのに
-
あんまりお料理しないのに台所...
-
質問です。 配列が100以上の場...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ゲーム開発の入門書を探しています
-
配列にnullを代入すると、null...
-
マイクラでPythonのプログラミ...
-
jdbcでinsert,delete,createをe...
-
プログラミングの問題です。大...
-
eclipseで作ったプログラムを他...
-
Eclipse 動的プロジェクトで404...
-
正規表現について質問です。 カ...
-
「main メソッドを持つクラスが...
-
jdk17.06のインストーラーが起...
-
自作Androidアプリのデータ引き...
-
JaneStyleのスレッドが見れなく...
-
プログラムの単体テストで金額...
-
is this even a thing?
-
CSV出力を画面から選択したデー...
-
次のhtml・cssでspan内の文字を...
-
デバッグツールの具体例を教え...
-
StringReaderのサンプルプログ...
-
一覧表示画面で正しくDBから取...
-
JSFタグのfタグとは
おすすめ情報