2017-09-26 64 views
0

使用音頻文件檢索的這種方法從Android的外部存儲有什麼方法可以使用MediaStore獲取歌曲的流派?

Cursor cursor = getContentResolver().query(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, null, null, null, null); 

其實我可以找到一個合理的方式來獲取給定的歌曲的風格? MediaStore類似乎提供了其他所有內容 - 從歌曲標題到作曲者信息 - 除了流派字段。我應該使用MediaMetadataRetriever嗎?如果是這樣,爲設備上的每首歌曲創建一個MediaMetadataRetriever實例會如何顯着降低應用程序的性能?

也許有更好的方法來檢索android中的外部和內部存儲所有音頻文件?

回答

0

截至Developer's Site提到,

可以使用MediaStore.Audio.Genres獲取音頻文件的流派

示例代碼:

private static String[] genresProj = { 
      MediaStore.Audio.Genres.NAME, 
      MediaStore.Audio.Genres._ID 
    }; 

int idIndex = cursor 
       .getColumnIndexOrThrow(MediaStore.Audio.Media._ID); 

while (cursor.moveToNext()){ 
       int id = Integer.parseInt(mediaCursor.getString(idIndex)); 

       Uri uri = MediaStore.Audio.Genres.getContentUriForAudioId("external", id); 
       genresCursor = context.getContentResolver().query(uri, 
         genresProj , null, null, null); 
       int genreIndex = genresCursor.getColumnIndexOrThrow(MediaStore.Audio.Genres.NAME);     


        while (genresCursor.moveToNext()) { 
         Log.d(TAG, "Genre = " +genresCursor.getString(genreIndex)); 
        } 

      } 
     } 

要提取的其他細節音頻文件,請檢查here

相關問題