>>分享Android开发相关的技术 书籍支持  卫琴直播  品书摘要  在线测试  资源下载  联系我们
发表一个新主题 开启一个新投票 回复文章 您是本文章第 19462 个阅读者 刷新本主题
 * 贴子主题:  Android开发实践:编译VLC-for-Android 回复文章 点赞(0)  收藏  
作者:flybird    发表时间:2020-03-31 20:08:46     消息  查看  搜索  好友  邮件  复制  引用

               最近在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最新的源码即可:

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

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

               (1) 配置编译环境变量

              具体参考wiki的介绍,你可以写个shell脚本来执行,避免每次编译都要配置,下面是我的环境变量,可以根据你的路径修改:
#! /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) 执行编译

sh compile.sh

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

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

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

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

              点击在新窗口中浏览原图
CTRL+鼠标滚轮放大或缩小
               (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的整个工程。

          点击在新窗口中浏览原图
CTRL+鼠标滚轮放大或缩小

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

                   5. 总结

            Vlc-for-android的编译过程就简单地介绍到这儿了,有任何疑问欢迎留言讨论或者来信lujun.hust@gmail.com交流,或者关注我的新浪微博 @卢_俊 获取最新的文章和资讯。

            

----------------------------
原文链接:https://blog.51cto.com/ticktick/1586072

程序猿的技术大观园:www.javathinker.net



[这个贴子最后由 flybird 在 2020-04-08 09:33:21 重新编辑]
网站系统异常


系统异常信息
Request URL: http://www.javathinker.net/WEB-INF/lybbs/jsp/topic.jsp?postID=3154

java.lang.NullPointerException

如果你不知道错误发生的原因,请把上面完整的信息提交给本站管理人员