需求:在mediaprovider数据库中加入.mov后缀格式的视频文件

能够使用工具MediaInfo_GUI_0.7.67_Windows.3243836749.exe 查看mov文件编码格式类型,能够到http://download.csdn.net/detail/deng0zhaotai/8767089下载。

概要
完整名称 : D:\好歌曲学员合.mov
文件格式 : MPEG-4
格式简单介绍 : QuickTime
编码设置ID : qt
文件大小 : 83.8 MiB
长度 : 1分 2秒
平均混合码率 : 11.3 Mbps
编码日期 : UTC 2015-04-23 06:07:05
标记日期 : UTC 2015-04-23 06:08:38
编码函数库 : Apple QuickTime
㏕IM : 00:00:00:00
㏕SC : 25
㏕SZ : 1 视频
ID : 1
文件格式 : AVC
文件格式/信息 : Advanced Video Codec
格式简单介绍 : Main@L4.0
格式设置, CABAC : 否
格式设置, ReFrames : 2 frames
格式设置, GOP : M=1, N=50
编码设置ID : avc1
编码设置ID/信息 : Advanced Video Coding
长度 : 1分 2秒
码率 : 11.2 Mbps
画面宽度 : 1 920像素
画面高度 : 1 080像素
画面比例 : 16:9
帧率模式 : 恒定
帧率 : 25.000 fps
色彩空间 : YUV
色度抽样 : 4:2:0
位深度 : 8位
扫描方式 : 逐行扫描
bits/(pixel*frame)(数据密度) : 0.216
大小 : 82.8 MiB (99%)
标题 : 苹果视频媒体处理程序 / Apple 替身数据处理程序
语言 : English
编码日期 : UTC 2015-04-23 06:07:05
标记日期 : UTC 2015-04-23 06:08:38
颜色初选 : BT.709
传输特质 : BT.709
矩阵系数 : BT.709 音频
ID : 2
文件格式 : AAC
文件格式/信息 : Advanced Audio Codec
格式简单介绍 : LC
编码设置ID : 40
长度 : 1分 2秒
Source_Duration/String : 1分 2秒
码率模式 : CBR
码率 : 120 Kbps
额定码率 : 128 Kbps
声道 : 2声道
声道位置 : Front: L R
採样率 : 48.0 KHz
压缩模式 : 有损压缩
大小 : 909 KiB (1%)
Source_StreamSize/String : 909 KiB (1%)
标题 : 苹果声频媒体处理程序 / Apple 替身数据处理程序
语言 : English
编码日期 : UTC 2015-04-23 06:07:05
标记日期 : UTC 2015-04-23 06:08:38 其他
ID : 3
Type : Time code
文件格式 : QuickTime TC
长度 : 1分 2秒
TimeCode_FirstFrame : 00:00:00:00
TimeCode_Settings : Striped
标题 : 时间码媒体处理程序 / Apple 替身数据处理程序
语言 : English
编码日期 : UTC 2015-04-23 06:08:38
标记日期 : UTC 2015-04-23 06:08:38

能够看到两个实用的信息

文件格式 : MPEG-4

格式简单介绍 : QuickTime

须要改动的文件:frameworks/base/media/java/android/media/MediaFile.java,我们能够參考已有的视频格式加入

// Video file types
public static final int FILE_TYPE_FLV = 20;
public static final int FILE_TYPE_MP4 = 21;
public static final int FILE_TYPE_M4V = 22;
public static final int FILE_TYPE_3GPP = 23;
public static final int FILE_TYPE_3GPP2 = 24;
public static final int FILE_TYPE_WMV = 25;
public static final int FILE_TYPE_ASF = 26;
public static final int FILE_TYPE_MKV = 27;
public static final int FILE_TYPE_MP2TS = 28;
public static final int FILE_TYPE_AVI = 29;
public static final int FILE_TYPE_WEBM = 30;
public static final int FILE_TYPE_MOV = 52;
private static final int FIRST_VIDEO_FILE_TYPE = FILE_TYPE_FLV;
private static final int LAST_VIDEO_FILE_TYPE = FILE_TYPE_WEBM;

加入:public static final int FILE_TYPE_MOV = 52;  这一行

