[英]Link FFMpeg in Android
我想在Android上使用FFMpeg。 我真的是這個話題的新手。 我使用本教程構建庫] 1 。 現在我有.so和.h文件,但是我不知道如何在我的項目中使用它們。 我可能需要將其鏈接到我的Android.mk文件中。 這是我的項目中的.mk和.c文件:
Android.mk
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_LDLIBS := -llog
LOCAL_MODULE := ndksetup
LOCAL_SRC_FILES := native.c
include $(BUILD_SHARED_LIBRARY)
native.c
#include <jni.h>
#include <string.h>
#include <android/log.h>
#define DEBUG_TAG "NDKSetupActivity"
void Java_com_example_ndksetup_MainActivity_printLog(JNIEnv *env, jobject this, jstring logString)
{
jboolean isCopy;
const char * szLogString = (*env)->GetStringUTFChars(env, logString, &isCopy);
__android_log_print(ANDROID_LOG_DEBUG, DEBUG_TAG, "NDK: %s", szLogString);
(*env)->ReleaseStringUTFChars(env, logString, szLogString);
}
jint Java_com_example_ndksetup_MainActivity_fibonacci(JNIEnv * env, jobject this, jint value)
{
if (value <= 1) return value;
return Java_com_example_ndksetup_MainActivity_fibonacci(env, this, value-1)
+ Java_com_example_ndksetup_MainActivity_fibonacci(env, this, value-2);
}
誰能告訴我如何在我的native.c文件中使用.so和.h文件?
這就是從本地C文件調用JNI文件夾中的lib文件的方式
JNIEXPORT jstring JNICALL Java_*(JNIEnv *pEnv, jobject pObj) {
char* lCodecName = gVideoCodecCtx->codec->name;
return (*pEnv)->NewStringUTF(pEnv, lCodecName);
}
這就是您如何從Java代碼鏈接本機庫
static {
System.loadLibrary("<native jni lib file name>");
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.