首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android Camera2 onCaptureStarted回调

Android Camera2 onCaptureStarted回调
EN

Stack Overflow用户
提问于 2018-09-04 19:54:34
回答 1查看 686关注 0票数 1

我想在曝光开始时得到信号。

我在文档中找到了回调:

onCaptureStarted

当照相机设备开始捕获请求的输出图像时,在图像曝光的开始时,或者当照相机设备开始处理用于重新处理请求的输入图像时,调用此方法。 对于常规捕获请求,此回调将在捕获帧开始时被调用,因此,此时是播放快门声音或触发捕获UI指示符的最合适时间。

我用它得到了这个结果:

  1. ~0.2ms暴露(ACAMERA_SENSOR_EXPOSURE_TIME: 170980) A)图像时间戳与当前onCaptureStarted时间戳之间的差异是:37.488015 ms。 ( B) onCaptureStarted与CameraImageReader::ImageCallback之间的区别是:9.630366
  2. ~5ms暴露(ACAMERA_SENSOR_EXPOSURE_TIME: 4958439) A)图像时间戳与当前onCaptureStarted时间戳之间的差异是:42.577876 ms。 ( B) onCaptureStarted与CameraImageReader::ImageCallback之间的区别是:9.839168
  3. ~20暴露(ACAMERA_SENSOR_EXPOSURE_TIME: 19961992) A)图像时间戳与当前onCaptureStarted时间戳之间的差异是:58.494590 ms。 ( B) onCaptureStarted与CameraImageReader::ImageCallback之间的区别是:9.060730

备注

  1. 我用Pixel2 (手动曝光+33 manual帧持续时间)进行了测试。
  2. 我还用“TEMPLATE_MANUAL”测试了它,得到了相同的结果。
  3. 我还用S9+进行了测试,得到了相同的结果。
  4. 数字不准确。

在曝光结束后,我似乎得到了回复。就像文档中的第二个选项:

或者当照相机设备开始处理重新处理请求的输入图像时。

但我想把它当作第一个选择:

在图像曝光开始时

( 1)我能控制它吗?

2)什么是“常规捕获请求”?

注意:我使用了“ACameraCaptureSession_setRepeatingRequest”

EN

回答 1

Stack Overflow用户

发布于 2018-09-05 20:41:26

onCaptureStarted将在应用程序可用图像之前发生很多次。在完全分辨率下,曝光完成后,需要像素2 ~33 ms读出图像帧,再加上一段时间将缓冲器处理成YUV。

因此,如果您看到图像可用回调大约33毫秒+曝光时间后,从onCaptureStarted时间戳,这是预期的。就你而言:

  • 0.2ms曝光: 37.488015 ms - 170980 ns =37.3ms用于读出+处理
  • 5毫秒曝光: 42.577876毫秒- 4958439 ns =37.6ms用于读出+处理
  • 20 ms曝光: 58.494590 ms - 19961992 ns =38.53ms用于读出+处理

这似乎与预期差不多,大约33毫秒的读出+5毫秒的完成处理。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52173180

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档