我执行了 youtube watch me android 应用程序项目。我只是在我的项目中添加了一些类并使用 ndk 构建。我得到了这样的错误
java.lang.UnsatisfiedLinkError:找不到 int com.ephronsystem.mobilizerapp.Ffmpeg.encodeVideoFrame(byte[]) 的实现(尝试了 Java_com_ephronsystem_mobilizerapp_Ffmpeg_encodeVideoFrame 和 Java_com_ephronsystem_mobilizerapp_Ffmpeg_encodeVideoFrame___3B)。
我的代码:
package com.ephronsystem.mobilizerapp;
public class Ffmpeg {
static {
System.loadLibrary("ffmpeg");
}
public static native boolean init(int width, int height, int audio_sample_rate, String rtmpUrl);
public static native void shutdown();
// Returns the size of the encoded frame.
public static native int encodeVideoFrame(byte[] yuv_image);
public static native int encodeAudioFrame(short[] audio_data, int length);
}
Run Code Online (Sandbox Code Playgroud)
这是 ffmpeg-jni.c
#include <android/log.h>
#include <string.h>
#include <jni.h>
#include "libavcodec/avcodec.h"
#include "libavformat/avformat.h"
#include "libavutil/opt.h" …Run Code Online (Sandbox Code Playgroud) java-native-interface android ffmpeg youtube-api android-ndk