Android多媒体访问
来源:互联网 发布:软件类上市公司 编辑:程序博客网 时间:2024/06/06 03:02
Android多媒体访问
Android的多媒体文件主要存储在/data/data/com.android.providers.media/databases目录下,该目录下有两个db文件,一个是内部存储数据库文件(internal.db),一个是存储卡数据库(external-XXXX.db)。
媒体文件的操作主要是围绕着这两个数据库来进行。这两个数据库的结构是完全一模一样的。
Android提供了MediaStore类,该类是一个ContentProvider,管理着设备上自带的和外部的多媒体文件,同时包含着每一个多媒体文件的数据信息。
通过Uri我们可以获取到媒体信息的完整路径,类型等信息,同样,我们也可以通过文件路径创建Uri
由文件路径得到URI
Uri mUri = Uri.parse("content://media/external/images/media"); Uri mImageUri = null; Cursor cursor = mContext.getContentResolver().query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, null, null, null, MediaStore.Images.Media.DEFAULT_SORT_ORDER); cursor.moveToFirst(); while (!cursor.isAfterLast()) { String data = cursor.getString(cursor.getColumnIndex(MediaStore.MediaColumns.DATA)); if (picPath.equals(data)) { int ringtoneID = cursor.getInt(cursor.getColumnIndex(MediaStore.MediaColumns._ID)); mImageUri = Uri.withAppendedPath(mUri, ""+ ringtoneID); break; } cursor.moveToNext(); }
由Uri获取文件路径
string myImageUrl = "content://media/external/images/media/***"; Uri uri = Uri.parse(myImageUrl); String[] proj = { MediaStore.Images.Media.DATA }; Cursor actualimagecursor = mContext.getContentResolver().query(uri,proj,null,null,null); int actual_image_column_index = actualimagecursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA); actualimagecursor.moveToFirst(); String img_path = actualimagecursor.getString(actual_image_column_index); File file = new File(img_path); Uri fileUri = Uri.fromFile(file);
获取本地媒体数据库中的video相关信息
private void testScanVideoUri(){ Log.w(TAG,"testScanVideoUri come in=="+MediaStore.Video.Media.EXTERNAL_CONTENT_URI); Cursor cursor = mContext.getContentResolver().query(MediaStore.Video.Media.EXTERNAL_CONTENT_URI, null, null,null, null); int totalCount =cursor.getCount(); Log.w(TAG,"totalCount = "+totalCount); cursor.moveToFirst(); for( int i = 0;i < totalCount;i++){ String data = cursor.getString(cursor.getColumnIndex(MediaStore.MediaColumns.DATA)); String data1 = cursor.getString(cursor.getColumnIndex(MediaStore.Video.Media.DATA)); String title = cursor.getString(cursor.getColumnIndex(MediaStore.Video.Media.TITLE)); String type = cursor.getString(cursor.getColumnIndex(MediaStore.Video.Media.MIME_TYPE)); int id = cursor.getInt(cursor.getColumnIndex(MediaStore.Video.Media._ID)); Log.i(TAG,"data="+data); Log.i(TAG,"data1="+data1); Log.i(TAG,"title="+title); Log.i(TAG,"type="+type); Log.i(TAG,"id="+id); cursor.moveToNext(); } Log.w(TAG,"testScanVideoUri come out"); }
参考:
Android媒体的一些使用总结
http://blog.csdn.net/xingtian713/article/details/6458150
Android媒体的一些使用总结(2)
http://blog.csdn.net/xingtian713/article/details/6525411
Android多媒体学习一:Android中Image的简单实例。
http://blog.csdn.net/chenjie19891104/article/details/6320323
Android开发之旅: Intents和Intent Filters(理论部分)
http://www.cnblogs.com/skynet/archive/2010/07/20/1781644.html
Android学习笔记——文件路径(/mnt/sdcard/...)、Uri(content://media/external/...)学习 (比较透彻)
http://www.cnblogs.com/lingyun1120/archive/2012/04/18/2455212.html
Android 4.4从图库选择图片,获取图片路径并裁剪
http://blog.csdn.net/tempersitu/article/details/20557383
http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2014/0821/1660.html
- Android多媒体访问
- Android 多媒体
- android 多媒体
- android 多媒体
- Android多媒体
- Android多媒体
- Android多媒体
- Android--多媒体
- Android多媒体
- Android-多媒体
- Android多媒体
- Android多媒体
- Android Music android多媒体
- 【Android多媒体】多媒体架构-Android官网
- 【Android多媒体】多媒体架构-Android官网
- Android多媒体-支持的多媒体格式
- Android的多媒体框架
- android多媒体录制
- jquery实现的返回顶部+侧边栏功能
- mysql重连,连接丢失
- form下载文件,指向iframe ,如何判断iframe加载完成 form.submit之后的事件问题 监听form表单下载文件是否完成
- Android数据加密之Base64编码算法
- js中replace全部替换的正则表达式
- Android多媒体访问
- caffe相关特殊层解释
- MySQL数据库设计——以学生成绩数据库为例
- [Android]笔记13:改变分割条、基于数据的ListView
- android好用的资源
- Android+FFmpeg+OpenSL ES音频解码播放
- 关于程序猿的经典段子:杀一个程序员不需用枪,改三次需求即可
- 1262: 判断奇偶性
- layer插件如何在弹出层中弹出一警告提示并关闭弹出层