У меня была проблема, похожая на описанную здесь. Я выяснил, что мне пришлось немного реструктурировать свой код, прежде чем я смог настроить размер видео.
Важно то, что setVideoSize () вызывается перед setVideoEncoder (). Я не могу найти это в документации, однако это решило мои проблемы с настройкой конкретного разрешения видео.
Также имейте в виду, что setOutputFormat () должен вызываться перед setVideoSize ().
Что касается примечания стороны, то же самое верно для setVideoFrameRate (). Если он не вызывается до setVideoEncoder (), это не окажет никакого влияния.
Это было проверено с Android 2.3.3
Вот пример кода:
recorder.setAudioSource(MediaRecorder.AudioSource.DEFAULT);
recorder.setVideoSource(MediaRecorder.VideoSource.DEFAULT);
recorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
recorder.setVideoSize(640,480);
recorder.setVideoFrameRate(30);
recorder.setVideoEncoder(MediaRecorder.VideoEncoder.DEFAULT);
recorder.setAudioEncoder(MediaRecorder.AudioEncoder.DEFAULT);