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 标签更新不会在库刷新时显示的主要内容,如果未能解决你的问题,请参考以下文章

JaaudioTagger 不会真正更改标签字段

java获取mp3的时长和播放mp3文件

如何用 java 读/写 ID3v2 标签?

获取本地mp3音频文件时长

java获取MP3音频播放时长(总结)

Android 版本更新,支持增量更新