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

时间:2012-12-20 12:11:59

标签: 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);  
}

但我没有表面。

谢谢

1 个答案:

答案 0 :(得分:0)

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

查找Java调用JNI函数setSurface的位置:

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