android 自带的mediaplayer出于一些专利等等滴原因,只能支持mp4格式视频的播放,对于一款能够满足用户需求的视频播放器应用肯定是远远不够的,那么我们需要采取一些手段了,废话不多说了。
首先想到的肯定是使用jni去调一些c库,然后我就找到了ffmpeg,很遗憾,个人虽然自认为C还可以(哈哈,有点吹牛啦),但是这个c库涉及底层的东西实在太多了,刚开始将它在linux下编译,挺快就能播放视频了,但是,随着这个,蛋疼的事情也来了,要将它移植到手机arm平台,那老费劲了,指定平台是liunx,和arm再去用那些armgcc啥的编译,纠结了好几个晚上。(说明下这里为何不使用现成的ndk-build,因为这个编译相对来说比较复杂,所以那个Android.mk文件真不知该从何下手去写),偶然发现有一个使用ffmpeg的开源库vitamio(可以百度 农民伯伯 去他的博客园可以详细的了解这个)
接下来我就是使用的这个开源库,我虽然对ffmpeg还是很感兴趣,但做应用嘛,能站在人家的肩膀上是最好的了嘛,可能我们见解不一样,不要喷我哦。
第一篇就详细的说下如何把官方给的demo调试通过吧:
首先是下载包:可以在这个博客上下载 http://www.cnblogs.com/over140/archive/2013/01/15/2860653.html
下载完成后,首先,导入android工程VitamioBundle(可能会有一些小错误,把那些 overwrite去调就好了),然后右键项目--》属性--》选到android 把最下面的is liblary打钩,apply 应用就好了。
这个就是我们用的解码库了,至于里面提供了哪些接口,等做的时候去看那些api吧
接下来就是调试那个 demo了,android导入工程,这里会报错,因为还没有使用那个库,使用库有两种办法:
1:直接将上面这个工程的两个jar包导入,然后builder-path,变成奶瓶就好了:两个jar包分别是vitamioBunlder 和 vitamio两个
2:右键该demo,属性---android--在下面的lib那边点击add,选择上面那个工程,ok了
有一些小错的话自己改一下,运行。
注意这个demo是使用的一个网络包,所以确保可以上网。
然后注意题目,俺说的是可以播放任何视频格式的,到demo中将path修改成需要使用的那个视频文件的路径就成了,赶紧试一试吧,如果有问题可以留言,非常乐意为您解决