addFileType("MPEG", FILE_TYPE_MP4, "video/mpeg", MtpConstants.FORMAT_MPEG);
addFileType("MPG", FILE_TYPE_MP4, "video/mpeg", MtpConstants.FORMAT_MPEG);
addFileType("MP4", FILE_TYPE_MP4, "video/mp4", MtpConstants.FORMAT_MPEG);
addFileType("MOV", FILE_TYPE_MOV, "video/quicktime", MtpConstants.FORMAT_MPEG);
addFileType("M4V", FILE_TYPE_M4V, "video/mp4", MtpConstants.FORMAT_MPEG);
addFileType("3GP", FILE_TYPE_3GPP, "video/3gpp", MtpConstants.FORMAT_3GP_CONTAINER);
addFileType("3GPP", FILE_TYPE_3GPP, "video/3gpp", MtpConstants.FORMAT_3GP_CONTAINER);
addFileType("3G2", FILE_TYPE_3GPP2, "video/3gpp2", MtpConstants.FORMAT_3GP_CONTAINER);
addFileType("3GPP2", FILE_TYPE_3GPP2, "video/3gpp2", MtpConstants.FORMAT_3GP_CONTAINER);
addFileType("MKV", FILE_TYPE_MKV, "video/x-matroska");
addFileType("WEBM", FILE_TYPE_WEBM, "video/webm");
addFileType("TS", FILE_TYPE_MP2TS, "video/mp2ts");
addFileType("AVI", FILE_TYPE_AVI, "video/avi");
addFileType("FLV", FILE_TYPE_FLV, "video/flv");



文件格式 : MPEG-4

格式简单介绍 : QuickTime



信息可知。加入一行:addFileType("MOV", FILE_TYPE_MOV, "video/quicktime", MtpConstants.FORMAT_MPEG);



还要改动一个函数:

public static boolean isVideoFileType(int fileType) {
return (fileType >= FIRST_VIDEO_FILE_TYPE &&
fileType <= LAST_VIDEO_FILE_TYPE)
|| (fileType >= FIRST_VIDEO_FILE_TYPE2 &&
fileType <= LAST_VIDEO_FILE_TYPE2)
|| (fileType == FILE_TYPE_MOV);
}

加入条件:fileType == FILE_TYPE_MOV

能够把数据库删除:rm -rf /data/data/com.android.providers.media/databases/



然后重新启动手机。就能够在video视图中找到.mov的视频



当然以上代码能够作下优化,

public static final int FILE_TYPE_WEBM = 30;
public static final int FILE_TYPE_MOV = 31;
private static final int FIRST_VIDEO_FILE_TYPE = FILE_TYPE_FLV;
private static final int LAST_VIDEO_FILE_TYPE = FILE_TYPE_MOV;

那么涉及到后面就须要改动

// Image file types
public static final int FILE_TYPE_JPEG = 31;
public static final int FILE_TYPE_GIF = 32;
public static final int FILE_TYPE_PNG = 33;
public static final int FILE_TYPE_BMP = 34;
public static final int FILE_TYPE_WBMP = 35;
public static final int FILE_TYPE_WEBP = 36;
private static final int FIRST_IMAGE_FILE_TYPE = FILE_TYPE_JPEG;
private static final int LAST_IMAGE_FILE_TYPE = FILE_TYPE_WEBP; // Playlist file types
public static final int FILE_TYPE_M3U = 41;
public static final int FILE_TYPE_PLS = 42;
public static final int FILE_TYPE_WPL = 43;
public static final int FILE_TYPE_HTTPLIVE = 44;
public static final int FILE_TYPE_DASH = 45; private static final int FIRST_PLAYLIST_FILE_TYPE = FILE_TYPE_M3U;
private static final int LAST_PLAYLIST_FILE_TYPE = FILE_TYPE_DASH; // Drm file types
public static final int FILE_TYPE_FL = 51;

改动后的文件:http://download.csdn.net/detail/deng0zhaotai/8767221

