Search code examples
androidmediarecorderandroid-mediarecorder

Android getSupportedVideoSizes always returns null


I need some help with the MediaRecorder class on Android.

I try to use getSupportedVideoSizes to get the list of supported video sizes, but it always returns null.

In testing, the following devices return null when getSupportedVideoSizes is queried:

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

Solution

  • The documentation for Camera.getSupportedVideoSizes() which reads,

    Returns
    a list of Size object if camera has separate preview and video output; otherwise, null is returned.

    is not entirely clear. However, it means that if Camera.getSupportedVideoSizes() returns null, then the camera's supported preview sizes and video sizes are the same; in this case, to get the list of supported video sizes, use Camera.getSupportedPreviewSizes().

    Sample code:

    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();
        }
    }