Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/230.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 使用Camera 2 API拍摄图像,而不使预览起伏_Android_Android Camera_Android Camera2 - Fatal编程技术网

Android 使用Camera 2 API拍摄图像,而不使预览起伏

Android 使用Camera 2 API拍摄图像,而不使预览起伏,android,android-camera,android-camera2,Android,Android Camera,Android Camera2,我试图修改基本的Camera2 API示例(),使其在显示平滑预览的同时,每x秒拍摄一张照片(然后在后台线程上处理它;我甚至不需要将图像保存到磁盘)。不幸的是,在捕获会话上调用capture()会将预览冻结一两秒钟,从而导致用户体验不佳 有没有办法直接进入预览界面并读取图像字节?我不在乎图像质量,平滑的用户体验才是最重要的。如果相机设备是高级设备,这是很不幸的 即使对于有限的设备,相机也必须支持以快速速率保证全分辨率捕获的能力。所有完整级别或更好的设备都支持突发捕获 然而,即使在性能较低的设备上

我试图修改基本的Camera2 API示例(),使其在显示平滑预览的同时,每x秒拍摄一张照片(然后在后台线程上处理它;我甚至不需要将图像保存到磁盘)。不幸的是,在捕获会话上调用
capture()
会将预览冻结一两秒钟,从而导致用户体验不佳

有没有办法直接进入预览界面并读取图像字节?我不在乎图像质量,平滑的用户体验才是最重要的。

如果相机设备是高级设备,这是很不幸的

即使对于有限的设备,相机也必须支持以快速速率保证全分辨率捕获的能力。所有完整级别或更好的设备都支持突发捕获

然而,即使在性能较低的设备上,通常也可以以视频录制分辨率顺利捕获未压缩的YUV帧。这意味着在会话配置中添加YUV_420_888格式的,然后处理由此产生的图像。不幸的是,传统设备上的JPEG总是很慢,而且一些传统设备也没有足够的CPU能力来顺利生成YUV数据(因为必须在引擎盖下进行一些转换)


有关更多详细信息,您可以检查的输出,并查看在最小帧持续时间为1/30秒的情况下运行的输出YUV分辨率;这些应能保证有限或更好设备的平稳运行。

谢谢,YUV_420_888在该设备上运行非常平稳。如果有人想使用这种方法,下面是关于将原始YUV图像从相机转换为位图的另一个很好的答案: