На Nexus One (например) приложение камеры может захватывать видео H.264 с разрешением 720x480 (настройка «Высокое» качество).Однако при использовании MediaRecorder API он, кажется, всегда захватывает с фиксированным размером кадра 320x240.
Я бы ожидал, что метод setVideoSize () будет управлять размером кадра (как в подготовительном фрагменте ниже), нопохоже, что он не имеет никакого эффекта (с помощью Android-пакета Froyo 2.2).
MediaRecorder recorder = new MediaRecorder();
recorder.setAudioSource(MediaRecorder.AudioSource.MIC);
recorder.setVideoSource(MediaRecorder.VideoSource.CAMERA);
recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
recorder.setAudioEncoder(MediaRecorder.AudioEncoder.DEFAULT);
recorder.setVideoEncoder(MediaRecorder.VideoEncoder.H264);
recorder.setOutputFile(PATH_TO_FILE);
recorder.setVideoSize(720,480);
recorder.setPreviewDisplay(holder.getSurface());
recorder.prepare();
Обсуждения в списке разработчиков Android указывают на то, что это давняя проблема.Кто-нибудь может посоветовать, как можно контролировать размер кадра, или это вообще возможно с текущим API?