OpenMAX и NDK: где я могу получить поверхность?

Я пишу приложение, которое показывает видео. Приложение написано с использованием Android NDK и JNI.

Я хочу использовать OpenMAX. В примере OpenMAX он извлекает поверхность из Java, но где я могу получить поверхность для рендеринга? Я могу получить nativeWindow только через applicationContext.

Пример:

void Java_com_example_nativemedia_NativeMedia_setSurface(JNIEnv *env, jclass clazz, jobject surface)
{
theNativeWindow = ANativeWindow_fromSurface(env, surface);
}

Но у меня нет поверхности.

Спасибо

5

Решение

Поверхность извлекается из SurfaceHolder, который передается в качестве параметра в методы в SurfaceHolder.Callback, т.е. surfaceChanged или же surfaceCreated,

Ищите где функция JNI setSurface вызывается Java:

Wilhelm \ тесты \ nativemedia \ SRC \ COM \ пример \ nativemedia \ NativeMedia.java

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]