5

我正在编写一个显示视频的应用程序。该应用程序是使用 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);  
}

但我没有表面。

谢谢

4

1 回答 1

0

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

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

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

于 2013-01-16T17:53:20.317 回答