いつもお世話になっております。
板違いの質問かもしれませんが、どうかお許しください。
MP3のタグ情報を取得したいのです。MP3ファイルの構造は以下のサイトで大分勉強しました。しかし、MP3のタグ構造に則ってコードを書いても取得できない場合があります。
ここでMP3に関するご指導をお願いするのも失礼なので、MP3に関連したプログラム(C,C++)を勉強したく、そのようなサイトをご存知の方がいましたら教えていただければうれしいです。
<自分が勉強したサイト>
「Inside MP3」
http://www.geocities.jp/bywnn498/mp3/
質問にはお答えできませんが
MP3 について
http://www.angel.ne.jp/~mike/about_mp3/
MP3 Playerのソースとか
GreenSoftware
GSPlayer
http://hp.vector.co.jp/authors/VA032810/
#私は見ても全然わかりませんので参考になるかわかりませんが
ライブラリ使うとか。
http://www.angel.ne.jp/~mike/vbmp3/
ごめんなさい。
ページこそ違えど、既にサイトは示されていましたね。
みなさんありがとうございます。
シャノンさん毎回ありがとうございます。
うにさんのご紹介してくださったMP3Playerのソースは
ちょっと自分には、量が多すぎてどれがどれだかわかり
ませんでした。すみません、自分もかなりの初心者です。
ライブラリではMikeさんのページのVBMP3があり、その活
用も考えたのですが、タグ情報を取得したいだけなので、
ライブラリではなく自分で記述したいと思っております。
今後の勉強(趣味)のためにも自分で書けたらとも思ってい
ます。
解決を付けずにもう少し待ってみます。
タグのバージョンにもよりますが,
V1ならとりあえずファイル末尾128バイトを切り出して,
その先頭3バイトをチェックすればよいだけな気がしますが……。
あとはmemcpyとかを駆使して……。
ID3タグを取得している最低限のコードを載せてみると,
もっとまともに回答できるかもしれません。
タグバージョンの1と2の両方に対応したものを書いております。
コードは長いため、ここに載せるのは...コードの基は上記の
「Inside MP3」に記載されているものです。コードそのものはまち
がっていないと思います。ほとんどのMP3ファイルのタグを取得でき
ているのですが、一部のファイルのタグが正しく取得できないのが
現状です。
正しく取得できたファイルとできてないファイルはともに、WMPや
iTunesなどでタグを編集しています。また、全てタグはV2のもでした。
いろいろ試したところ、どうやら、フレームIDが読み取れていないよう
です。というよりもフレームIDが見つかりません。それなのに、ファイ
ルのプロパティやWMPやiTunesでは表示されています。
読み取れていないファイルに共通していることは、MDから独自のやり方
でPCに取り込み、MP3に変換し、自分でタグを編集したものです。正しく
タグを取得できたのは、iTunesでCD→MP3と変換されたものです(CDDB
よりタグ情報を取得しているファイル)。
と長くなってしまいます。MP3の情報サイトがあれば参考までに教えて
いただければと思っております。参考書なども買おうかと思っています。
それを含めて、紹介してくださるとうれしいです。
iTunes はどうだか知りませんが、WMP は拡張タグエディタとかいう機能を
搭載してませんでしたっけ?
あれは MP3 の規格にない、独自規格のタグを生成します。
WMP でタグ編集すると、ファイルがブッ壊れたこともありました。
WMP の独自タグ形式の解説ってどこかにあるのかなぁ…
Win32工作小屋でmp3infpのソースコードが公開してありますから、
そちらを参考にしてみてはいかがでしょうか。
# mp3infpでもタグ情報を読み取れない場合は
# どうしようもないですが
http://win32lab.com/ Win32工作小屋(T-Matsuoさん)
う、リンクが変な状態に。
書き直しておきます。
http://win32lab.com/
Win32工作小屋(T-Matsuoさん)
みなさんありがとうございます。
すばらしいサイトを見つけました。
http://www1.cds.ne.jp/%7Etakaaki/ID3/
これを読んで諦めがつきました。
MP3は自分には到底無理でした。
ライブラリを使うか、現在製作中のソフトは諦めます。
うわ… ID3 タグってこんなに複雑な仕様だったのか…
こりゃ、ライブラリを使うにしても、フルサポートしてるものがあるかどうか…
ツイート | ![]() |