Ho riscontrato un problema simile a quello descritto qui. Ho scoperto che dovevo ristrutturare leggermente il mio codice prima di poter regolare le dimensioni del video.
L'importante è che setVideoSize() venga chiamato prima di setVideoEncoder(). Non riesco a trovare questo nella documentazione, tuttavia ha risolto i miei problemi con l'impostazione di una risoluzione video specifica. Ricorda inoltre che setOutputFormat() deve essere chiamato prima di setVideoSize().
Come nota a margine, lo stesso vale per setVideoFrameRate(). Se non viene chiamato prima di setVideoEncoder() non avrà alcun effetto.
Questo è stato testato con Android 2.3.3
Ecco un esempio di codice:
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);
fonte
2011-11-04 12:56:03
Spero solo che avrebbero scriverlo (circa VideoSize e PreviewSize) sul loro documentazione API. – artsylar
non è setVideoSize() chiama semplicemente setPreviewSize()? Significativo, avranno ancora lo stesso valore alla fine fintanto che il video è una delle dimensioni di anteprima supportate. – artsylar
Che cosa sono i "parametri"? I parametri – Felix