我创建了一个简单的音乐播放器应用程序。到目前为止,它一直在从android.provider.MediaStore
获取歌曲元数据。
我从ALBUM_ART
的{{1}}列中获取了专辑封面。它返回专辑封面的路径,并为我的自定义歌曲适配器创建一个drawable。
但我最近发现了一些奇怪的事情。我的所有歌曲都在外部SD卡中。我从手机中取出SD卡,等待MediaStore反映更改并打开我的音乐应用程序。正如所料,所有歌曲都缺失了。
然后,我将SD卡放回手机并再次等待,然后重新打开我的应用程序。所有的歌曲再次出现,但这一次,所有的专辑艺术都不见了。而是显示我的默认专辑封面图像,这意味着从MediaStore获取的专辑封面文件路径为空。
然后我在手机上打开了第三部音乐应用程序(Musixmatch)并滚动显示专辑封面实际上已经出现。
现在这是我真正没有得到的部分。然后,我再次打开我的应用 ,现在专辑封面出现了。 然而,只有我在Musixmatch中向下滚动的专辑的专辑封面才出现。其余的再次空白。 然后我回到Musixmatch并滚动浏览手机中的整个专辑列表,等待每个人的封面显示出来。然后我回到我的应用程序,按照预期,现在所有专辑封面已成功从MediaStore加载。
第三方音乐应用程序如何才能让MediaStore缓存专辑封面,而我的应用却无法?我的应用程序有何不同的做法?