首页 > 代码库 > Android开发实践:编译VLC-for-android

Android开发实践:编译VLC-for-android

最近在Android做流媒体相关的开发,一直想学习一下强大的VLC,正好趁此机会研究研究VLC-for-android的代码,看看优秀的开源音视频播放器是如何实现的。本文总结下在Linux平台下如何编译VLC-for-android。

 

编译环境:Ubuntu 14.04 64bit,VLC版本2.1.5

 

参考的文章:https://wiki.videolan.org/AndroidCompile/

 

1. 准备编译环境

 

基本上按照这篇wiki的介绍就足够了,为了顺利完成编译,建议首先保证相关的软件或者依赖库都已经下载好了,我再强调一下几个重点注意事项。

 

(1) Android SDK:必须使用SDK Platform Android 5.0, API 21,因为VLC-for-android用到了Android 5.0 的一些API。

 

(2) 最好通过apt-get install 把下面这些依赖的软件都安装一遍,或更新到最新版

      git,apache-ant (or ant), autoconf, automake, autopoint, cmake, gawk (or nawk), gcc, g++, libtool, m4, patch, pkg-config, ragel, subversion, unzip.

 

2. 下载源码包

 

直接通过git下载VLC-for-android最新的源码即可:

 

1
git clone git://git.videolan.org/vlc-ports/android.git

 

3. 编译VLC源码和VLC Android工程

 

(1) 配置编译环境变量

 

具体参考wiki的介绍,你可以写个shell脚本来执行,避免每次编译都要配置,下面是我的环境变量,可以根据你的路径修改:

 

1
2
3
4
5
6
#! /bin/sh
export ANDROID_SDK=/opt/android/sdk/
export ANDROID_NDK=/opt/android/android-ndk-r10/
export ANT_DIR=/opt/android/ant/
export PATH=$PATH:$ANDROID_SDK/platform-tools:$ANDROID_SDK/tools:$ANT_DIR
export ANDROID_ABI=armeabi-v7a

 

(2) 执行编译

 

1
sh compile.sh

 

VLC不愧是使用这么广泛的播放器,它的编译脚本写得非常强大和智能,直接通过执行compile.sh,它会自动check所有的依赖,并通过网络去下载缺失的库。

 

首先,它会下载vlc的源码,并存放在当前目录下。然后去下载依赖的第三方库文件。

 

当然,由于GFW的存在,有的时候下载会失败,这个时候,就需要你手动去Google搜索它正在下载的依赖文件,手动下载好了之后放到 vlc/contrib/tarballs目录下,然后再回到命令行重新执行 sh compile.sh

 

它依赖的全部第三方库文件如图所示:

 

wKioL1R-8zDTtDmZAAPrtC3xkEQ853.jpg

 

(3) 编译问题

 

编译过程还算顺利,只出现过一个大问题,如下:

 

1
2
3
google/protobuf/unittest.proto:853:21: Missing field number.
google/protobuf/unittest.proto:862:1: Reached end of input in message definition (missing ‘}‘).
make[3]: *** [unittest_proto_middleman] Error 1

 

网上也搜不到解决方案,我看了下GitHub上Protobuf的Readme,然后下载了最新的protobuf放到vlc/contrib/tarballs/contrib-android-arm-linux-androideabi/protobuf目录下,执行./configure --disable-shared,再编译,没想到就直接过了。

 

4.  加载VLC-For-Android的Java工程

 

编译通过后,就可以直接在vlc-android/bin目录下看到debug版的apk了,下面简单说说在Eclipse中加载vlc-android的整个工程。

wKiom1R-8i7gNVkQAAB0RDllS6Y772.jpg

打开Eclipse,选择Import,把vlc-for-android目录下所有的工程到导入到Eclipse中(我去掉了TV工程),如图所示,有5个必须的工程,其中,VLC是主工程,其他四个都是Lib工程。没有什么意外的话,直接运行VLC工程,就可以在Android手机上看到VLC播放器应用了!

 

5. 总结

 

Vlc-for-android的编译过程就简单地介绍到这儿了,有任何疑问欢迎留言讨论或者来信lujun.hust@gmail.com交流。

 

Android开发实践:编译VLC-for-android