我应该使用mp3标签编辑器还是在MediaStore中插入新值?

时间:2019-01-29 03:27:46

标签: java android android-contentresolver mediastore

这是我用于更新歌曲信息的代码。

 String currentTitle     = MediaStore.Audio.Media.TITLE;
 String currentArtist    = MediaStore.Audio.Media.ARTIST;
 String currentAlbumID   = MediaStore.Audio.Media.ALBUM_ID;
 String currentAlbum     = MediaStore.Audio.Media.ALBUM;
 String currentAlbumData = MediaStore.Audio.Media.DATA;
 String currentYear      = MediaStore.Audio.Media.YEAR;

 ContentValues values = new ContentValues();
 values.put(currentTitle, title);
 values.put(currentArtist, artist);
 values.put(currentAlbum, album);
 values.put(currentYear, year);

 //Update song info.
 String where = MediaStore.Audio.Media._ID + "=?";
 String[] whereVal = {Long.toString(songID)};
 resolver.update(musicUri, values, where, whereVal);

但是我不确定这是否是正确的方法,它工作正常,当我以这种方式编辑歌曲并关闭应用程序并重新启动时,会使用新值更新歌曲。

标题艺术家相册年份新值EditText获取,然后将其作为参数传递给我的MediaStore中更新它的方法。

我还读了一些有关jAudioTagger的内容,用于编辑 TAGS ,但该库存在一些问题,因此我想知道这是否也是更新歌曲信息的好方法

谢谢

1 个答案:

答案 0 :(得分:0)

您正在将苹果与橙子进行比较。您现在正在做的是将信息保存到本地数据库。这样可以在您的设备上进行快速排序和搜索。它不会将信息附加到音乐文件本身,因此,如果您将歌曲复制到另一台设备或与他人共享,则他们将没有该信息。
jAudioTagger将信息放入文件本身。因此,即使您复制到其他设备或与其他人共享,它也将在那里。但是搜索和排序将很慢,因为您必须打开每个文件然后进行排序。 所以正确的方法是同时做这两个。使用jAudioTagger等将信息保存到文件本身,然后像现在一样将其缓存到数据库中,以便快速访问。