JAudioTagger Android 标签更新不会在库刷新时显示
Posted
技术标签:
【中文标题】JAudioTagger Android 标签更新不会在库刷新时显示【英文标题】:JAudioTagger Android tags update don't show on library refresh 【发布时间】:2015-07-15 13:48:44 【问题描述】:我正在使用 jAudioTagger 库来编辑我的音乐播放器中歌曲的元数据。编辑标签的功能是:
save = (Button) findViewById(R.id.save);
save.setOnClickListener(new View.OnClickListener()
@Override
public void onClick(View view)
File src = new File(filepath);
songName=song.getText().toString();
artistName=artist.getText().toString();
albumName=album.getText().toString();
try
TagOptionSingleton.getInstance().setandroid(true);
AudioFile f = AudioFileIO.read(src);
f.setTag(new ID3v23Tag());
Tag tag=f.getTag();
tag.setField(FieldKey.TITLE,songName);
tag.setField(FieldKey.ARTIST,artistName);
tag.setField(FieldKey.ALBUM,albumName);
f.commit();
Toast.makeText(getApplicationContext(),"Done",Toast.LENGTH_SHORT).show();
catch (Exception e)
e.printStackTrace();
);
但是,更新标签后,更改不会反映在任何地方。即使刷新了我的音乐库,也没有显示更改。如何更新 MediaStore 以反映我对标签所做的更改,以便所有音乐播放器都可以访问已编辑的标签?
【问题讨论】:
而不是做 f.setTag(new ID3v23Tag());Tag tag=f.getTag();只需执行 Tag tag = getTagOrCreateAndSetDefault() 这样您就不会丢失现有的元数据 【参考方案1】:用AudioFileIO.write(audioFile);
代替audioFile.commit();
如果它不起作用,请使用此方法扫描您的媒体
private void scanMedia(String path)
File file = new File(path);
Uri uri = Uri.fromFile(file);
Intent scanFileIntent = new Intent(
Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, uri);
getContext().sendBroadcast(scanFileIntent);
【讨论】:
使用 audioFile.commit() 或 AudioFileIO.write(audioFile) 没有任何区别 何时何地使用scanMedia? @DeepSan 在 f.commit() 之后,可以使用方法 scanMedia(filePath) @Ibro,我使用 Jaudiotagger 更新了歌曲详细信息,当我使用 MediaStore.Audio.Media.EXTERNAL_CONTENT_URI 获取歌曲详细信息时,两者都提供了不同的详细信息。可能是什么问题..以上是关于JAudioTagger Android 标签更新不会在库刷新时显示的主要内容,如果未能解决你的问题,请参考以下文章