##先设置变量
set(FFMPEG ${CMAKE_SOURCE_DIR}/ffmpeg)
set(RTMP ${CMAKE_SOURCE_DIR}/rtmp)
# 导入ffmpeg的头文件
include_directories(${FFMPEG}/include)
#配置环境变量
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -L${FFMPEG}/libs/${CMAKE_ANDROID_ARCH_ABI}")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -L${RTMP}/libs/${CMAKE_ANDROID_ARCH_ABI}")
#导入所有cpp 文件,
file(GLOB player *.cpp)
#动态库
add_library(
tsmplayer
SHARED
${player})
find_library(
log-lib
log)
target_link_libraries( # Specifies the target library.
tsmplayer
# Links the target library to the log library
# included in the NDK.
# 忽略顺序的方式,导入
-Wl,--start-group
avcodec avfilter avformat avutil swresample swscale
-Wl,--end-group
log # 日志库,打印日志用的
z # libz.so库,是FFmpeg 的支持库
rtmp # rtmp 流媒体
android # android 图像处理
OpenSLES # OpenSLES native 音频处理
${log-lib})
这里面一定要注意 / 分隔符的使用,稍有不慎就会各种报错,而且这个错误提示的是告诉你找不到文件,如果看一些网上的文章很容易就深陷下去,搞得自己崩溃,别问我是怎么知道的,这个问题给我坑的不要不要的,
在配置CMAKE 文件之前还需要指定 NDK 的编译以及打包版本
在build.gradle 文件
android{
defaultConfig{
externalNativeBuild {
cmake {
abiFilters "armeabi-v7a"
}
}
ndk{
abiFilters "armeabi-v7a"
}
}
}
配置好信息后,就可以愉快的开发 app 了,