FFMpeg JNI в Android? - PullRequest
       4

FFMpeg JNI в Android?

9 голосов
/ 05 декабря 2010

Я создал исполняемые файлы и библиотеки FFMPEG, предоставленные Bambuser (http://bambuser.com/opensource).). Поэтому мне удалось собрать исполняемые файлы и библиотеки Android. Как я могу связать эти библиотеки в моем проекте Eclipse и вызвать функции FFmpeg из Java? код включает в себя заголовочные файлы C.

Я новичок в родном кодировании для Android, и я не мог найти простой ответ на этот вопрос. В основном: наличие набора совместимых с Android библиотек и некоторых заголовочных файлов C, что мне нужно сделать, чтобы повторно использовать функциональность этих библиотек из java (+ Android SDK)?

Любая помощь будет оценена.

С уважением,

WhyHow

1 Ответ

5 голосов
/ 05 декабря 2010

Вы должны написать некоторый склеивающий код C, используя соглашения JNI, чтобы представить функции FFmpeg в коде Java. Вот пример метода JNI, реализованного в C из примеров Android NDK:

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");
    }
}

Я нашел этот проект на sourceforge , который уже реализовал некоторый интерфейс JNI для ffmpeg для интеграции его с Java Media Framework. Вы можете найти это полезным.

Существует еще одна технология Java FFI, называемая JNA (Java Native Access), которая позволяет объявлять прототипы собственных функций в Java и вызывать их напрямую. Для его использования может потребоваться меньше стандартного кода. См. этот проект для реализации Android. (Я никогда не использовал его сам)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...