OpenGL的OnPause / onResume问题

时间:2014-01-15 09:38:27

标签: android opengl-es-2.0

我正在Android 4.3上开发,我正在使用OpenGL ES 2.0。 我使用GLSurfaceView,一切都在开始时找到。但是,当我把应用程序和背景放回我的应用程序时,我再也看不到我的观点....

我看到这是一个常见的问题。我在互联网上阅读了很多解决方案,但它无法解决我的问题。

这是我的onPause和onResume代码:`

@Override
protected void onResume() {
    mGLSurfaceView.onResume();

    super.onResume();

    mCamera = Camera.open();        
    mCamera.startPreview();                
}


@Override
protected void onPause() {  
    mGLSurfaceView.onPause();

    mCamera.setPreviewCallback(null);
    mCamera.stopPreview();
    mCamera.release();
    mCamera = null;

    super.onPause();
}`

我如何宣布我的观点:

        mRenderer = new TextureRenderer(this);
        mGLSurfaceView.setEGLContextClientVersion(2);
        mGLSurfaceView.setRenderer(mRenderer);
        mGLSurfaceView.setRenderMode(GLSurfaceView.RENDERMODE_WHEN_DIRTY);
        mGLSurfaceView.setPreserveEGLContextOnPause(true);

我试图在onPause中将我的视图(mGLSurfaceView)初始化为null并在onResume中再次声明它,但结果相同,它不起作用。

感谢您的回答。

1 个答案:

答案 0 :(得分:0)

不确定它是否可以解决问题。

但我注意到在功能onResume中,您没有在Camera.open()startPreview()之间设置表面支架。

也许添加像mCamera.setPreviewDisplay(mSurfaceHolder);这样的东西可以解决问题。

希望它有所帮助。