我正在处理一个处理来自相机的输入图像并将其显示给用户的android应用。这非常简单,我PreviewCallback
在的相机对象上注册了setPreviewCallbackWithBuffer
。这很容易并且可以与旧的相机API一起流畅地工作
public void onPreviewFrame(byte[] data, Camera cam) {
// custom image data processing
}
我正在尝试移植我的应用程序以利用新的Camera2 API,但我不确定该怎么做。我在L预览示例中遵循了Camera2Video,该示例允许录制视频。但是,样本中没有直接的图像数据传输,所以我不知道应该从哪里确切地获取图像像素数据以及如何处理它。
谁能帮我或建议一个如何PreviewCallback
在android L中获得功能的方法,或者如何在显示到屏幕之前从相机处理预览数据?(相机对象上没有预览回调)
谢谢!
由于该Camera2
API与当前的API有很大的不同Camera
,因此可能有助于阅读文档。
一个很好的起点就是camera2basic
例子。它演示了如何使用Camera2
API并进行配置ImageReader
以获取JPEG图像并进行注册ImageReader.OnImageAvailableListener
以接收这些图像
要接收预览帧,您需要将ImageReader
的表面添加到setRepeatingRequest
的中CaptureRequest.Builder
。
另外,您应该将ImageReader
的格式设置为YUV_420_888
,以在8MP时提供30fps的速度(文档保证Nexus 5在8MP时为30fps)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句