
我正在开发一个Android应用程序,它正在处理来自摄像头的输入图像并将其显示给用户.这很简单,我使用setPrevIEwCallbackWithBuffer在相机对象上注册了一个PrevIEwCallback.@H_502_1@使用旧的相机API,这很容易并且运行顺畅
public voID onPrevIEwFrame(byte[] data, Camera cam) { // custom image data processing}我正在尝试移植我的应用程序以利用新的Camera2 API,我不确定我该怎么做.我在L预览示例中使用了Camera2VIDeo,可以录制视频.但是,样本中没有直接的图像数据传输,因此我不明白应该在何处获取图像像素数据以及如何处理它.
有人可以帮我或建议如何在AndroID L中获得PrevIEwCallback的功能,或者如何在将其显示到屏幕之前处理相机的预览数据? (相机对象上没有预览回调)
谢谢!
解决方法:
由于Camera2 API与当前的Camera API非常不同,因此阅读文档可能会有所帮助.
一个很好的起点是camera2basic示例.它演示了如何使用Camera2 API并配置ImageReader来获取JPEG图像并注册ImageReader.OnImageAvailableListener以接收这些图像
要接收预览帧,您需要将ImageReader的表面添加到setRepeatingRequest的CaptureRequest.Builder.
此外,您应该将ImageReader的格式设置为YUV_420_888,这将在8MP时为您提供30fps(Nexus 5的文档保证在8MP时为30fps).
总结以上是内存溢出为你收集整理的使用Android L和Camera2 API处理相机预览图像数据全部内容,希望文章能够帮你解决使用Android L和Camera2 API处理相机预览图像数据所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)