2017-09-26 2 views
0

utilisant cette méthode de récupération de fichiers audio à partir du stockage externe AndroidExiste-t-il un moyen d'extraire le genre d'une chanson à l'aide de MediaStore?

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

puis-je trouver en fait un moyen rentable pour chercher un genre de la chanson donnée? La classe MediaStore semble fournir tout le reste - du titre de la chanson à l'information du compositeur - à l'exception du domaine du genre. Devrais-je utiliser MediaMetadataRetriever alors? Si oui, à quel point la création d'une instance MediaMetadataRetriever pour chaque chanson sur un appareil peut-elle réduire considérablement les performances de l'application?

Peut-être qu'il existe de meilleurs moyens de récupérer tous les fichiers audio à la fois des stockages externes et internes dans Android?

Répondre

0

Comme mentionné au Developer's Site,

Vous pouvez chercher les Genres du fichier audio à l'aide MediaStore.Audio.Genres

Exemple de code:

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)); 
        } 

      } 
     } 

Pour récupérer d'autres détails de la Fichier audio, veuillez vérifier here.