社区微信群开通啦,扫一扫抢先加入社区官方微信群
社区微信群
FFmpeg是一个开源的音视频处理库,原生C、C++开发;本系列的学习将从NDK的环境搭建开始、原理剖析、FFmpeg的源码讲解、FFmpeg的源码编译到动态库so,集成到app中实现基于ffmpeg的直播推流拉流的过程,实现rtsp/rtmp的推流拉流。
以上项目创建后,可以直接运行,包含了一套完整的NDK开发的模板:界面显示“Hello from C++”,内容来自C++
如果运行项目会在 app/build/intermediates/cmake/debug/armeabi-v7a/下生成一个 libnative-lib.so文件。
CMake 使用 lib库名称.so 的规范来为库文件命名,库名称即为我们定义的 native-lib。不过我们在Java代码中加载时,还是使用我们定义的库名称 native-lib。
cpp文件夹中是C++的代码源文件,ManinActivity中包含了native层的代码调用,build.gradle文件中包含了NDK的编译工具链的配置文件,文件详情说明如下:
应用视图界面,加载了一个名为native-lib
的库,定义了一个native
的方法stringFromJNI
,然后将stringFromJNI
返回的值设置到TextView
上。
CMakeLists.txt
:CMake 构建脚本。
native-lib.cpp
: 示例 C++ 源文件
build.gradle
:构建文件
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!