繁体   English   中英

从MediaPlayer退出后,OpenGL Context被破坏

[英]OpenGL Context destroyed after quitting from MediaPlayer

我们有一个增强现实应用程序,可以在指向特定标记时显示视频或3D模型。 这很好用,但只要我们通过Back-Button退出MediaPlayer活动,OpenGL Context就会被破坏。 该应用程序然后重新启动并需要重新加载所有资产,包括3D模型,这会导致我们想要阻止的大约10-15秒的延迟。 我已经阅读了一些关于setPreserveEGLContextOnPause(true)的内容并把它放在我们的GLSurfaceView中(我们有一个3.x平板电脑),但它似乎没有做任何事情(我是否需要实现其他东西才能使它工作?我几乎找不到关于它的可用文档)。

我不确定在我们的应用程序中问题可能在哪里,我想我们的GLSurface在某处被破坏了,我们没有注意到它。

我们退出MediaPlayer的代码如下:

public boolean onKeyDown(int keyCode, KeyEvent event) {
    if ((keyCode == KeyEvent.KEYCODE_BACK)) {            
        this.finish();

        Intent intent = new Intent(MediaPlayerActivity.this, OpenGLActivity.class);
        intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        this.startActivity(intent);
    }
    return super.onKeyDown(keyCode, event);
}

任何提示我们如何保留OpenGL上下文,或退出MediaPlayer而不会破坏我们的主要活动?

为了解决这个问题,我们将MediaPlayer放在SurfaceView图层上,该图层将显示在我们的OpenGL内容上。 根据标记,我们只显示或隐藏图层并防止切换出上下文。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM