Ответ 1
В зависимости от уровня API вы можете использовать существующие профили или нет.
Без профилей:
recorder.setVideoSize(640, 480);
recorder.setVideoFrameRate(16); //might be auto-determined due to lighting
recorder.setVideoEncodingBitRate(3000000);
recorder.setVideoEncoder(MediaRecorder.VideoEncoder.H264);// MPEG_4_SP
recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
Или если вы хотите использовать существующие профили
CamcorderProfile cpHigh = CamcorderProfile.get(CamcorderProfile.QUALITY_HIGH);
recorder.setProfile(cpHigh);
Обратите внимание, что у вас не может быть обоих параметров вместе, так как вы получите ошибки или ваша подготовка не будет работать.
Поскольку не все Android API и/или устройства поддерживают одни и те же значения, вам нужно либо запросить максимальные значения для каждого устройства, либо найти что-то, что работает везде.