android studio 加载ffmpeg.so,Android Studio2.2.3 通过JNI引用ffmpeg库小结

修改步骤:首先通过NDK14编译出libffmpeg.so ,将include目录取出

通过AS建立基于jni的工程项目,将include目录放到cpp下;创建jniLibs/armeabi目录,将libffmpeg.so放到里边

4c7585fa5c0dd4a03e2ed43ecca4bf33.png

3.配置CMakeLists.txt

添加如下:

#add the ffmpeg lib

include_directories(${CMAKE_CURRENT_SOURCE_DIR}/src/main/cpp/include)

add_library(ffmpeg-lib  SHARED IMPORTED )

set_target_properties(ffmpeg-lib PROPERTIES IMPORTED_LOCATION ${CMAKE_CURRENT_SOURCE_DIR}/src/main/jniLibs/armeabi/libffmpeg.so)target_link_libraries( native-lib

ffmpeg-lib             #ffmpeg lib

android                #use the android log lib

${log-lib} )

4.配置build.gradle

主要添加arguments 和 ndk的配置

externalNativeBuild {

cmake {

cppFlags " "

arguments '-DANDROID_TOOLCHAIN=clang','-DANDROID_STL=gnustl_static'

}

ndk {

abiFilters  'armeabi'

}

}

5.native_lib.cpp#include

#include

#include

extern "C"

{

#include "libavcodec/avcodec.h"

#include "libavformat/avformat.h"

#include "libswscale/swscale.h"

#include "libavutil/imgutils.h"

#include "libavutil/avutil.h"

}

#define  LOG_TAG    "MyTagFFmpeg"

#define  ALOGE(...)  __android_log_print(ANDROID_LOG_DEBUG, LOG_TAG, __VA_ARGS__)

extern "C"

jstring

Java_letv_com_myffmpeg_MainActivityFFmpeg_stringFromJNI(

JNIEnv *env,

jobject /* this */) {

std::string hello = "Hello ,this is the first ffmpeg test !";

ALOGE("%s",hello.c_str());

char info[10000] = { 0 };

sprintf(info, "%s\n", avcodec_configuration());

hello += info;

return env->NewStringUTF(hello.c_str());

}

That's all.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值