gpt4 book ai didi

android - 在 Android 中链接 FFMpeg

转载 作者:行者123 更新时间:2023-11-30 02:51:17 25 4
gpt4 key购买 nike

我想在 android 上使用 FFMpeg。我对这个话题真的很陌生。我使用本教程构建库] 1 .现在我有 .so 和 .h 文件,但我不知道如何在我的项目中使用它们。我可能需要在我的 Android.mk 文件中链接它。这是我项目中的 .mk 和 .c 文件:

安卓.mk

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_LDLIBS := -llog

LOCAL_MODULE := ndksetup
LOCAL_SRC_FILES := native.c

include $(BUILD_SHARED_LIBRARY)

原生.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 文件?

最佳答案

这就是您如何从 native C 文件调用 JNI 文件夹中的 lib 文件

JNIEXPORT jstring JNICALL Java_*(JNIEnv *pEnv, jobject pObj) {
char* lCodecName = gVideoCodecCtx->codec->name;
return (*pEnv)->NewStringUTF(pEnv, lCodecName);
}

这就是您从 Java 代码链接 native 库的方式

static {
System.loadLibrary("<native jni lib file name>");
}

关于android - 在 Android 中链接 FFMpeg,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24109952/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com