前一段时间在做Android下的音乐和视频播放器,音乐播放器有很多好的开源项目,而且大部分比较实用(有空会专门写一篇关于音乐播放器的文章)。但是视频方面的开源项目实在不多,主要是跟Android视频解码有关。Android默认只支持3gp和MP4两种视频格式,所以很多市面上的视频播放器都自带了第三方解码器。第三方解码器,目前主要是FFMPEG和VLC解码器。VLC官方正在开发一个Android平台的播放器,以后应该可以参考。这次主要是用到了一个开源项目faplayer。这个开源项目主要是用到了VLC做解码库。faplayer目前控制方面的功能比较简单,但是解码效果比较理想,接近主流的Android视频播放器的播放效果。支持常规的视频格式。

虽然源码都能从网站上下载下来,不过需要用NDK编译出解码库,程序才能跑起来。用NDK编译VLC解码库可以在window下和Linux下进行。不过我个人在window下折腾了两天还没弄好,最后只能在Linux下编译(window下编译需要安装cygwin和window下NDK,安装cygwin,我花了一个下午,主要是它需要重网络下载很多数据。从这点上来说,其实直接装个Ubuntu更快)。

  下面在Linux下用NDK编译VLC解码库的步骤:

  

1、 首先用git clone 下载faplayer的源码。最好用git clone下载。直接下载zip压缩包,编译的时候有问题。需要把include的文件夹修改。

git clone https://github.com/tewilove/faplayer.git

2、 安装ndkR6b

安装google的NDK,这里我用的是R6b版本。当前最新的Linux版本。

http://dl.google.com/android/ndk/android-ndk-r6b-linux-x86.tar.bz2

3、 安装ruby

在Ubuntu下安装ruby: sudo apt-get install ruby

4、 设置ndk的环境变量(不一定需要设置,设置了,方便后面使用)

输入: sudo gedit /etc/profile 打开profile文件,在最后,加入

export NDKPATH="/home/username/ ndk dir"

username = 是你用户的名字

ndk dir = 是你放NDK的根目录,根目录下有ndk-build文件

在终端使用 source /etc/profile 刷新内容。或者重启终端也可以

验证设置是否正确:

echo $NDKPATH 如果设置正确会输入你设置的路径

cd $NDKPATH 跳转到NDK根目录

环境变量一定要设置好,否则后面无法编译

5、 修改build.sh文件

Faplayer根目录下有一个build.sh文件,打开。第4行 ndk-build $@ || exit 1

改为 $ NDKPATH/ndk-build $@ || exit 1

主要是设置好编译的NDK的路径

6、 终端下执行 ./build.sh

这个编译要花点时间,大概十分钟左右。编译好在libs文件夹下有个一个libvlccore.so 大概11.3M的动态库。

这里还有一点需要说明,上面只是编译出libvlccore.so的解码库。其实faplayer的脚本文件build.sh是可以编译出整个apk文件的,不过还需要安装Ant和android的SDK以及配置相关开发环境。因为我主要是在window下开发Android的应用。所以我只要得到libvlccore.so就可以把工程拷到window下继续开发。把工程拷到window下,用eclipse打开,重新编译一次就好了。

build.sh默认是编译出一个arm-v7版本的动态库,如果需要在arm-A9或者arm-v7以下版本编译,需要调整编译参数。主要是Android.mk的编译参数。

用我自己的手机defy测试,播放效果不错。有空再截图上来~ 

更多相关文章

  1. 深入浅出 - Android系统移植与平台开发(十)- Android编译系统与定
  2. 熟悉Android打包编译的流程
  3. android体系结构
  4. Android(安卓)AOSP基础(三)Android系统源码的整编和单编
  5. android:padding 和 android:margin的区别
  6. android TextView XML的一些属性
  7. 在Windows中的安装Android(安卓)NDK开发环境
  8. Android编译环境
  9. Android(安卓)AOSP基础(三)Android系统源码的整编和单编

随机推荐

  1. android Zxing二维码扫描 竖屏切换问题的
  2. Android开发:创建项目后报错,com.android.i
  3. android 通过正则表达式遍历html中所有的
  4. Android TV开发总结(五)TV上屏幕适配总结
  5. Android文件上传至服务器
  6. Android调用系统相机和图库
  7. Android列表组件ListView使用详解之数据
  8. android修改软键盘的回车键为搜索键以及
  9. Android网络变化全局监听
  10. 【Android】Android消息处理机制