最近在做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. Android Zip文件解压缩代码
  2. Android中多媒体文件、文档以及各类文件的获取
  3. Android 超简单的录制屏幕视频及生成GIF文件的方法
  4. 导入color文件中的颜色值 android
  5. Android中音频文件的使用
  6. Android播放ogg声音文件
  7. android 通过pull解析xml文件
  8. android studio 文件重命名快捷键

随机推荐

  1. Android写一个实时输入框功能
  2. Android面试复习汇总
  3. Android(安卓)NDK 编译时出现make (e=2):
  4. faac 移植到android
  5. To Do List
  6. android 解析json数据(一)
  7. 【杂记】一些小知识点,在这里记录一下。
  8. Android(安卓)滑动悬浮置顶指南
  9. Android快速开发框架dyh详解(二)---控件
  10. Android再按一次完全退出程序代码