You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Camera2 API视频录制:如何获取可用视频分辨率?

Camera2 API获取设备支持的视频分辨率两种实现方案

Hey,针对你用Camera2 API做视频录制时需要获取设备支持的视频分辨率列表的需求,这里有两种经过验证的靠谱实现方式,给你拆解清楚:

方式一:通过CameraCharacteristics的输出配置直接提取

这种方式最为直接,从相机的特性参数里直接拿到支持MediaRecorder输出的分辨率集合:

// 这里的map是从CameraCharacteristics中获取的SCALER_STREAM_CONFIGURATION_MAP
List<android.util.Size> resolutions = Arrays.asList(map.getOutputSizes(MediaRecorder.class));

拿到这个resolutions列表后,你就可以直接遍历使用其中的分辨率参数了。

方式二:遍历CamcorderProfile配置文件提取

这种方式是通过遍历设备支持的Camcorder配置文件,从每个有效配置中提取对应的分辨率:

// CAMCORDER_PROFILES是你定义的包含所有目标配置文件ID的int数组,比如包含QUALITY_LOW、QUALITY_1080P等
for(int profileId : CAMCORDER_PROFILES) {
    if(CamcorderProfile.hasProfile(profileId)) {
        CamcorderProfile profile = CamcorderProfile.get(profileId);
        // 从配置文件中提取分辨率宽高
        int videoWidth = profile.videoFrameWidth;
        int videoHeight = profile.videoFrameHeight;
        // 可以将这些分辨率收集起来,做下去重处理后使用
    }
}

注意事项:CAMCORDER_PROFILES需要你根据需求定义,比如包含CamcorderProfile.QUALITY_LOW、CamcorderProfile.QUALITY_HIGH、CamcorderProfile.QUALITY_2160P这类常用配置ID;遍历前一定要用hasProfile()判断设备是否支持该配置,避免抛出异常。

内容的提问来源于stack exchange,提问作者Tim Autin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 03:26:17