E/CameraDeviceState: Cannot receive result while in state: 0

E/Surface: queueBuffer: error queuing buffer to SurfaceTexture, -19 E/CameraDeviceGLThread-0: Received exception on GL render thread: java.lang.IllegalStateException: swapBuffers: EGL error: 0x300b at android.hardware.camera2.legacy.SurfaceTextureRenderer.swapBuffers(SurfaceTextureRenderer.java:535) at android.hardware.camera2.legacy.SurfaceTextureRenderer.drawIntoSurfaces(SurfaceTextureRenderer.java:753) at android.hardware.camera2.legacy.GLThreadManager$1.handleMessage(GLThreadManager.java:105) at android.os.Handler.dispatchMessage(Handler.java:98) at android.os.Looper.loop(Looper.java:154) at android.os.HandlerThread.run(HandlerThread.java:61) I/CameraDeviceState: Legacy camera service transitioning to state ERROR E/RequestThread-0: Timed out while waiting for request to complete. E/CameraDeviceState: Cannot receive result while in state: 0

录像时相机卡死,camera2View图像不更新,点击结束录像 会报错FATAL EXCEPTION: main Process: com.hztc.iflashsee, PID: 21014 java.lang.RuntimeException: stop failed. at android.media.MediaRecorder.stop(Native Method) at com.hztc.iflashsee.ui.Camera2Provider.releaseMediaRecorder(Camera2Provider.java:381) at com.hztc.iflashsee.ui.Camera2Provider.stopRecording(Camera2Provider.java:424) at com.hztc.iflashsee.ui.view.MyTestActivity$3.onClick(MyTestActivity.java:141)
代码怎么写  代码怎么优化

这些错误信息涉及到Android相机硬件和相机服务,主要问题似乎在于相机设备和渲染线程(CameraDeviceGLThread-0)以及请求处理线程(RequestThread-0)。以下是可能的故障原因和解决建议:
SurfaceTexture错误:
错误E/Surface: queueBuffer: error queuing buffer to SurfaceTexture, -19表示在将缓冲区队列到SurfaceTexture时出错。错误代码-19通常是由于Surface已经关闭或者不活跃。确保在使用SurfaceTexture时,其关联的Surface仍然有效。
OpenGL错误:
java.lang.IllegalStateException: swapBuffers: EGL error: 0x300b表明在交换OpenGL缓冲区时出现了问题。错误代码0x300b通常表示EGL_BAD_SURFACE,意味着Surface可能无效或不再可用。这可能是因为Surface被释放或者销毁了,或者相机设备状态异常。
相机设备状态错误:
Legacy camera service transitioning to state ERROR和Cannot receive result while in state: 0提示相机服务进入错误状态,可能是因为相机初始化失败,或者在操作过程中发生了错误。
解决这些问题,你可以尝试以下步骤:
检查权限:确保应用拥有CAMERA权限,这是Android应用访问相机所必需的。
关闭并重新打开相机:在代码中优雅地关闭相机,然后重新初始化,确保所有资源得到正确释放。
更新相机配置:检查相机配置,确保所有设置都是有效的,避免超出设备支持的范围。
使用最新API:如果可能,考虑升级到Android Camera2 API,这是一个更现代的接口,提供了更好的错误处理和控制。
捕获和处理异常:在相机操作中添加异常处理,以便在出现问题时能够恢复或给出用户反馈。
测试不同设备:问题可能与特定设备相关,确保在多款设备上测试应用,以发现可能的兼容性问题。
查阅官方文档:查阅Android开发者文档,特别是关于相机服务和SurfaceTexture的使用指南。
社区和示例代码:参考开源社区中的类似问题和解决方案,例如GitHub上的Android Camera2项目,看看其他人如何处理类似错误。
如果问题仍然存在,可能需要更深入的代码审查或设备特定的调试。如果可能,联系设备制造商的技术支持,或者在Stack Overflow等开发者论坛上寻求帮助。

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值