我正在使用 Camera 1,我知道我获得了支持的帧速率范围并设置了该帧。但是我希望预览以非常低的帧速率(即每秒 5 帧)显示。
我无法设置它,因为它低于任何范围。有没有办法可以从预览中删除某些帧?如果 setPreviewCallbackwithbuffer 然后我得到框架,但此时它已经显示。我可以从预览中“跳帧”吗?
谢谢
最佳答案
不可以,您不能干预预览表面上的框架。如果您使用 TextureSurface 进行预览,您可以做一些技巧,但如果您需要非常低的帧速率,您可以自己简单地绘制帧(最好是绘制到 OpenGL 纹理)。您将在 onPreveiewFrame() 中获得 YUV 帧回调,并在需要时将它们传递给显示。您可以使用着色器来显示 YUV 帧,而无需占用 CPU 将它们转换为 RGB。
通常,我们想跳过预览帧,因为我们想在帧上运行一些 CV 算法,并且通常我们想显示经过此类 CV 处理修改的帧,例如带有检测到的物体的边界框。即使您将框的坐标放在一边,并希望“按原样”显示预览帧,使用您自己的渲染器的优点是图片和叠加层之间不会有时间延迟。
关于android - 从相机预览中丢帧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57839677/