Android TextureView OpenGLRenderer:GL_INVALID_OPERATION

时间:2014-06-18 08:15:33

标签: android android-camera android-mediaplayer textureview

我有两个片段,它们有一个TextureView来显示摄像机预览或播放视频。

使用应用程序一段时间后,玩屏幕, 我在logcat中得到了这个错误

OpenGLRenderer﹕ GL_INVALID_OPERATION

我从我的碎片中释放出一切, 所有成员都设置为null。

@Override
public void onDestroyView() {
    Logg.DEBUG(TAG, "onDestroyView");
    super.onDestroyView();
    if (mMediaPlayer != null) {
        mMediaPlayer.stop();
        mMediaPlayer.release();
        mMediaPlayer = null;
    }

    nextButton = null;
    pauseButton = null;
    backButton = null;
    playButton = null;
    frontTextView = null;
    backTextView = null;
    surface = null;
    videoView = null;
}

我看到整个视图变得怪异......

我错过了什么?

enter image description here

1 个答案:

答案 0 :(得分:1)

您的屏幕截图显示了系统OpenGL上下文损坏/损坏的情况。请检查您释放资源的线索。 GLContext应该从分配它的完全相同的线程中销毁。在你的情况下,它可能是由错误的线程进行的setSurface / setDisplay调用。

如果您有稳定而简单的重现步骤,可以尝试使用Tracer for OpenGL ES捕获GL日志,但在捕获过程中它会减慢您的应用很多