2010-12-05 56 views
9

我已经构建了由Bambuser(http://bambuser.com/opensource)提供的FFMPEG可执行文件和库。所以我设法构建了Android可执行文件和libraties。我如何链接我的Eclipse项目中的这些库并从Java调用FFmpeg函数?开源代码包含C头文件。FFMpeg jni在Android?

我是新来的Android本地编码,我找不到一个简单的答案。基本方面:拥有一堆Android兼容库和一些C头文件我需要做些什么才能重用Java(+ Android SDK)中的库文件功能?

任何帮助,将不胜感激。

亲切的问候,

WhyHow

+0

请问您可以告诉您关注的步骤以构建ffmpeg吗?我正在使用windows和cygwin 1.7.9。 – 2011-09-20 05:58:44

回答

5

你必须写使用JNI公约暴露FFmpeg的功能为Java代码一些C胶水代码。下面是从Android NDK样用C语言实现JNI的方法的例子:

jstring 
Java_com_example_hellojni_HelloJni_stringFromJNI(JNIEnv* env, 
                jobject thiz) 
{ 
    return (*env)->NewStringUTF(env, "Hello from JNI !"); 
} 

你还需要一些Java代码加载库,并声明本机方法。

public class HelloJni 
{ 
    public native String stringFromJNI(); 

    static { 
     System.loadLibrary("hello-jni"); 
    } 
} 

我发现this project on sourceforge其业已实施了一些JNI接口的ffmpeg将其与Java媒体框架集成。你可能会觉得它很有用。

还有另一种名为JNA(Java Native Access)的Java FFI技术,它允许您使用Java声明本机函数原型并直接调用它们。使用它可能需要较少的样板代码。 Android实现请参见this project。 (我自己从未使用过)