Я пишу приложение, которое показывает видео. Приложение написано с использованием 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);
}
Но у меня нет поверхности.
Спасибо
Поверхность извлекается из SurfaceHolder, который передается в качестве параметра в методы в SurfaceHolder.Callback, т.е. surfaceChanged
или же surfaceCreated
,
Ищите где функция JNI setSurface
вызывается Java:
Wilhelm \ тесты \ nativemedia \ SRC \ COM \ пример \ nativemedia \ NativeMedia.java
Других решений пока нет …