我的代码行为在单个MP3文件的图稿上发生了变化。通过在我的电脑上打开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);
但没有任何事情发生。
我尝试了另一件事:通过更改艺术品和专辑的名称,媒体商店立即注意到了发生了什么,并再次打开Android手机上的mp3文件,艺术品将正确显示新的艺术品。但是我的目标不是改变像专辑名称这样重要的mp3标签。这可能是一个错误或有任何建议吗?
谢谢!
答案 0 :(得分:0)
您可以尝试MediaScannerConnection
及其scanFile()
方法而不是ACTION_MEDIA_SCANNER_SCAN_FILE
,看看您是否有更好的结果。
此外,请确保在保存修改后的图稿时更改了文件的上次修改时间戳。我不是这种MP3文件修改的专家,但是如果那里有时间戳标记,你也可以考虑更新那个时间戳。基本上,您需要确保MediaStore
意识到存在需要更新其元数据的更改。
如果所有其他方法都失败了,您可以尝试制定一种方法,暂时以较小的方式修改相册名称(例如,附加空格),然后将其更改回来。这是一个黑客,但它可能是你唯一可靠的选择。