Android Studio2.2.3 通过JNI引用ffmpeg库小结

眼前多少难甘事,自古男儿当自强。这篇文章主要讲述Android Studio2.2.3 通过JNI引用ffmpeg库小结相关的知识,希望能为你提供帮助。
修改步骤:

  1. 首先通过NDK14编译出libffmpeg.so ,将include目录取出
  2. 通过AS建立基于jni的工程项目,将include目录放到cpp下;创建jniLibs/armeabi目录,将libffmpeg.so放到里边
【Android Studio2.2.3 通过JNI引用ffmpeg库小结】     
Android Studio2.2.3 通过JNI引用ffmpeg库小结

文章图片

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 < jni.h>
#include < string>
#include < android/log.h>

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.
本文出自 “专注嵌入式多媒体技术” 博客,请务必保留此出处http://zyg0227.blog.51cto.com/1043164/1947097

    推荐阅读