与Apollo有关的MediaProvider

来源:互联网 发布:淘宝网开店流程图 编辑:程序博客网 时间:2024/04/29 22:12

以下来自Apollo播放器

1.播放列表(audio_playlists)

数据库建View

                db.execSQL("CREATE VIEW audio_playlists AS SELECT _id," + PLAYLIST_COLUMNS +                        " FROM files WHERE " + FileColumns.MEDIA_TYPE + "="                        + FileColumns.MEDIA_TYPE_PLAYLIST + ";");
默认添加两项列表:

    /* Adds the favorites and last added playlists */    private void makeDefaultPlaylists() {        final Resources resources = getContext().getResources();        /* Favorites list */        final Playlist favorites = new Playlist(-1,                resources.getString(R.string.playlist_favorites));        mPlaylistList.add(favorites);        /* Last added list */        final Playlist lastAdded = new Playlist(-2,                resources.getString(R.string.playlist_last_added));        mPlaylistList.add(lastAdded);    }

得到用户添加的播放列表(比如:我的录音):

    public static final Cursor makePlaylistCursor(final Context context) {        return context.getContentResolver().query(MediaStore.Audio.Playlists.EXTERNAL_CONTENT_URI,                new String[] {                        /* 0 */                        BaseColumns._ID,                        /* 1 */                        PlaylistsColumns.NAME                }, null, null, MediaStore.Audio.Playlists.DEFAULT_SORT_ORDER);    }

(1)收藏夹数据取自自己的数据库。

(2)最后添加

    public static final Cursor makeLastAddedCursor(final Context context) {        final int fourWeeks = 4 * 3600 * 24 * 7;        final StringBuilder selection = new StringBuilder();        selection.append(AudioColumns.IS_MUSIC + "=1");        selection.append(" AND " + AudioColumns.TITLE + " != ''"); //$NON-NLS-2$        selection.append(" AND " + MediaStore.Audio.Media.DATE_ADDED + ">"); //$NON-NLS-2$        selection.append(System.currentTimeMillis() / 1000 - fourWeeks);        return context.getContentResolver().query(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI,                new String[] {                        /* 0 */                        BaseColumns._ID,                        /* 1 */                        AudioColumns.TITLE,                        /* 2 */                        AudioColumns.ARTIST,                        /* 3 */                        AudioColumns.ALBUM                }, selection.toString(), null, MediaStore.Audio.Media.DATE_ADDED + " DESC");    }
(3)自定义分类

    public static final long[] getSongListForPlaylist(final Context context, final long playlistId) {        final String[] projection = new String[] {            MediaStore.Audio.Playlists.Members.AUDIO_ID        };        Cursor cursor = context.getContentResolver().query(                MediaStore.Audio.Playlists.Members.getContentUri("external",                        Long.valueOf(playlistId)), projection, null, null,                MediaStore.Audio.Playlists.Members.DEFAULT_SORT_ORDER);        if (cursor != null) {            final long[] list = getSongListForCursor(cursor);            cursor.close();            cursor = null;            return list;        }        return sEmptyList;    }


0 0
原创粉丝点击