我有两个带有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日志,但是在捕获过程中,这会使您的应用程序减慢很多