似乎即使我将录像机配置文件设置为低电平,视频仍然是最高质量的。
这是我的代码:
camera.setDisplayOrientation(90);
camera.unlock();
recorder.reset();
recorder.setCamera(camera);
recorder.setAudioSource(MediaRecorder.AudioSource.MIC);
recorder.setVideoSource(MediaRecorder.VideoSource.CAMERA);
recorder.setProfile(CamcorderProfile.get(CamcorderProfile.QUALITY_LOW));
//when removing these comments I get an exception on my 4.2.2 device when calling start() on the recorder.
/* recorder.setVideoFrameRate(24);
recorder.setVideoSize(480, 360);
*/
recorder.setOrientationHint(90);
file = FileUtils.getFileName(FileTypes.VIDEO);
if (!file.exists()) {
try {
file.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
}
recorder.setOutputFile(FileUtils.getFileName(FileTypes.VIDEO).toString());
recorder.setMaxDuration(45000);
答案 0 :(得分:2)
试试这个。虽然这看起来和您的代码相同,但它适用于我。为CamcorderProfile创建一个单独的实例,并将记录器配置文件设置为此实例。
CamcorderProfile cprofileLow = CamcorderProfile
.get(CamcorderProfile.QUALITY_LOW);
recorder.setProfile(cprofileLow);
recorder.setOutputFile("/sdcard/videocapture_example.mp4");
recorder.setMaxDuration(50000); // 50 seconds
recorder.setMaxFileSize(3000000); // Approximately 3 megabytes
请注意您有一个高端设备(因为您的设备是4.2.2),您可能会获得相对较好的分辨率,这是您设备中可能的最低分辨率。