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

              最近在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-06-04 20:42:21 重新编辑]
  Java面向对象编程-->变量的作用域和初始化
  JavaWeb开发-->Web运作原理(Ⅰ)
  JSP与Hibernate开发-->映射对象标识符
  Java网络编程-->ServerSocket用法详解
  精通Spring-->
  Vue3开发-->计算属性和数据监听
  Android开发教程之Java开发环境配置和运行第一个程序
  Android开发实践:用脚本编译Android工程
  android实用测试方法之Monkey与MonkeyRunner
  Android SDCard UnMounted 流程分析
  Android自定义组件
  Android API 中Toast类的用法
  Android Spinner范例
  Android OpenGL 学习笔记
  Android Socket通信
  Android 自定义View实现圆形进度条 深入理解onDraw和onMeasu...
  Android 自定义九宫格手势锁
  Android 应用程序组件
  Android 概述
  怎么让软键盘弹出时,部分控件上移
  Android adb你真的会用吗?
  更多...
 IPIP: 已设置保密
楼主      
1页 0条记录 当前第1
发表一个新主题 开启一个新投票 回复文章


中文版权所有: JavaThinker技术网站 Copyright 2016-2026 沪ICP备16029593号-2
荟萃Java程序员智慧的结晶,分享交流Java前沿技术。  联系我们
如有技术文章涉及侵权,请与本站管理员联系。