8

MediaRecorder我需要一些关于 Android 课程的帮助。

我尝试使用getSupportedVideoSizes来获取支持的视频大小列表,但它总是返回 null。

在测试中,以下设备nullgetSupportedVideoSizes被查询时返回:

  • Galaxy Nexus (Android 4.2)
  • HTC One Mini (Android 4.4.2)
  • HTCEVOV4G (Android 4.0.3)
4

2 回答 2

37

其文档Camera.getSupportedVideoSizes()内容为,

如果相机有单独的预览和视频输出,则返回
Size 对象的列表;否则,返回 null。

不完全清楚。但是,这意味着如果Camera.getSupportedVideoSizes()返回null,那么相机支持的预览尺寸和视频尺寸是一样的;在这种情况下,要获取支持的视频大小列表,请使用Camera.getSupportedPreviewSizes().

示例代码:

public List<Size> getSupportedVideoSizes(Camera camera) {
    if (camera.getParameters().getSupportedVideoSizes() != null) {
        return camera.getParameters().getSupportedVideoSizes();
    } else {
        // Video sizes may be null, which indicates that all the supported 
        // preview sizes are supported for video recording.
        return camera.getParameters().getSupportedPreviewSizes();
    }
}
于 2014-02-25T17:46:00.210 回答
1

或者只是使用

mediarecorder.setProfile(CamcorderProfile.get(CamcorderProfile.QUALITY_HIGH));

自动设置最佳分辨率。

于 2017-11-23T09:59:52.790 回答