与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
- 与Apollo有关的MediaProvider
- MediaProvider的学习
- MediaProvider下的bug分析
- Apollo
- Apollo的file I/O API
- 基于apollo的mqtt实现(java)
- Apache-apollo(windows下的搭建)
- 关于百度的开源Apollo项目
- 与系统管理有关的命令
- 与工作有关的博客
- 与青春有关的日子
- 与青春有关的日子
- 与ado有关的问题
- 与“穿着”有关的谚语
- 与打印有关的CSS
- 与“鼠”有关的成语
- 与星期有关的短语
- 与房屋有关的词汇
- CSharp_DevExpress_XtraReport简单实现;
- 如何用word 2013 自动生成目录
- HibernateDaoSupport和HibernateTemplate
- iOS 平台开发应用并发布到 App Store 流程
- 注册表中%1与%*对批处理参数传递的影响
- 与Apollo有关的MediaProvider
- 3.3 跨越进程边界共享内核对象
- TEXT、TINYTEXT、MEDIUMTEXT、LONGTEXT选择
- C++ 底层做的事情
- python安装遇到编码错误的问题
- MySQL中的C API
- 使用ALT的C++标准库里面的map
- 如何在批处理文件中使用参数
- php中的json使用