[英]Get album_id from Android Media Store
如果我知道Android設備上的MP3文件的路徑,那么如何獲取專輯ID,以便可以開始從媒體商店獲取其他值(例如專輯插圖)?
關於如何在Stackoverflow上檢索媒體存儲數據的示例有很多,但它們似乎都假設首先知道了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;
}
果然,我的搜索失敗。 為什么?
我使用Playstore的“專輯藝術抓手”添加了專輯的圖像。 如果我進入手機自己的音樂播放器,則可以看到專輯插圖,因此它必須已將插圖下載到某個地方。 也許我畢竟不應該使用EXTERNAL_CONTENT_URI?
這樣,您可以獲取專輯ID並從游標對象中獲取此參數
MediaStore.Audio.Media.ALBUM_ID
MediaStore.Audio.Media.ARTIST
MediaStore.Audio.Media.ARTIST_ID
有關此處的列的更多信息
使用/mnt/extSdCard
搜索將失敗
添加此行將產生結果:
songPath = songPath.replace( "/mnt/extSdCard/MP3", "/storage/extSdCard/MP3" );
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.