У меня есть приложение, которое записывает видео в Android без проблем на большинстве телефонов и уровней API.Код для записи следующий:
recorder.setCamera(cam);
recorder.setAudioSource(MediaRecorder.AudioSource.CAMCORDER);
recorder.setVideoSource(MediaRecorder.VideoSource.CAMERA);
if(Integer.valueOf(android.os.Build.VERSION.SDK) > 7){
CamcorderProfile mProfile = CamcorderProfile.get(CamcorderProfile.QUALITY_LOW);
recorder.setProfile(mProfile);
}else{
recorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
recorder.setAudioEncoder(MediaRecorder.AudioEncoder.DEFAULT);
recorder.setVideoEncoder(MediaRecorder.VideoEncoder.DEFAULT);
}
recorder.setOutputFile(path);
recorder.setPreviewDisplay(holder.getSurface());
recorder.prepare();
recorder.start();
По неизвестной причине, когда этот код выполняется в Motorola Model MB632 под управлением Android 2.3.5, я получаю следующие ошибки в Logcat:
OMXCodec : Buffer count/size less than minimum required
OMXCodec : Allocate Buffer failed - error = -2147483648
Media Recorder: start failed: -12
Camera : Error 100
Application : frameworks/base/media/libstagefright/MPEG4Writer.cpp:2966 mCodecSpecificData
И возвращает исключение.Я перепробовал все виды комбинаций, и размер буфера, по-видимому, нельзя изменить из функций API.