Android相机预览帧时间戳

时间:2012-01-27 20:33:03

标签: android android-ndk android-camera

有没有办法获取Android相机预览帧何时被捕获的时间戳?

  1. 没有Camera方法返回时间戳
  2. 您无法从本机代码访问相机
  3. 缓冲区大小不是静态的(取决于从摄像机获取的最小预览大小 - 何时以及方法是否正常工作)如果队列中有更多帧,则会有预览缓冲区被丢弃
  4. 设置的帧速率(再次,如果/当方法工作时)只是系统的提示,摄像机可以忽略该值。相同的帧率是相机返回的。
  5. 我正在实时进行一些繁重的图像处理,加在一起时出现的小错误是一个真正的问题。

1 个答案:

答案 0 :(得分:4)

我知道这样做的唯一方法是使用SurfaceTexture而不是预览回调。

SurfaceTexture有一个getTimestamp()方法,它从一些未指定(但不变)的时间开始返回纳秒。

不幸的是,SurfaceTexture是一个OpenGL外部纹理,因此使用预览回调并不容易。

另一方面,它的CPU效率更高:预览回调在软件中进行颜色转换和图像整形,而人们可以使用OpenGL ES2功能在GPU上进行大量的图像处理。