Android - SurfaceTexture - 带MediaPlayer的视频

时间:2016-06-24 10:10:21

标签: android video opengl-es opengl-es-2.0

我使用SurfaceTexture在SurfaceView上使用OpenGL ES 2.0显示视频。用于显示视频的OpenGL上下文链接到SurfaceView。它工作正常,但是当我在播放视频时退出活动并返回时,SurfaceView已被破坏,因此我必须重新创建一个OpenGL上下文。这样做,视频就无法播放了。

surfaceTexture.updateTexImage();

这会引发IllegalStateException,因为它调用了一个新的上下文,我想?我之前也在日志中看到了这一点:

E/GLConsumer: [unnamed-13710-14] checkAndUpdateEglState: invalid current EGLContext

文档说我可以使用

surfaceTexture.detachFromGLContext();

在销毁opengl上下文之前。然后:

surfaceTexture.attachToGLContext(mTextureID);

将其附加到新上下文(在新上下文线程上) 但是,如果我这样做,我有这个错误:

attachToContext: GLConsumer is already attached to a context

但它被摧毁了..

所以我的问题是,有没有办法继续播放视频?或者是我重新启动视频的唯一选择?

提前致谢!

0 个答案:

没有答案