[Android]IsoParser讲解
来源:互联网 发布:ubuntu ssd hdd 编辑:程序博客网 时间:2024/05/17 01:43
公司要做一个在线播放视频的APP。这玩意可真是麻烦啊。咱们可从来没接触过多媒体开发啊。55555~~~。在google搜了半天,都没有一个Open Source的project。郁闷啊郁闷!!
就可以了。
然后将aspectjrt.jar和isoparser-1.0-RC-10.jar拷贝到这个目录下。
接着在project的名称上右击,选择属性。选择Java Build Path,在后边点击Add Library...,如下图:
点击Next按钮,出现下图
点击User Libraries...按钮,
点击OK按钮
然后点击Add JARs...选择aspectjrt.jar就可以了。
这时候运行project,就不会报错了。而且能正确取得MP4的文件内容。
开始恶补MP4的知识。OMG!!光MP4就有200多页的书。唉唉。好不容易将MP4的结构大概明白了。在网上也找到了一个解析MP4的源码。就是这个让我吃尽苦头的IsoParser,可能叫MP4Parser更好些。这个的介绍在
http://code.google.com/p/mp4parser/
IsoViewer
里面的IsoViewer是用来查看MP4结构的。用法可查看这篇博文:http://blog.sina.com.cn/s/blog_6c762bb301016swe.html
现在我需要的是解析MP4的java源代码。
解析MP4的Java源代码
源代码的下载地址在:
https://oss.sonatype.org/content/repositories/comgooglecodemp4parser-568/com/googlecode/mp4parser/isoparser/1.0-RC-10/
如果要下载源代码,选择isoparser-1.0-RC-10-sources.jar下载就可以了。下载后直接解压,就能看到很多java文件。这就是源代码了。
这个作者很勤奋啊。又有新版本了。
https://oss.sonatype.org/content/repositories/comgooglecodemp4parser-135/com/googlecode/mp4parser/isoparser/1.0-RC-11/
Aspecj
本来以为捡到一个宝贝,结果导入到project中,用不了。需要aspectjrt.jar。在eclipse网站下载下来,然后安装。检查下"C:\aspectj1.7\lib\aspectjrt.jar" 是否有aspectjrt.jar存在。如果有就ok了。打开刚刚导入了isoparser源代码的工程。在工程名称上右击,选择属性,在属性里选择Java Build Path。
点击Add External JARS,选择aspectjrt.jar
就可以了。
nu.xom.*
接着又说这个nu.xom.*找不到。唉唉。
上网找了一下,终于找到一个地方下载:
http://repo1.maven.org/maven2/xom/xom/1.0b3/
将xom-1.0b3.jar下载下来。然后按上面aspectjrt的方法导入。终于都没有错误了。
这样源代码可以编译通过了。但是解析MP4还是不对。只能得到ftyp,moov和mdat这三个box。moov下面的子box都取不到。唉!!问了IsoParser的开发者,人家说自己编译源代码就是只能取到三个box。最好用他已经编译好了的IsoParser.jar。里面有用到aspectj技术去解析所有的box。
没办法。下载编译好的jar。
下载编译好的jar
还是在这个路径:https://oss.sonatype.org/content/repositories/comgooglecodemp4parser-568/com/googlecode/mp4parser/isoparser/1.0-RC-10/
选择isoparser-1.0-RC-10.jar下载就可以。
导入project中时,也是有讲究的。必须按照下面步骤导入,否则就会报奇奇怪怪的错。譬如下图所示:
首先在这个project下,建立一个目录,叫libs。
然后将aspectjrt.jar和isoparser-1.0-RC-10.jar拷贝到这个目录下。
接着在project的名称上右击,选择属性。选择Java Build Path,在后边点击Add Library...,如下图:
接着选择User Library。
点击Next按钮,出现下图
点击User Libraries...按钮,
点击New...按钮,随便输入一个User Library Name,
点击OK按钮
然后点击Add JARs...选择aspectjrt.jar就可以了。
IsoParser-1.0-RC-10.jar都是这样导入。导入后project结构如下:
这时候运行project,就不会报错了。而且能正确取得MP4的文件内容。
注意:Android Dependencies目录下亚欧有这两个jar文件。如果没有,就重复删除粘贴jar包到libs目录下或者重复删除libs新建libs目录几次,系统又会自动添加进来了。
可用以下代码进行测试。
private void parseMP4()
{
String localFilePath = "/sdcard/test.mp4";
IsoFile isoFile = null;
try {
isoFile = new IsoFile(new RandomAccessFile(localFilePath,"r").getChannel());
} catch (Exception e) {
e.printStackTrace();
}
if (isoFile == null) {
Log.i(TAG, "isoFile == null");
return;
}
List<Box> boxes = isoFile.getBoxes();
Log.i(TAG, "box size:" + boxes.size());
MovieBox moov = isoFile.getBoxes(MovieBox.class).get(0);
if(moov != null)
{
int nLen = moov.getBoxes().size();
Log.i(TAG, "movie box:" + nLen);
MovieHeaderBox hb = moov.getMovieHeaderBox();
Log.i(TAG, "MovieHeaderBox:" + hb);
Log.d(TAG, "duration:" + hb.getDuration());
}
}
{
}
转载自:http://blog.sina.com.cn/s/blog_6c762bb301017f24.html
阅读全文
0 0
- [Android]IsoParser讲解
- Android BroadCast类讲解
- Android 布局讲解
- Android BroadCast类讲解
- android binder 讲解
- android layout_weight讲解
- android layout_weight讲解
- android layout_weight讲解
- Android Phone类讲解
- Android之handler讲解
- Android UI 讲解
- Android ContentProvider讲解
- android layout_weight讲解
- android 全面讲解BroadCastReceiver
- Android NDK 讲解
- android layout_weight讲解
- Android 布局文件属性讲解
- android-view讲解 - 随心
- 学习:java设计模式—工厂模式
- jsp--补6月12号的
- MVC
- AndroidManifest.xml的xml语法层次
- 内容提供者ContentProvider和内容解析者ContentResolver
- [Android]IsoParser讲解
- linux
- select机制
- 彻底删除Windows 7下残留打印机驱动
- 基于Jenkins-2.46.3进行持续集成
- Linux基础记录
- video_device ops in user_space
- Android 中关于 【Cursor】 类的介绍
- 9.高级控件(三)之 RecyclerView