9

我正在尝试在视频上使用 TextureView,并且在尝试使用 SurfaceTexture.detachFromGLContext 时崩溃了很多。

我在谷歌上没有找到任何东西,有人知道它可能是什么吗?

谢谢

java.lang.RuntimeException: Error during detachFromGLContext (see logcat for details)
       at android.graphics.SurfaceTexture.detachFromGLContext(SurfaceTexture.java:195)
       at android.view.TextureView.destroySurface(TextureView.java:243)
       at android.view.TextureView.destroyHardwareResources(TextureView.java:355)
       at android.view.HardwareRenderer$Gl20Renderer.destroyResources(HardwareRenderer.java:2311)
       at android.view.HardwareRenderer$Gl20Renderer.destroyResources(HardwareRenderer.java:2318)
       at android.view.HardwareRenderer$Gl20Renderer.destroyResources(HardwareRenderer.java:2318)
       at android.view.HardwareRenderer$Gl20Renderer.destroyResources(HardwareRenderer.java:2318)
       at android.view.HardwareRenderer$Gl20Renderer.destroyResources(HardwareRenderer.java:2318)
       at android.view.HardwareRenderer$Gl20Renderer.destroyResources(HardwareRenderer.java:2318)
       at android.view.HardwareRenderer$Gl20Renderer.destroyResources(HardwareRenderer.java:2318)
       at android.view.HardwareRenderer$Gl20Renderer.destroyResources(HardwareRenderer.java:2318)
       at android.view.HardwareRenderer$Gl20Renderer.destroyResources(HardwareRenderer.java:2318)
       at android.view.HardwareRenderer$Gl20Renderer.access$800(HardwareRenderer.java:1895)
       at android.view.HardwareRenderer$Gl20Renderer$2.run(HardwareRenderer.java:2303)
       at android.view.HardwareRenderer$Gl20Renderer.safelyRun(HardwareRenderer.java:2254)
       at android.view.HardwareRenderer$Gl20Renderer.destroyHardwareResources(HardwareRenderer.java:2297)
       at android.view.ViewRootImpl.destroyHardwareResources(ViewRootImpl.java:853)
       at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1534)
       at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1249)
       at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6585)
       at android.view.Choreographer$CallbackRecord.run(Choreographer.java:803)
       at android.view.Choreographer.doCallbacks(Choreographer.java:603)
       at android.view.Choreographer.doFrame(Choreographer.java:573)
       at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:789)
       at android.os.Handler.handleCallback(Handler.java:733)
       at android.os.Handler.dispatchMessage(Handler.java:95)
       at android.os.Looper.loop(Looper.java:136)
       at android.app.ActivityThread.main(ActivityThread.java:5586)
       at java.lang.reflect.Method.invokeNative(Method.java)
       at java.lang.reflect.Method.invoke(Method.java:515)
       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1268)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1084)
       at dalvik.system.NativeStart.main(NativeStart.java)
4

1 回答 1

0

也许你必须detachFromGLContext()从 GLThread调用这个方法。GLSurfaceViewqueueEvent()中的方法可以完成这项工作。

 /**
 * Queue a runnable to be run on the GL rendering thread. This can be used
 * to communicate with the Renderer on the rendering thread.
 * Must not be called before a renderer has been set.
 * @param r the runnable to be run on the GL rendering thread.
 */
public void queueEvent(Runnable r) {
    mGLThread.queueEvent(r);
}
于 2016-06-21T03:31:43.793 回答