如果我知道Android设备上MP3文件的路径,我如何获取album_id以便我可以从Media Store开始获取其他值(例如专辑图片)?
有许多关于如何在Stackoverflow上检索Media Store数据的示例,但他们似乎都假设首先知道album_id。
我尝试使用以下内容,但我根本无法获得任何匹配:
Cursor audioCursor = getContentResolver().query(
MediaStore.Audio.Media.EXTERNAL_CONTENT_URI,
new String[]{"*"},
MediaStore.Audio.Media.DATA + " = '" + songPath + "'",
null,
MediaStore.Audio.Media.TITLE + " ASC" );
示例songPath
:
"/mnt/extSdCard/MP3/Pain/2002 - Nothing Remains the Same/04-Just Hate Me.mp3"
我测试光标的结果如下:
if( ! audioCursor.moveToFirst() )
{
MyUtils.LogDebugf( "SEARCH FAILED::no results\n" );
return;
}
果然,我的搜索失败了。为什么呢?
我使用" Album Art Grabber"添加了相册的图像。来自Playstore。如果我进入手机自己的音乐播放器,我可以看到专辑封面,所以它必须在某处下载艺术品。也许我毕竟不应该使用EXTERNAL_CONTENT_URI?
答案 0 :(得分:0)
通过这种方式,您可以获取相册ID并从光标对象获取此参数
MediaStore.Audio.Media.ALBUM_ID
MediaStore.Audio.Media.ARTIST
MediaStore.Audio.Media.ARTIST_ID
有关列here
的更多信息答案 1 :(得分:0)
使用/mnt/extSdCard
添加此行会产生结果:
songPath = songPath.replace( "/mnt/extSdCard/MP3", "/storage/extSdCard/MP3" );