OpenMAX和NDK:我能在哪里获得表面?

Con*_*sov 5 c++ android-ndk openmax

我正在编写一个显示视频的应用程序.该应用程序使用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);  
}
Run Code Online (Sandbox Code Playgroud)

但我没有表面.

谢谢

Pet*_*ran 0

表面是从 SurfaceHolder 中检索的,该 SurfaceHolder 作为SurfaceHolder.Callback方法中的参数传入,即surfaceChangedsurfaceCreated

查找setSurfaceJava调用JNI函数的位置:

wilhelm\tests\native-media\src\com\example\nativemedia\NativeMedia.java