最近在做Android下的音乐和视频播放器,Android默认只支持3gp和MP4两种视频格式,并且对streaming的播放支持也很有限。所以很多市面上的视频播放器都自带了第三方解码器。目前主要是FFMPEG和VLC解码器。有一个开源项目faplayer,主要是用到了VLC做解码库。faplayer目前控制方面的功能比较简单,但是解码效果比较理想,接近主流的Android视频播放器的播放效果。支持常规的视频格式。

虽然源码都能从网站上下载下来,不过需要用NDK编译出解码库,程序才能跑起来。用NDK编译VLC解码库可以在window下和Linux下进行。在window下编译总有这样那样的问题,最后在Linux下编译通过。

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

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

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

2、 安装android-ndk-r5c(项目中的README中的内容需要仔细阅读)。

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

3、 安装ruby 1.9.2

在Ubuntu下安装ruby: sudo apt-get install ruby
使用此命令安装的是1.8.7,还需要安装1.9.2
下载:http://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.2-p320.tar.gz
解压缩后,在解压后的目录中执行make和make install

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

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

export NDKPATH="ndk dir"

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

在终端使用 source /etc/profile 刷新内容。或者重启终端也可以验证设置是否正确:

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

cd $NDKPATH 跳转到NDK根目录

ruby的环境变量的配置与此相似。

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

5、 修改build.sh文件

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

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

ruby post-build.rb修改为:

$rubypath/ruby post-build.rb

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

6、 编译

终端下执行 ./build.sh

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

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

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

更多相关文章

  1. ubuntu上Android NDK调试配置
  2. android中TextView中如何设置水平滚动效果
  3. Android(安卓)高手进阶,自定义圆形进度条
  4. android中TextView中如何设置水平滚动效果
  5. Android(安卓)源码编译AIDL 使用实例讲解及Android(安卓)Studio
  6. Android(安卓)打造炫目的圆形菜单 秒秒钟高仿建行圆形菜单
  7. 编译可在Android上运行的依赖库:glib库
  8. Android(安卓)APN的设置问题
  9. Android2.2 API 中文文档系列(1)

随机推荐

  1. Web Components系列(一) —— 概述
  2. 【北亚数据恢复】MongoDB数据迁移过程中
  3. Chrome浏览器配置阿里云DNS方法
  4. PHP的8种数据变量、for&foreach循环语句
  5. 复制mysql数据表里的多条记录,并插入表里
  6. VueRouter报错:NET::ERR_ABORTED 404
  7. CentOS 8 EOL如何切换源?
  8. 【北亚数据恢复】MSSQL 2000 提示“错误
  9. 云服务器安全吗?如何设置?
  10. 官方镜像加速