SD カードにローカルに保存されている mp3 ファイルから ID3 を読み取ろうとしています。
私は基本的にフェッチしたい
- 題名
- アーティスト
- アルバム
- トラックの長さ
- アルバムアート
MediaMetadataRetrieverを使用してこれらすべてを取得できます
MediaMetadataRetriever mmr = new MediaMetadataRetriever();
mmr.setDataSource(filePath);
String albumName =
mmr.extractMetadata(MediaMetadataRetriever.METADATA_KEY_ALBUM);
MP3ファイル形式を確認してください。基本的に、ファイルの最後の128バイトを読み取る必要があります。最初の3バイトがである場合は"TAG"
、続けて必要なフィールドを読み取ります。そうでない場合、ファイルには情報が添付されていません。
最後の 128 バイトがトークン「TAG」で始まる場合、ファイルには ID3v1 (または ID3v1.1) タグがあります。ID3v2.3 タグは、トークン「id3」で示されるファイル (ストリーミングに適した) の先頭にあります。ID3v2.4は「3DE」で示されていると思いますが、よくわかりません...