Android系统启动时会去扫描系统文件,并将系统支持的视频文件(mp4,3gp,wmv)扫描到媒体库(MediaStore)中,下面代码演示如何获得这些文件的信息:

publicstatic List sysVideoList = null;// 视频信息集合

sysVideoList = new ArrayList();

setVideoList();

privatevoid setVideoList() {

// MediaStore.Video.Thumbnails.DATA:视频缩略图的文件路径

String[] thumbColumns = { MediaStore.Video.Thumbnails.DATA,

MediaStore.Video.Thumbnails.VIDEO_ID };

// MediaStore.Video.Media.DATA:视频文件路径;

// MediaStore.Video.Media.DISPLAY_NAME : 视频文件名,如 testVideo.mp4

// MediaStore.Video.Media.TITLE: 视频标题 : testVideo

String[] mediaColumns = { MediaStore.Video.Media._ID,

MediaStore.Video.Media.DATA, MediaStore.Video.Media.TITLE,

MediaStore.Video.Media.MIME_TYPE,

MediaStore.Video.Media.DISPLAY_NAME };

cursor = managedQuery(MediaStore.Video.Media.EXTERNAL_CONTENT_URI,

mediaColumns, null, null, null);

if(cursor==null){

Toast.makeText(SystemVideoChooseActivity.this, "没有找到可播放视频文件", 1).show();

return;

}

if (cursor.moveToFirst()) {

do {

VideoInfo info = new VideoInfo();

int id = cursor.getInt(cursor

.getColumnIndex(MediaStore.Video.Media._ID));

Cursor thumbCursor = managedQuery(

MediaStore.Video.Thumbnails.EXTERNAL_CONTENT_URI,

thumbColumns, MediaStore.Video.Thumbnails.VIDEO_ID

+ "=" + id, null, null);

if (thumbCursor.moveToFirst()) {

info.setThumbPath(thumbCursor.getString(thumbCursor

.getColumnIndex(MediaStore.Video.Thumbnails.DATA)));

}

info.setPath(cursor.getString(cursor

.getColumnIndexOrThrow(MediaStore.Video.Media.DATA)));

info.setTitle(cursor.getString(cursor

.getColumnIndexOrThrow(MediaStore.Video.Media.TITLE)));

info.setDisplayName(cursor.getString(cursor

.getColumnIndexOrThrow(MediaStore.Video.Media.DISPLAY_NAME)));

LogUtil.log(TAG, "DisplayName:"+info.getDisplayName());

info.setMimeType(cursor

.getString(cursor

.getColumnIndexOrThrow(MediaStore.Video.Media.MIME_TYPE)));

sysVideoList.add(info);

} while (cursor.moveToNext());

}

}

有一点需要注意的是:系统的媒体库并不会在我们添加视频文件后自动更新,我们如何去手动扫描媒体库,或者重启系统才能从媒体库中得到更新的视频文件:

sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED, Uri.parse("file://"

+ Environment.getExternalStorageDirectory())));

原文:http://www.cnblogs.com/wangfeng520/p/5089726.html

android 媒体库扫描,如何扫描出Android系统媒体库中视频文件相关推荐

  1. android+geturl+方法,浅入浅出Android(014):HTTP GET获取文本内容

    1.建立android项目MyApplication 2.修改布局文件activity_my.xml xmlns:tools="http://schemas.android.com/tool ...

  2. Android中视频文件的下载和播放

    String path = "http:.........."; // 下载地址// 创建文件夹,在存储卡下String dirName = Environment.getExte ...

  3. php一库多站,杰奇CMS小说系统 一库多站完整实现教程

    最近收集的 适用于伪静态或者动态模式,且如果杰奇内核或者数据库已经被二次开发或者魔改,可能就会失败. 测试环境:php5.3+zend+mysql 测试程序:杰奇1.8及杰奇2.2 数据库连接 首先安 ...

  4. c语言考试系统题库判断和选择,C考试系统题库判断和选择.doc

    一.判断题(正确的填A,错误的填B) 第一章 C语言基础知识 (C语言概述.算法.数据类型 运算符 表达式.位运算) 1.在C语言中,逗号运算符的优先级最低.(A) 2.在C语言可执行程序的开始执行点 ...

  5. Android RecyclerView复杂布局 实现多Item,item中含视频文件播放

    效果(随手画的啊,哈哈哈) 主要就是Adapter里面的内容 import android.content.Context; import android.content.SharedPreferen ...

  6. 静态库、动态库、静态链接、动态链接、系统运行库混合、MD MT默认库冲突问题

    一.静态库项目 静态库lib:(注意和"静态运行库"区分)   就是.lib文件,一个.c或.cpp会编译成一个.obj,多个.obj可以组合成一个.lib库.lib=多个obj. ...

  7. BIM族库下载——项目安保系统族库

    [资源介绍] 资源名称:BIM族库下载--项目安保系统族库 资源分类: BIM族库.Revit族库 其他简介:项目安保系统族库 [资源下载] 链接:https://pan.baidu.com/s/13 ...

  8. Android实现扫一扫识别图像数字(使用训练的库拍照查看扫描结果)(下)

    Android实现扫一扫识别图像数字(使用训练的库拍照查看扫描结果)(下) 关于 效果图 第一步,添加我们的训练库 编写扫描框控件 新建扫码界面ScannerActivity.java 关于二维码拍照 ...

  9. Luch简介— Android上的BLE信标扫描新库

    Bluetooth Beacons are the small devices that transmit small packages of data according to the BLE pr ...

最新文章

  1. 我的Java开发学习之旅------Java经典排序算法之希尔排序
  2. 【机器学习】集成学习与模型融合方法举例
  3. Leetcode 373. 查找和最小的K对数字 解题思路及C++实现
  4. 制作html5谭木记页面,北斗区域地理配套练习答案
  5. ARM7寄存器分布图
  6. member selection 运算符是什么
  7. 韦东山《嵌入式Linux应用开发完全手册》配套视频教程
  8. [FFMPEG播放器]结合FFMPEG使用SDL2渲染ASS字幕
  9. 在ZYNQ7000嵌入式操作系统Debian8下源代码编译安装并配置Ros环境(Kinetic版本)
  10. Maven到底是个啥?——Maven深入理解
  11. 循环日程表(递归、分治)
  12. 高级程序员到底长什么样子?
  13. 【小萝莉说Crash】第二期:Unrecognized selector xxx 之 ForwardInvocation
  14. python下载酷狗音乐源码
  15. 《数字图像处理》自学笔记(一)
  16. matlab矩阵除法、左除、求逆,这三者有什么区别
  17. Opencv+Zbar二维码识别(一维码校正)
  18. adb 读取短信,通话记录、日历、通讯录等的方法
  19. 代码实现:根据输入的年份,打印该年的年历
  20. 机票预订信息系统——数据库系统设计

热门文章

  1. 时光手帐如何打印 时光手帐打印的方法
  2. matlab矢量角度,MATLAB矢量,角度,图
  3. 学习Spring Boot:(二十四)多数据源配置与使用
  4. 修改TOMCAT的JVM虚拟机内存大小几种方式
  5. java实现简单二叉树
  6. php默认语法,php基本语法
  7. nginx 上传 文件超时设置_nginx限制上传大小和超时时间设置说明/php限制上传大小...
  8. windows分屏_windows内到底藏了多少好东西?
  9. matlab用高斯消元法解线性方程组,用matlab利用高斯消元法求解线性方程组
  10. red6.4 mysql_rhel6.4 yum本地yum源配置