簡體   English   中英

從Android Media Store獲取album_id

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM