【问题标题】:Android TextureView OpenGLRenderer﹕ GL_INVALID_OPERATIONAndroid TextureView OpenGLRenderer:GL_INVALID_OPERATION
【发布时间】:2014-06-18 08:15:32
【问题描述】:

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

在使用应用程序一段时间后,玩屏幕, 我在 logcat 中收到此错误

OpenGLRenderer﹕ GL_INVALID_OPERATION

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

@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;
}

我看到整个视图变得很奇怪......

我错过了什么?

【问题讨论】:

  • 你在任何设备上试过了吗?还是模拟器?
  • 设备。 Nexus 5、Galaxy S3/4、Moto G 等

标签: android android-camera android-mediaplayer textureview


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-01-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-12
    • 1970-01-01
    • 2015-09-19
    相关资源
    最近更新 更多