目前在Android Camera2 API中,为了解析最佳预览大小,我使用目标视频输出大小作为参考,并使用以下返回的大小选择列表计算最佳预览大小:
// SurfaceTexture.class to get the preview sizes supported by the surface
StreamConfigurationMap.getOutputSizes(SurfaceTexture.class);
从以下返回的列表中选择视频输出大小:
StreamConfigurationMap.getHighSpeedVideoSizes();
预览大小计算是通过从中选择大小来完成的
SurfaceTexture.class
列表,具有与视频输出大小相同的纵横比,并且在1920x0180大小限制内,这是camera2 API保证的最大预览大小。
在使用时说了所有这些
createHighSpeedRequestList
,如果发现传递给会话的任何曲面的大小都不符合支持的高速大小,则此方法将失败,这也适用于预览曲面。请参阅中的源代码:
android.hardware.camera2.utils.SurfaceUtils.checkConstrainedHighSpeedSurfaces
SurfaceTexture.class
因为这些与高速会话无关。
我最好的猜测是,我应该遍历所有这些文件,然后在返回的高速大小列表中找到一个
StreamConfigurationMap.getHighSpeedVideoSizes
,但我想知道是否有一个更可靠的方法,或者一个我可以参考的好例子。