0

我的代码行为在单个 MP3 文件的图稿上发生了变化。通过在我的 PC 上打开 MP3 文件,艺术作品发生了变化,但通过在 android 设备上打开 MP3 文件没有任何反应。展示的艺术品仍然是旧的。

我试过这个:

Intent mediaScanIntent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE);
File f = new File(song_path);
Uri contentUri = Uri.fromFile(f);
mediaScanIntent.setData(contentUri);
FindCoverActivity.this.sendBroadcast(mediaScanIntent);

但什么也没发生。

我尝试了另一件事:通过更改艺术作品和专辑名称,媒体商店立即注意到发生了什么,并再次在安卓手机上打开 mp3 文件,艺术作品与新艺术作品一起正确显示。但更改专辑名称等重要的 mp3 标签并不是我的目标。这可能是一个错误或有任何建议吗?

谢谢!

4

1 回答 1

0

你可以试试MediaScannerConnection它的scanFile()方法,而不是ACTION_MEDIA_SCANNER_SCAN_FILE看看你是否有更好的结果。

此外,请确保在保存修改后的图稿时更改文件的最后修改时间戳。我不是这种 MP3 文件修改方面的专家,但如果其中有时间戳标签,您也可以考虑更新该时间戳。基本上,您需要确保MediaStore意识到存在需要更新其元数据的更改。

如果所有其他方法都失败了,您可以尝试制定一种方法,以较小的方式临时修改专辑名称(例如,附加一个空格),然后将其更改回来。这是一个 hack,但它可能是您唯一可靠的选择。

于 2013-09-15T22:52:06.173 回答