【发布时间】:2012-03-31 05:50:25
【问题描述】:
我正在努力更改 ID3 标签,音频文件中的元数据,例如:
- 艺术家
- 标题
- 专辑
- 等
还有核心点,。编辑后的 ID3 标签应该只显示在我的应用程序中。
【问题讨论】:
标签: android metadata id3 mediastore
我正在努力更改 ID3 标签,音频文件中的元数据,例如:
还有核心点,。编辑后的 ID3 标签应该只显示在我的应用程序中。
【问题讨论】:
标签: android metadata id3 mediastore
我认为这就是您正在寻找的 MyID3 library 来设置和获取媒体文件的标签。
下载此 jar 文件 MyID3_for_android 并将其添加到项目的构建路径中。
这是示例代码。这里pathdata是音频文件的文件路径。
File src = new File(pathdata);
MusicMetadataSet src_set = null;
try {
src_set = new MyID3().read(src);
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} // read metadata
if (src_set == null) // perhaps no metadata
{
Log.i("NULL", "NULL");
}
else
{
try{
IMusicMetadata metadata = src_set.getSimplified();
String artist = metadata.getArtist();
String album = metadata.getAlbum();
String song_title = metadata.getSongTitle();
Number track_number = metadata.getTrackNumber();
Log.i("artist", artist);
Log.i("album", album);
}catch (Exception e) {
e.printStackTrace();
}
File dst = new File(pathdata);
MusicMetadata meta = new MusicMetadata("name");
meta.setAlbum("Chirag");
meta.setArtist("CS");
try {
new MyID3().write(src, dst, src_set, meta);
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ID3WriteException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} // write updated metadata
}
快乐编码:)
【讨论】:
其实 FasteKerinns 的代码还是不错的。你应该改变
new MyID3().write(src, dst, src_set, meta);
到
new MyID3().update(src, src_set, meta);
这意味着您根本不需要 dst 变量。
另外,我有这段代码可以刷新在 MediaStore 中修改的歌曲:
scanner=new MediaScannerConnection(getApplicationContext(),
new MediaScannerConnectionClient() {
public void onScanCompleted(String path, Uri uri) {
scanner.disconnect();
}
public void onMediaScannerConnected() {
scanner.scanFile(path, "audio/*");
}
});
scanner.connect();
【讨论】:
最重要的一点是,编辑后的 ID3 标签只显示在我的应用程序中。
如果您编辑该文件,那么任何人都会看到它。您可以创建自己的媒体文件数据库(如Android's database)并将修改后的数据存储在那里。
【讨论】:
我已经创建了一个示例应用程序,基于上述答案,您可以从这里下载示例实现https://github.com/mickyarun/AndroidSongMetaDataUpdate.git
【讨论】: