【发布时间】:2019-04-21 10:25:00
【问题描述】:
此问题针对的是高速视频会话,而不是普通视频会话。
目前在 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 返回的高速尺寸列表中找到一个,但我想知道是否有一个更可靠的方法,或者我可以看看的一个很好的例子。
【问题讨论】:
标签: android video android-camera2 highspeed