Android 使用Camera 2 API拍摄图像,而不使预览起伏
我试图修改基本的Camera2 API示例(),使其在显示平滑预览的同时,每x秒拍摄一张照片(然后在后台线程上处理它;我甚至不需要将图像保存到磁盘)。不幸的是,在捕获会话上调用Android 使用Camera 2 API拍摄图像,而不使预览起伏,android,android-camera,android-camera2,Android,Android Camera,Android Camera2,我试图修改基本的Camera2 API示例(),使其在显示平滑预览的同时,每x秒拍摄一张照片(然后在后台线程上处理它;我甚至不需要将图像保存到磁盘)。不幸的是,在捕获会话上调用capture()会将预览冻结一两秒钟,从而导致用户体验不佳 有没有办法直接进入预览界面并读取图像字节?我不在乎图像质量,平滑的用户体验才是最重要的。如果相机设备是高级设备,这是很不幸的 即使对于有限的设备,相机也必须支持以快速速率保证全分辨率捕获的能力。所有完整级别或更好的设备都支持突发捕获 然而,即使在性能较低的设备上
capture()
会将预览冻结一两秒钟,从而导致用户体验不佳
有没有办法直接进入预览界面并读取图像字节?我不在乎图像质量,平滑的用户体验才是最重要的。如果相机设备是高级设备,这是很不幸的
即使对于有限的设备,相机也必须支持以快速速率保证全分辨率捕获的能力。所有完整级别或更好的设备都支持突发捕获
然而,即使在性能较低的设备上,通常也可以以视频录制分辨率顺利捕获未压缩的YUV帧。这意味着在会话配置中添加YUV_420_888格式的,然后处理由此产生的图像。不幸的是,传统设备上的JPEG总是很慢,而且一些传统设备也没有足够的CPU能力来顺利生成YUV数据(因为必须在引擎盖下进行一些转换)
有关更多详细信息,您可以检查的输出,并查看在最小帧持续时间为1/30秒的情况下运行的输出YUV分辨率;这些应能保证有限或更好设备的平稳运行。谢谢,YUV_420_888在该设备上运行非常平稳。如果有人想使用这种方法,下面是关于将原始YUV图像从相机转换为位图的另一个很好的答案: