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

publicstatic List<VideoInfo> sysVideoList = null;// 视频信息集合 
sysVideoList = new ArrayList<VideoInfo>();   
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, nullnullnull);

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, nullnull);   
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())));

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

  1. android 媒体库扫描,如何扫描出Android系统媒体库中视频文件

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

  2. android 监听媒体库,一个蛋疼的功能,监听android系统媒体库的变动

    思考了很久,最后决定写博客,这是我入android坑两年多以来的第一篇博客,如果写的不好,往见谅. 废话不多说,直接上菜!!! 最近遇到一个非常奇葩的功能,做一个类似相册类的应用,名曰:智能相册,涉及 ...

  3. Android 从系统媒体库中选择视频

    只需两步: 第一步:发送Intent action.会在onActivityResult方法中返回选中视频的uri: Intent i = new Intent(Intent.ACTION_PICK, ...

  4. win7计算机的库如何更改储存位置,Win7如何往库中添加文件夹?小编教你操作

    大家都知道,在win7系统中,有一个特殊文件夹,叫做库,想要新建库,就需要在新建的库中添加一些文件夹路径,以实现同时打开多个不同磁盘上的文件.那么具体该怎么怎么操作呢?下面小编就给大家分享一下win7 ...

  5. android系统源码中添加app源码(源码部署移植)

    涉及到系统定制,需要在系统中加入自己的apk工程,但是上网找了很多资料都是不够全面的,或者看了还是没搞懂,我自己也是一点点摸索过来的,花了不少的时间,也是踩了不少的坑,因此特开一文,帮助大家渡河. 申 ...

  6. svg上传服务器无法显示,让WordPress支持上传SVG格式图片并显示在媒体库中的方法...

    让WordPress支持上传SVG格式图片并显示在媒体库中的方法 发布时间:2020-12-11 14:18:12 来源:亿速云 阅读:167 作者:小新 这篇文章将为大家详细讲解有关让WordPre ...

  7. 在 Android 系统源码中自定义系统服务(Custom System Service in AOSP)

    该原创文章首发于微信公众号:字节流动 在 Android 系统源码中自定义系统服务(Custom System Service in AOSP) 配置编译环境(Initial AOSP build e ...

  8. android获取多媒体库的视频、音频、图片

    从媒体库中查找音频.视频.图片文件的相关信息,并获取视频.图片.专辑图片的缩略图 和一些文件操作 package com.uwatch.swconnectservice.util; import ja ...

  9. git回退历史版本无法上传_Git系列教程(二):版本库中添加文件、版本回退

    Git系列教程(一):简介.安装.配置我们学习了分布式和版本控制系统的概念.Git具有的8个功能以及如何在Windows上安装Git.进行相关配置并创建版本库. Git版本库中添加文件 Git 的工作 ...

  10. android 读build.prop,Android系统下的build.prop文件

    Android系统下的build.prop文件,用adb shell进入,再进入到system目录,查看该目录下的文件,会看到build.prop文件,用exit命令退出. 1551927518(1) ...

最新文章

  1. 【numpy学习笔记】矩阵操作
  2. flannel原理初探针对0.1.0版本
  3. 红帽linux配置网桥#039;,redhat配置网桥
  4. qlist length 函数讲解_读《JavaScript 轻量级函数式编程》
  5. ios网络层优化深入浅出
  6. Graphviz之DT:手把手教你使用可视化工具Graphviz将dot文件转为结构图的png文件
  7. radio被选中,但是重复点击后事件不触发
  8. python天天向上每十天休息一天_Python基础第十天
  9. 杭电OJ-2104_hide handkerchief超简洁代码
  10. c语言考试常考试卷,c语言面试最必考的十道试题,求职必看!!!
  11. 用python爬虫爬微博_利用python爬取微博热搜
  12. linux服务器的诗句迁移,使用scp命令在两台linux上对拷文件或者文件夹
  13. [2013.8.29]对于多线程编程的几点个人见解
  14. Quotations
  15. JavaScript数据结构-列表
  16. 北理乐学c语言数字菱形,打印数字菱形,急啊,帮帮小女子啊。。。
  17. 钉钉电脑版扫描登录不了出现二维码失效和手机上确认登录电脑端没反应
  18. win7无法连接打印机拒绝访问_win7无法连接打印机拒绝访问|WinXP访问Win10打印机被拒绝怎么办?...
  19. 移动硬盘提示RAW的资料找到办法
  20. 关于CPU架构之总结

热门文章

  1. .net Remoting与Web Service的比较
  2. MyEclipse中的ant初识
  3. JSTL的一些使用规范,坑
  4. spark yarn 提交作业
  5. C++使用major做变量名的问题
  6. [hdu1532]最大流
  7. [转]让内网MOSS门户也用域名访问
  8. (转)如何真正实现由文档驱动的API设计?
  9. Python与Memcached交互
  10. GDB调试字符数组时指针和数组区别的体现