无法在我的 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);
希望这对任何人都有帮助!
支持的视频尺寸列表使用 -
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);
希望这对任何人都有帮助!