无法在我的 Samsung Galaxy Note 2 上使用 Android MediaRecorder 在 1920x1080 上录制

Cannot record on 1920x1080 using Android MediaRecorder on my Samsung Galaxy Note 2

支持的视频尺寸列表使用 -

camera.getParameters().getSupportedVideoSizes()

--

0 - 1280 x 720

1 - 1920 x 1080

2 - 960 x 720

3 - 720 x 480

4 - 640 x 480

5 - 352 x 288

6 - 320 x 240

7 - 177 x 144

-- 支持的预览尺寸列表使用 -

camera.getParameters().getSupportedPreviewSizes();

--

0 - 960 x 720

1 - 1280 x 720

2 - 640 x 480

3 - 352 x 288

4 - 320 x 240

-- 正如我们所看到的,该设备确实支持以“1920 x 1080”分辨率录制 但是,可以用除此特定分辨率之外的所有其他分辨率录制 MP4 视频。 三星的默认相机应用程序可以轻松地以此分辨率进行录制。那么为什么我不能那样做呢? 与预览尺寸有关吗?

这是我用来配置 MediaRecorder 的代码-

camera = android.hardware.Camera.open();
parameters = camera.getParameters();
parameters.setPreviewSize(1280, 720);
camera.setParameters(parameters);
camera.startPreview();
camera.unlock();
mediaRecorder.setCamera(camera);
mediaRecorder.setAudioSource(MediaRecorder.AudioSource.CAMCORDER);
mediaRecorder.setVideoSource(MediaRecorder.VideoSource.CAMERA);
mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.DEFAULT);
mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.DEFAULT);
mediaRecorder.setVideoSize(1920, 1080);
mediaRecorder.setVideoEncoder(MediaRecorder.VideoEncoder.DEFAULT);
mediaRecorder.setOutputFile("/storage/emulated/temp/test.mp4");
mediaRecorder.setPreviewDisplay(holder.getSurface());
mediaRecorder.prepare();

-- 调用 mediaRecorder.start() 给出错误 -19

已解决! 我用过-

CamcorderProfile cpHigh = CamcorderProfile.get(CamcorderProfile.QUALITY_HIGH);
mediaRecorder.setProfile(cpHigh);

希望这对任何人都有帮助!