Gstreamer tutorials
下载gst-docs
链接:git clone git://anongit.freedesktop.org/gstreamer/gst-docs
下载的教程是 eclipse 下的项目,所以需要导入android studio 使用
ubuntu 安装更新 android studio
因为 gstramer 文档很老,没有详细描述android studio 如何引用,这让不熟悉android studio 的人,使用起来全是异常
安装 android studio 确保 sdk 和 ndk 已经安装,并且可以编译执行
android studio 导入教程1
目录在 gst-docs/examples/tutorials/android-tutorial-1
点击 import project
选择 android-tutorial-1
这里选择不更新
- 点击 local.properities 发现 gradle 编译和同步失败,然后点击try again
消息框 弹出 报错如下
点击fix gradle wrapper and re-import …然后出现缺少sdk 点击 install missing plantform… 按照提示安装
点击 androidtutorial1 右键 选择 Link C++ project with gradle
- build system 选择 ndk-build 不选择cmake ,选择 project path 选择 项目的Android.mk
会出现 安装nsk 和同步项目错误 说明 ndk 还没有配置
配置ndk jdk,点击 androidtutorial1 右键 open Module Settings ,然后选择 左侧 sdk location
在Android NDK location 中选择 ~/cerbero/目录下的ndk然后在ndk 编译的时候,发现 GSTREAMER_ROOT_ANDROID 找不到
进入 jni 目录 编辑 Android.mk 添加如下代码
include $(BUILD_SHARED_LIBRARY)
GSTREAMER_ROOT_ANDROID := ~/cerbero/dist # 此行为添加 GSTREAMER_ROOT_ANDROID路径
ifndef GSTREAMER_ROOT_ANDROID
- 出现找不到 arm 目录下的 gstreamer-1.0.mk 的错误,此时需要检查路径
- 看到编译的arm64 在 ~/cerbero/目录下是android_arm64 ,所以修改 代码为
GSTREAMER_ROOT_ANDROID := ~/cerbero/dist
ifndef GSTREAMER_ROOT_ANDROID
$(error GSTREAMER_ROOT_ANDROID is not defined!)
endif
GSTREAMER_ROOT := $(GSTREAMER_ROOT_ANDROID)/android_arm64
# 其他的GSTREAMER_ROOT 路径指定都删除
- 还要修改 androidtutorial1 模块目录下的build.gradle
ndk {
moduleName "tutorial-1"
abiFilters 'armeabi','armeabi-arm64' # 此处为添加 根据自己手机 cpu架构选 abi
}
然后gradle编译通过
12 点击 make 的时候,出现 Error:(8, 33) error: cannot find symbol class GStreamer
进入目录按照要求拷贝到项目中来
删除Gstreamer@XXXXX@部分 影响编译
13 其他错误 ,当用高版本gradle 编译会报错,我这里使用gradle 是2.3.3
设置成这样 应该就可以了,遇到异常 再分析