Android加入新的视频格式--媒体库扫描的更多相关文章

  1. Android 插入图片到媒体库

    今天介绍一下在Android中怎么插入图片到媒体库,下面看代码: final String titleName = Function.md5(imageUri.toLowerCase()) + &qu ...

  2. 【FFMPEG】各种音视频编解码学习详解 h264 ,mpeg4 ,aac 等所有音视频格式

    目录(?)[-] 编解码学习笔记二codec类型 编解码学习笔记三Mpeg系列Mpeg 1和Mpeg 2 编解码学习笔记四Mpeg系列Mpeg 4 编解码学习笔记五Mpeg系列AAC音频 编解码学习笔 ...

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

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

  4. Android 获取视频照片与刷新媒体库

    1.获取本地所有视频 public void getLoadMedia() { Cursor cursor = UILApplication.instance.getApplicationContex ...

  5. Android media媒体库分析之:MediaProvider

    在做Android媒体应用程序时(Audio.Image.Video)需要对Android的媒体提供者(MediaProvider)做详细的分析,下面记录一下我的收获: 一.获取MediaProvid ...

  6. Android——媒体库 相关知识总结贴

    Android媒体库 http://www.apkbus.com/android-19283-1-1.html Android本地图片选择打开媒体库,选择图片 http://www.apkbus.co ...

  7. 最简单的基于FFmpeg的移动端样例:Android 视频解码器-单个库版

    ===================================================== 最简单的基于FFmpeg的移动端样例系列文章列表: 最简单的基于FFmpeg的移动端样例:A ...

  8. 主攻互动娱乐和视频自媒体,新浪SHOW是不是桩好生意?

        对互联网互动服务平台而言,近期几年会是空前重要的发展阶段,首先,互联网行业的持续发展.网民数量的持续激增必定带动网络互动朝更普及的方向迈进.其市场规模也必定会呈极数增长.其次,互动娱乐.视频自 ...

  9. Android官方新推的DI库 Hilt

    Android官方新推的DI库 Hilt Hilt是Google Android官方新推荐的依赖注入工具. 已加入到官方文档: Dependency injection with Hilt. 目前是a ...

随机推荐

  1. 用jmeter进行多用户并发压力测试

    测试要求如下,多用户同时登陆web应用程序,并进行操作,查看在多用户操作下,程序的performence.恰好,jemter下有个CSV Data Set Config,它用来设定一组参数,以便在向程 ...

  2. IO 输出 PrintStream和PrintWriter

    PrintStream和PrintWriter的autoflushing机制有点不同,前者在输出byte数组.调用println方法.输出换行符或者byte值10(即\n)时自动调用flush方法,后 ...

  3. Maximum Size Subarray Sum Equals k -- LeetCode

    Given an array nums and a target value k, find the maximum length of a subarray that sums to k. If t ...

  4. luogu P3834 【模板】可持久化线段树 1(主席树)

    题解真的是越写越懒 // luogu-judger-enable-o2 #include<cstdio> #include<algorithm> using std::sort ...

  5. js日常笔记

    写在前面: 在工作中,有时候会遇到一些零零碎碎的小知识点,虽然这些网上都可以查询到,但还是想把一些自己不是很熟悉的当做笔记记录下来,方便以后查询. 1.按钮隐藏/显示/可用/不可用 $("# ...

  6. Python数据结构:序列(列表[]、元组())与映射(字典{})语法总结

    一.概述:Python中两种基本的数据结构是序列和映射,序列包含:可变的列表和不可变的元组:而当序列不够用时就出现了映射:字典.列表中的元素是可以变化的,元组里面的元素一旦初始化后就不可更改.列表和元 ...

  7. cocurrent包 锁 Lock

    20. 锁 Lock java.util.concurrent.locks.Lock 是一个类似于 synchronized 块的线程同步机制.但是 Lock 比 synchronized 块更加灵活 ...

  8. Javascript 内置值、typeof运算符、true/false判断

    一.内置值       true       false         null         undefined       NaN       Infinity   二.typeof运算结果 ...

  9. 避免"松鼠症"

    转载: http://www.cnblogs.com/freeflying/p/7725385.html ted演讲: http://www.bilibili.com/video/av294900/

  10. ylb:事务

    ylbtech_sqlserver create database bank go use bank go create table users ( uid ,), uname ) not null, ...