【发布时间】:2020-07-22 04:47:08
【问题描述】:
我正在与Android Camera2 API 合作,并在使用 Android 6.0 (API 23) 的智能手机从相机上获取一组照片后得到这个:
2020-04-09 20:36:58.556 260-9342/? E/Camera3-Stream: getBuffer: wait for output buffer return timed out after 3000ms
2020-04-09 20:36:58.556 260-9342/? E/Camera3-Device: RequestThread: Can't get output buffer, skipping request: Connection timed out
发生此错误后,相机阻塞,图像停止发送,我需要重新打开 CameraDevice 以获取一组新图像。
我正在使用 BackgroundHandler 来处理在 BackgroundThread 中获取相机图像。然后我创建额外的 BackgroundThread 来使用 OpenCV 库函数处理每个图像。但是,我同时只有一个额外的 BackgroundThread 工作。 (有些图片我会省略,只有在没有其他类似线程的情况下才会创建一个新线程。)
为了获取图像,我使用 CameraCaptureSession 和 setRepeatingRequest 函数。而且我在处理之前对每个图像缓冲区进行了克隆。所以,我的问题是为什么会发生错误以及如何克服它?
【问题讨论】:
标签: android opencv android-camera2 android-threading