3. Android2.3为MediaScanner增加其它格式的支持
2014-10-23 17:37
302 查看
http://blog.csdn.net/woker/article/details/7696992
再不写下来就忘了。
Android启动后会自动调用MediaScanner来检索vfat分区中媒体文件,如果找到一个格式支持的文件,并且数据库中没有记录,它就会试着解码一下,如果成功就会加入到数据库中,接下来点击进入Gallery才有可能看到这个文件, 如果解码不成功就不会加入数据库中,在Gallery里不会看到。
改一下frameworks/base/media/java/android/media/MediaFile.java就行,里面注册了各种支持的格式。在video file types里面增加
[cpp] view
plaincopy
public static final int FILE_TYPE_RM = 30;
public static final int FILE_TYPE_RMVB = 31;
public static final int FILE_TYPE_AVI = 32;
public static final int FILE_TYPE_MOV = 33;
修正LAST_VIDEO_FILE_TYPE:
[cpp] view
plaincopy
private static final int LAST_VIDEO_FILE_TYPE = FILE_TYPE_MOV;
把image file types的值都加100,避免冲突。
[cpp] view
plaincopy
public static final int FILE_TYPE_JPEG = 131;
public static final int FILE_TYPE_GIF = 132;
public static final int FILE_TYPE_PNG = 133;
public static final int FILE_TYPE_BMP = 134;
public static final int FILE_TYPE_WBMP = 135;
最后在下面addFileType里注册一下:
[cpp] view
plaincopy
addFileType("RM", FILE_TYPE_RM, "video/ffmpeg");
addFileType("RMVB", FILE_TYPE_RMVB, "video/ffmpeg");
addFileType("AVI", FILE_TYPE_AVI, "video/ffmpeg");
addFileType("MOV", FILE_TYPE_MOV, "video/ffmpeg");
addFileType的第一个参数是文件扩展名,第二个是ID号,第三个文件的mime,要和Extractor返回的文件mime匹配。我这里都是用的上一篇说的FFMEPGExtractor,它返回的文件mime都是"video/ffmpeg",所以这里也要写成"video/ffmpeg"。
到这里,java部分就可以了。接下来改Stagefright里面的格式支持。在frameworks/base/media/libstagefright/StagefrightMediaScanner.cpp里。
一上来,在kValidExtensions数组里就可以看到各种文件后缀名,加上我们自己的:
[cpp] view
plaincopy
, ".avi", ".flv", ".rm", ".rmvb", ".wmv", ".mov"
好了,结束了。
再不写下来就忘了。
Android启动后会自动调用MediaScanner来检索vfat分区中媒体文件,如果找到一个格式支持的文件,并且数据库中没有记录,它就会试着解码一下,如果成功就会加入到数据库中,接下来点击进入Gallery才有可能看到这个文件, 如果解码不成功就不会加入数据库中,在Gallery里不会看到。
改一下frameworks/base/media/java/android/media/MediaFile.java就行,里面注册了各种支持的格式。在video file types里面增加
[cpp] view
plaincopy
public static final int FILE_TYPE_RM = 30;
public static final int FILE_TYPE_RMVB = 31;
public static final int FILE_TYPE_AVI = 32;
public static final int FILE_TYPE_MOV = 33;
修正LAST_VIDEO_FILE_TYPE:
[cpp] view
plaincopy
private static final int LAST_VIDEO_FILE_TYPE = FILE_TYPE_MOV;
把image file types的值都加100,避免冲突。
[cpp] view
plaincopy
public static final int FILE_TYPE_JPEG = 131;
public static final int FILE_TYPE_GIF = 132;
public static final int FILE_TYPE_PNG = 133;
public static final int FILE_TYPE_BMP = 134;
public static final int FILE_TYPE_WBMP = 135;
最后在下面addFileType里注册一下:
[cpp] view
plaincopy
addFileType("RM", FILE_TYPE_RM, "video/ffmpeg");
addFileType("RMVB", FILE_TYPE_RMVB, "video/ffmpeg");
addFileType("AVI", FILE_TYPE_AVI, "video/ffmpeg");
addFileType("MOV", FILE_TYPE_MOV, "video/ffmpeg");
addFileType的第一个参数是文件扩展名,第二个是ID号,第三个文件的mime,要和Extractor返回的文件mime匹配。我这里都是用的上一篇说的FFMEPGExtractor,它返回的文件mime都是"video/ffmpeg",所以这里也要写成"video/ffmpeg"。
到这里,java部分就可以了。接下来改Stagefright里面的格式支持。在frameworks/base/media/libstagefright/StagefrightMediaScanner.cpp里。
一上来,在kValidExtensions数组里就可以看到各种文件后缀名,加上我们自己的:
[cpp] view
plaincopy
, ".avi", ".flv", ".rm", ".rmvb", ".wmv", ".mov"
好了,结束了。
相关文章推荐
- Android4.2 MediaScanner增加其他格式的支持
- 此项目是bootstrap-datetimepicker 项目 的一个分支,原项目不支持 Time 选择。 其它部分也进行了改进、增强,例如load 过程增加了对 ISO-8601 日期格式的支持。
- 将skia支持的其它格式图像转换为bmp8888的小工具
- 让IIS支持bootstrap 增加svg和woff格式文件的支持
- WebServer增加svg和woff格式文件的支持
- 让IIS支持bootstrap 增加svg和woff格式文件的支持
- 在ffmpeg中增加libavformat库所支持格式的媒体文件
- 增加动态的2D/3D图形控件Vectordraw Developer Framework 支持10多种矢量格式和多种离散格式
- 在ffmpeg中增加libavformat库所支持格式的媒体文件
- 在ffmpeg中增加libavformat库所支持格式的媒体文件
- [导入]PDFCreator:一个开源的PDF打印机(同时还支持很多其它图片格式)
- kindeditor本身支持上传flash功能,但是我们经常需要上传一些flv、mp4或则其它格式的视频。 其实具体的播放功能是通过jwplayer实现的。我只对kindeditor简单的修改了一下
- 用ORACLE 存储过程发送HTML邮件,支持文本和HTML两种格式,增加防中文乱码
- 孤帆代码着色器1.1.0.0(增加了对rtf格式的支持)
- sourceInsight中增加.hh .cc支持及其它语言支持
- VAX对多种格式增加支持
- 配置 nginx 支持 f4v视频格式播放
- 扩展OGR格式驱动(二)-需要外部依赖库支持
- 支持Word文档和其他文件格式间的转换的控件Spire.Doc for .NET
- 支持导出PDF文件并转换成图片格式的PDF查看控件Spire.PDFViewer