Android 某些设备启动MediaRecorder时出错启动失败-19
我正在尝试在我的应用程序中录制视频,在我的Nexus 5和中兴通讯上,此代码工作正常,但在Samsumg Galaxy S2和S3上失败,例外情况是“启动失败-19”。我是MediaRecorder的noob,我只需要一个配置,可以在所有以正常质量录制.mp4视频文件的摄像头上运行Android 某些设备启动MediaRecorder时出错启动失败-19,android,mediarecorder,Android,Mediarecorder,我正在尝试在我的应用程序中录制视频,在我的Nexus 5和中兴通讯上,此代码工作正常,但在Samsumg Galaxy S2和S3上失败,例外情况是“启动失败-19”。我是MediaRecorder的noob,我只需要一个配置,可以在所有以正常质量录制.mp4视频文件的摄像头上运行 try { prCamera.unlock(); prMediaRecorder.setCamera(prCamera); prMediaRecorder.se
try {
prCamera.unlock();
prMediaRecorder.setCamera(prCamera);
prMediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
prMediaRecorder.setVideoSource(MediaRecorder.VideoSource.DEFAULT);
prMediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
prMediaRecorder.setVideoFrameRate(24);
prMediaRecorder.setVideoSize(720, 480);
prMediaRecorder.setVideoFrameRate(24);
prMediaRecorder.setVideoEncodingBitRate(3000000);
prMediaRecorder.setAudioEncodingBitRate(12200);
prMediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
prMediaRecorder.setVideoEncoder(MediaRecorder.VideoEncoder.H264);
prMediaRecorder.setMaxDuration(cMaxRecordDurationInMs);
// Nombre del video de salida
String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss", Locale.ENGLISH).format(new Date());
nombreVideo = "video_" + timeStamp;
prRecordedFile = new File(cVideoFilePath + nombreVideo + ".mp4");
prMediaRecorder.setOutputFile(prRecordedFile.getPath());
prMediaRecorder.setPreviewDisplay(prSurfaceHolder.getSurface());
try {
prMediaRecorder.prepare();
// Fail on next line
prMediaRecorder.start();
} catch (IllegalStateException e) {
Log.d(tag, "IllegalStateException preparing MediaRecorder: " + e.getMessage());
timer.cancel();
cerrarCamara();
return false;
} catch (IOException e) {
Log.d(tag, "IOException preparing MediaRecorder: " + e.getMessage());
timer.cancel();
cerrarCamara();
return false;
} catch (Exception e) {
Log.d(tag, "Unknown exception preparing MediaRecorder: " + e.getMessage());
timer.cancel();
cerrarCamara();
return false;
}
prRecordInProcess = true;
为什么不使用
CamcorderProfile profile = CamcorderProfile.get(CamcorderProfile.QUALITY_HIGH);
我无法找到此配置文件的确切设置,但我非常确定outputformat是mpeg4,这就是您想要的。。。
我记得大多数媒体录制器问题都与设置错误的参数有关。尝试使用此配置文件。它保证了设备的最高可用和工作设置。您可以在此处阅读有关此配置文件和其他配置文件的更多信息,这些配置文件可能更适合您的需要我现在正在尝试其他想法,有意启动系统摄像头,我尝试了您的解决方案,但Samsumg设备有很多问题。@damián如果可行,请尝试一下,标记为接受pls,但这样你清楚地知道mediarecorder不会因为我上面发布的android开发者链接的设置而崩溃