我正在编写一个显示视频的应用程序。该应用程序使用Android NDK和JNI编写。
我想使用OpenMAX。在OpenMAX示例中,它从Java检索表面,但是我可以在哪里渲染表面?我只能通过applicationContext获得nativeWindow。
示例:
void Java_com_example_nativemedia_NativeMedia_setSurface(JNIEnv *env, jclass clazz, jobject surface)
{
theNativeWindow = ANativeWindow_fromSurface(env, surface);
}
但我没有表面。
谢谢
答案 0 :(得分:0)
从SurfaceHolder中检索曲面,该曲面作为SurfaceHolder.Callback中方法中的参数传入,即surfaceChanged
或surfaceCreated
。
查找Java调用JNI函数setSurface
的位置:
wilhelm\tests\native-media\src\com\example\nativemedia\NativeMedia.java