【发布时间】:2011-09-12 11:50:51
【问题描述】:
我正在尝试从本地存储在 SD 卡中的 mp3 文件中读取 ID3。
我想基本获取
- 标题
- 艺术家
- 专辑
- 轨道长度
- 专辑封面
【问题讨论】:
我正在尝试从本地存储在 SD 卡中的 mp3 文件中读取 ID3。
我想基本获取
【问题讨论】:
您可以使用MediaMetadataRetriever获得所有这些
MediaMetadataRetriever mmr = new MediaMetadataRetriever();
mmr.setDataSource(filePath);
String albumName =
mmr.extractMetadata(MediaMetadataRetriever.METADATA_KEY_ALBUM);
【讨论】:
null),尽管我确实在其他软件中看到了 id3 标签......
null)。
检查the MP3 file format。基本上,您必须读取文件的最后 128 个字节;如果前 3 个字节是"TAG",则继续并读取您需要的字段;如果没有,则该文件没有附加信息。
【讨论】:
InputStream和一个128字节的缓冲区;将最后 128 个字节读入缓冲区;检查缓冲区的前3个字节,应该是TAG;使用Arrays.copyOfRange读取相关字节;将这些字节转换为int(用于流派)或String(用于其他所有内容)。
如果最后 128 个字节以标记“TAG”开头,则该文件具有 ID3v1(或 ID3v1.1)标记。 ID3v2.3 标记位于由标记“id3”指示的文件的开头(适用于流式传输)。我相信 ID3v2.4 由“3DE”表示,但我不确定...
【讨论】: