问题
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)
回答1:
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();
}
}
回答2:
Or just use
mediarecorder.setProfile(CamcorderProfile.get(CamcorderProfile.QUALITY_HIGH));
to set the best resolution automatically.
来源:https://stackoverflow.com/questions/14263521/android-getsupportedvideosizes-always-returns-null