1. 编译环境
- 操作系统: Mac (OSX 10.10 Yosemite)
- JDK : 1.7
- JAVA IDE:JetBrains Intellji IDE Ultimate 14.02
- Android NDK:android-ndk-r10d
- Android SDN:android-sdk_r24.0.2
- Android VLC Git 版本:
commit 180149353d6cce63f7e55e345f5289b9b2e856d6
Author: VideoLAN <videolan@videolan.org>
Date: Tue Mar 17 15:18:55 2015 -0400
l10n: Thai update
Signed-off-by: Christoph Miebach <christoph.miebach@web.de>
commit fc3bb722db5407624b14b9e06684008f124a199c
Author: Alexander Lakhin <exclusion@gmail.com>
Date: Tue Mar 17 15:18:49 2015 -0400
l10n: Russian update
Signed-off-by: Christoph Miebach <christoph.miebach@web.de>
- VLC Git 版本:
commit 3ca68a656282c5dcb4c2ebbb9ec9e8ec6069576f
Author: Rémi Denis-Courmont <remi@remlab.net>
Date: Tue Mar 17 19:16:44 2015 +0200
block: simplify block_FifoRelease
Since the FIFO is being destroyed, there is no need to lock and to
update the FIFO internal state.
commit efc27f360357ee8ae65f64d20dd5e3d1e7280fa0
Author: Rémi Denis-Courmont <remi@remlab.net>
Date: Tue Mar 17 19:41:04 2015 +0200
udp: avoid alloc/free on I/O error
2. 编译 vlc 及 libvlcjni.so
- 设置环境变量
export ANDROID_SDK=/path/to/android-sdk
export ANDROID_NDK=/path/to/android-ndk
export PATH=$PATH:$ANDROID_SDK/platform-tools:$ANDROID_SDK/tools
- 下载 Android VLC 代码
git clone git://git.videolan.org/vlc-ports/android.git
- 编译 VLC 及相关 Jni 程序
# 题外话,真是拜服写脚本的人,一个脚本直接搞定所有事
sh compile.sh -a armeabi-v7a
如果你的环境与我类似,那么应该能编译成功 vlc 且生成了 libvlcjni.so
,此时脚本会继续生成其 Example 的 apk
但应该不会生成成功,会提示需要 SDK 21
而我们的是 SDK 22
,当然最好在编译之前用 Android SDK Manager
下载 SDK 21
,诚然对于懂点 Android
的程序员来说,这也无所谓,我们自己建个项目来生成一个简化的 VLC DEMO
。
3. VLC Android Demo
- 使用IDEA 生成一个 Android 项目,SDK 就选用 22 即可
将Android VLC源码中的
vlc-android
项目src
中的org.videolan.libvlc
全部拷到自己的项目工程里,同时将org.videolan.vlc.util
里的Preference
和VLCInstance
两个类一并拷过来,最后再把生成的 jni 拷到libs
下,如此操作后,项目应该是这样的:
figure 1. JNI 在Libs中的位置
figure 2. Java 代码结构视图
figure 3. Demo界面