Android 电子/媒体记录器﹕ 启动失败:-19记录器上出现异常。启动()
我正在尝试使用MediaRecorder类来录制前置摄像头。 我已经成功地使用后向摄像头拍摄了视频,但现在我不断遇到以下错误:Android 电子/媒体记录器﹕ 启动失败:-19记录器上出现异常。启动(),android,android-camera,mediarecorder,Android,Android Camera,Mediarecorder,我正在尝试使用MediaRecorder类来录制前置摄像头。 我已经成功地使用后向摄像头拍摄了视频,但现在我不断遇到以下错误: E/MediaRecorder﹕ start failed: -19 我为mediarecorder初始化尝试了多个值,但都没有改变错误,因此大多数设置都使用默认值 以下是我对媒体录制器的初始化: recorder.setCamera(openFrontFacingCamera()); recorder.setAudioSource(MediaRecorder.Aud
E/MediaRecorder﹕ start failed: -19
我为mediarecorder初始化尝试了多个值,但都没有改变错误,因此大多数设置都使用默认值
以下是我对媒体录制器的初始化:
recorder.setCamera(openFrontFacingCamera());
recorder.setAudioSource(MediaRecorder.AudioSource.DEFAULT);
recorder.setVideoSource(MediaRecorder.VideoSource.DEFAULT);
recorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED))
{
String nowDate = new SimpleDateFormat("mmhhddMMyyyy").format(new Date());
String externalStoragePath = Environment.getExternalStorageDirectory().getAbsolutePath();
String externalOutputPath = externalStoragePath + File.separator + nowDate + ".mp4";
recorder.setOutputFile(externalOutputPath);
Log.d("Path", "The output path: " + externalOutputPath);
}
else
{
String nowDate = new SimpleDateFormat("mmhhddMMyyyy").format(new Date());
String storagePath = Environment.getDataDirectory().getAbsolutePath();
recorder.setOutputFile(storagePath + nowDate + ".mp4");
Log.d("Path", "The output path: " + storagePath);
}
recorder.setVideoSize(320,240);
recorder.setVideoFrameRate(30);
recorder.setAudioEncoder(MediaRecorder.AudioEncoder.DEFAULT);
recorder.setVideoEncoder(MediaRecorder.VideoEncoder.DEFAULT);
开放式正面照相机
private Camera openFrontFacingCamera() {
int cameraCount = 0;
Camera cam = null;
Camera.CameraInfo cameraInfo = new Camera.CameraInfo();
cameraCount = Camera.getNumberOfCameras();
for (int camIdx = 0; camIdx < cameraCount; camIdx++) {
Camera.getCameraInfo(camIdx, cameraInfo);
if (cameraInfo.facing == Camera.CameraInfo.CAMERA_FACING_FRONT) {
try {
cam = Camera.open(camIdx);
camID = camIdx;
} catch (RuntimeException e) {
Log.e("CameraError", "Camera failed to open: " + e.getLocalizedMessage());
}
}
}
return cam;
}