我正在使用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 工作。(有些图片我会省略,只有在没有其他类似线程的情况下才会创建一个新线程。)
为了获取图像,我使用带有setRepeatingRequest函数的CameraCaptureSession 。而且我在处理之前对每个图像缓冲区进行了克隆。所以,我的问题是为什么会发生错误以及如何克服它?