本系列博客专述如何使用 FFmpeg 实现一个简单的播放器,总共分为 6 篇,主要包括了Android FFmpeg 环境搭建、音频解码与播放、视频解码与播放、音视频同步、快进/快退、暂停与停止。其中涉及到了 C++ 基础,多线程、OpenSL ES、 Surface、FFmpeg 解码等技术。
1、新建项目
选择一个空白 Activity, 命名自定义,如下图所示
2、配置 CMake 环境
在 src/main 目录下新建一个 cpp 目录, 用来存放 C/C++ 源代码。
配置 CMakeLists.txt, 这个文件是 CMake 编译 C/C++ 源码时必须创建的。关于 CMake 点击此处阅读。简单入门请参考 CMake 零基础入门。有了源文件,虽然里面还没有内容,暂时不需要关注。需要告诉编译系统怎样编译源文件,打包到 apk 中使用,要想 Android 系统能调用 C/C++ 写的库,必须将源码编译后打包成动态库 .so 文件。 有如下几个步骤:
-
在 cpp 目录下新建 CMakeLists.txt 文件,配置内容如下
# 支持 cmake 最小版本为 2.6
cmake_minimum_required(VERSION 2.6)
# 查找所有源文件, 将其存放到 SRC_DIR 变量中.
aux_source_directory(. SRC_DIR)
# 编译源文件生成链接库
add_library(native-lib SHARED ${SRC_DIR})
# 链接系统日志库 log 到 native-lib
target_link_libraries(native-lib log)