繁体   English   中英

Android Mediastore:如何有效地检索某种类型的所有歌曲?

[英]Android Mediastore: How to efficiently retrieve all songs of a certain genre?

我知道如何检索特定歌曲的类型 (请参阅获取类型 ),但我想要检索特定类型的所有歌曲。 由于“流派”似乎不是媒体项目的列之一,因此我不知道如何在单个查询中执行此操作,与艺术家或专辑不同。 有一种有效的方法吗? 感谢名单!

Uri uri = Audio.Genres.Members.getContentUri("external", genreID); 

String[] projection = new String[]{Audio.Media.TITLE, Audio.Media._ID};

Cursor cur = contentResolver.query(uri, projection, null, null, null);

您可以通过组合内容URI并查询MediaStore来完成此操作。 这是从Android音乐播放器借来的一些代码:

String [] cols = new String [] {MediaStore.Audio.Genres.NAME};
Cursor cursor = MusicUtils.query(this,
                ContentUris.withAppendedId(MediaStore.Audio.Genres.EXTERNAL_CONTENT_URI, Long.valueOf(mGenre)),
                cols, null, null, null);

这是MusicUtils中的代码:

public static Cursor query(Context context, Uri uri, String[] projection,
        String selection, String[] selectionArgs, String sortOrder, int limit) {
    try {
        ContentResolver resolver = context.getContentResolver();
        if (resolver == null) {
            return null;
        }
        if (limit > 0) {
            uri = uri.buildUpon().appendQueryParameter("limit", "" + limit).build();
        }
        return resolver.query(uri, projection, selection, selectionArgs, sortOrder);
     } catch (UnsupportedOperationException ex) {
        ErrorReporter.getInstance().putCustomData("UnsupportedOperationException", "true");
        return null;
    }

}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM