I am getting this error when running start() for mediarecorder.
06-28 18:46:22.570: E/MediaRecorder(9540): start failed: -19
06-28 18:46:22.570: W/System.err(9540): java.lang.RuntimeException: start failed.
I am extending mediarecorder class
My code:
camera = Camera.open(cameraId);
super.setCamera(camera);
super.setVideoSource(MediaRecorder.VideoSource.CAMERA);
super.setOutputFormat(MediaRecorder.OutputFormat.DEFAULT);
if (mode==MODE_DEFAULT) {
super.setMaxDuration(1000);
super.setMaxFileSize(Integer.MAX_VALUE);
} else {
// On some phones a RuntimeException might be thrown :/
try {
super.setMaxDuration(0);
super.setMaxFileSize(Integer.MAX_VALUE);
} catch (RuntimeException e) {
Log.e(TAG,"setMaxDuration or setMaxFileSize failed !");
}
}
super.setVideoEncoder(videoEncoder);
if(surfaceHolder!=null)
super.setPreviewDisplay(surfaceHolder.getSurface());
//super.setVideoSize(quality.resX,quality.resY);
super.setVideoFrameRate(quality.frameRate);
super.setVideoEncodingBitRate(quality.bitRate);
I saw these pages
Error opening android camera for streaming video
Android MediaRecorder - "start failed: -19"
But non of them worked for me...
Running on archos 80 g9, android 3.2
Any one got any ideas?
This code worked for me (found here)
I was facing the same proble during video recording and i solved it by adding this for video recording
To see detail of how a camera is actually implemented refer to Open Source Cuxtom Cam
Fixed by removing
The problem here is about the
camera
. Just usecamera.unlock()
to allow the media process to access the camera.This must be done before calling MediaRecorder.setCamera(Camera). This cannot be called after recording starts.
Read more here.
I found a subtle hint in documentation for the
MediaRecorder.start()
method that suggest if it fails to lock() theCamera
before attempting to re-record. This worked for me. Implies aCamera
state bug was fixed post API level 13 - callingCamera.lock()
is the known workaround.