我有两个带有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;
}


我看到整个观点变得奇怪...

我想念什么?

最佳答案

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

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

08-04 05:33
查看更多