转载请注明出处:
http://www.jianshu.com/p/78f005e80d3b
你还在为开发中频繁切换环境打包而烦恼吗?快来试试 Environment Switcher 吧!使用它可以在app运行时一键切换环境,而且还支持其他贴心小功能,有了它妈妈再也不用担心频繁环境切换了。https://github.com/CodeXiaoMai/EnvironmentSwitcher
这篇文章不是对 MP4 Parser 怎样使用的介绍,而是记录下修改它的源码并生成 jar 包的过程。
MP4 Parser 是什么
A Java API to read, write and create MP4 container. Manipulating containers is different from encoding and decoding videos and audio.
这是 GitHub 上对它的介绍。
为什么要改 MP4 Parser 的源码
当然是为了加密~~~MP4 Parser可以对标准的视频和音频进行编码和解码,那么如果我们把 MP4 Parser 对音视频的编码过程修改为一个只有自己知道的过程,别人就没办法用正常的解码器来播放了。这样就达到了加密的目的。
下载 MP4 Parser源码
先将源码从 git 库中 clone 到本地(直接下载.zip再解压也可以)
git clone https://github.com/sannies/mp4parser.git
IDE选择
因为 MP4 Parser 是依赖 Maven 库的,所以我用的是 Eclipse Neon,下载地址:
安装好后,自带 Maven 插件。
安装并配置 Maven
下载 Maven 并解压到本地(我的是在D:\maven),下载地址:
http://apache.fayea.com/maven/maven-3/3.5.0/binaries/apache-maven-3.5.0-bin.zip
配置环境变量
打开解压到本地的 maven 目录,复制当前路径,在系统变量中添加变量名:“MAVEN_HOME”,变量值:“D:\maven”(注意你的变量值)。在Path中添加:“%MAVEN_HOME%\bin;”。
打开 CMD,输入 mvn -version,不提示“‘mvn’ 不是内部或外部命令,也不是可运行的程序或批处理文件。”就说明配置成功。
导入工程
打开 Eclipse,按如下操作:File->New->Project->General->Project,输入Project name,点击 finish 结束。
打开 clone 或解压到本地的 mp4parser 文件夹,将所有文件复制到刚才新建的工程目录下,目录结构如下图:
Build 工程
我们需要的修改的源码主要在 isoparser 和 muxer 这两个目录下。
右击 isoparser 目录下的 pom.xml,Debug As->Maven Install,开始构建。构建过程中如果遇到下面的问题:
就打开 pom.xml 文件,在<build><plugins>标签中添加如下代码:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.12</version>
<dependencies>
<dependency>
<groupId>org.apache.maven.surefire</groupId>
<artifactId>surefire-junit47</artifactId>
<version>2.12</version>
</dependency>
</dependencies>
</plugin>
保存文件后,再次右击 isoparser 目录下的 pom.xml,Debug As->Maven Install,开始构建。
如果看到 BUILD SUCCESS 则说明构建成功,如果在 isoparser 目录下看不到 target 目录就刷新一下,打开 target 目录isoparser-1.9.27.jar 就是我们要的 jar 包。
muxer 目录和 streaming 目录生成 jar 包的过程和 isoparser 是一样的。
这样,我们生成的 jar 包和官方提供的 jar 包就是一样的了。拉下来修源改代码,并打包。
修改源代码再次打包
重复上面的打包步骤,如果失败,那么很可能是你改对了地方,但是mp4parser 的测试没有通过,因为这个测试是针对标准的视频文件的,这里我们修改后已经不符合标准了,那么测试当然无法通过。
怎么办呢?很简单,把src目录下的 test 文件夹删除再打包就Ok了。