我想使用Camera2 API在android中录制视频时捕获静止图像

问题描述

我正在使用camera2 api来连接相机。 here已彻底回答了类似的问题。但是,我使用的相机具有硬件旧版支持。根据{{​​3}},我无法使用TEMPLATE_VIDEO_SNAPSHOT功能。一种解决方案是当我要捕获静止图像并使用TEMPLATE_STILL_CAPTURE时停止视频记录,然后再次开始视频记录。但是此解决方案会创建多个视频文件,似乎不是一个方法

有人能建议在录制视频时捕获图像的更好方法吗?

解决方法

对于旧设备,没有适当的解决方案。

您可以尝试的一件事是从相机预览所使用的TextureView中get a bitmap。这根本不是最佳选择,因为您实际上是在获取屏幕上正在显示的屏幕截图,该屏幕截图的质量/尺寸较低,此外还需要谨慎执行,以免在录制过程中出现延迟。

停止记录,拍照并开始新的记录的想法将不起作用,因为这种操作需要太多时间。加上您所知道的问题,您最终将需要合并多个视频。

请注意,您是否有理由希望在旧版设备中实现此功能?考虑到您实施的任何解决方案仅适用于使用旧设备的用户,实际上,一种终止日期为的临时解决方案会在几年后不再使用,而人们会继续购买更新的手机他们拥有这样的功能,而如今,它们甚至是最便宜的新手机。