Miałem problem podobny do opisanego tutaj. Okazało się, że musiałem trochę zmienić strukturę kodu, zanim mogłem dostosować rozmiar wideo.
Ważne jest, aby setVideoSize() został wywołany przed setVideoEncoder(). Nie mogę znaleźć tego w dokumentacji, ale rozwiązał on moje problemy z ustawianiem określonej rozdzielczości wideo. Należy również pamiętać, że funkcja setOutputFormat() powinna zostać wywołana przed funkcją setVideoSize().
Tak jak z drugiej strony, to samo dotyczy setVideoFrameRate(). Jeśli nie zostanie wywołana przed setVideoEncoder(), nie będzie to miało żadnego wpływu.
ten został przetestowany z Androidem 2.3.3
Oto przykładowy kod:
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);
Mam nadzieję, że oni go napisać (o VideoSize i PreviewSize) na ich dokumentacji API. – artsylar
nie jest setVideoSize() tylko wywołuje setPreviewSize()? Oznacza to, że na końcu będą one miały tę samą wartość, o ile filmowanie jest jednym z obsługiwanych rozmiarów podglądu. – artsylar
Co to są "parametry"? – Felix