Android加入新的视频格式--媒体库扫描
需求:在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;
Android加入新的视频格式--媒体库扫描的更多相关文章
- Android 插入图片到媒体库
今天介绍一下在Android中怎么插入图片到媒体库,下面看代码: final String titleName = Function.md5(imageUri.toLowerCase()) + &qu ...
- 【FFMPEG】各种音视频编解码学习详解 h264 ,mpeg4 ,aac 等所有音视频格式
目录(?)[-] 编解码学习笔记二codec类型 编解码学习笔记三Mpeg系列Mpeg 1和Mpeg 2 编解码学习笔记四Mpeg系列Mpeg 4 编解码学习笔记五Mpeg系列AAC音频 编解码学习笔 ...
- 如何扫描出Android系统媒体库中视频文件
Android系统启动时会去扫描系统文件,并将系统支持的视频文件(mp4,3gp,wmv)扫描到媒体库(MediaStore)中,下面代码演示如何获得这些文件的信息: publicstatic Lis ...
- Android 获取视频照片与刷新媒体库
1.获取本地所有视频 public void getLoadMedia() { Cursor cursor = UILApplication.instance.getApplicationContex ...
- Android media媒体库分析之:MediaProvider
在做Android媒体应用程序时(Audio.Image.Video)需要对Android的媒体提供者(MediaProvider)做详细的分析,下面记录一下我的收获: 一.获取MediaProvid ...
- Android——媒体库 相关知识总结贴
Android媒体库 http://www.apkbus.com/android-19283-1-1.html Android本地图片选择打开媒体库,选择图片 http://www.apkbus.co ...
- 最简单的基于FFmpeg的移动端样例:Android 视频解码器-单个库版
===================================================== 最简单的基于FFmpeg的移动端样例系列文章列表: 最简单的基于FFmpeg的移动端样例:A ...
- 主攻互动娱乐和视频自媒体,新浪SHOW是不是桩好生意?
对互联网互动服务平台而言,近期几年会是空前重要的发展阶段,首先,互联网行业的持续发展.网民数量的持续激增必定带动网络互动朝更普及的方向迈进.其市场规模也必定会呈极数增长.其次,互动娱乐.视频自 ...
- Android官方新推的DI库 Hilt
Android官方新推的DI库 Hilt Hilt是Google Android官方新推荐的依赖注入工具. 已加入到官方文档: Dependency injection with Hilt. 目前是a ...
随机推荐
- UbuntuMate开机自动启动ssh服务
在文件/etc/init/ssh.conf中,有一句 start on filesystem or runlevel [2345] 如果想关闭自动启动的话,把这一局修改为start on runlev ...
- CF978C Letters【前缀和+二分查找/几房几号】
[链接]:CF978C [分析]:在前缀和数组种二分找到>=询问数的位置,根据位置就好操作了 [代码]: #include<bits/stdc++.h> using namespac ...
- Python_Tips[3] -> sort/sorted 排序函数
排序函数 / Sort Function list自带的sort函数可以实现对列表的排列功能,具有同样功能的还有sorted函数. 基本形式 列表有自己的sort方法,其对列表进行原址排序,既然是原址 ...
- APP专项测试 | 内存及cpu
命令: adb shell dumpsys meminfo packagename 关注点: 1.Native/Dalvik 的 Heap 信息 具体在上面的第一行和第二行,它分别给出的是JNI层和 ...
- Lowest Common Ancestor of a Binary Search Tree -- LeetCode
Given a binary search tree (BST), find the lowest common ancestor (LCA) of two given nodes in the BS ...
- luogu P1494 岳麓山上打水
题目描述 今天天气好晴朗,处处好风光,好风光!蝴蝶儿忙啊,蜜蜂也忙,信息组的同学们更加忙.最近,由于XX原因,大家不得不到岳麓山去提水.55555555~,好累啊. 信息组有一个容量为q升的大缸,由于 ...
- 彗星撞地球 | 近25万倍压缩的精品3D动画
文章目录 写在前面 Prophecy<彗星撞地球> 下载地址 简概 注意 3D射击小游戏 下载地址 简概 写在前面 WareZ是个无形的组织,号称"不以赢利为目的纯技术团体&qu ...
- rabbitmq集群节点操作
节点恢复过程中把数据删掉很重要,恢复一单结点,再清数据 节点增加: 1. rabbitmq-server -detached --- .erlang.cooike的权限,400 属主rabbitm ...
- iptables firewall-cmd
iptables -F iptables -P INPUT DROP iptables -P FORWARD DROP iptables -P OUTPUT ACCEPT iptables -A IN ...
- springboot 有用网址收集
http://www.ityouknow.com/spring-boot.html springboot多数据源配置: https://blog.csdn.net/neosmith/article/d ...