Android MediaRecorder - "início falhou: -19"
Eu estou tentando criar um gravador de vídeo no Android, e eu preparei meu código que deveria estar funcionando - mas eu constantemente recebo uma mensagem de errostart failed: -19
.
Aqui está meu código:
<code>public boolean startRecording() { try { camera.unlock(); mediaRecorder = new MediaRecorder(); mediaRecorder.setOnErrorListener(new MediaRecorder.OnErrorListener() { @Override public void onError(MediaRecorder mr, int what, int extra) { Log.i(TAG, "Error"); } }); mediaRecorder.setCamera(camera); mediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC); mediaRecorder.setVideoSource(MediaRecorder.VideoSource.CAMERA); Log.i(TAG, "a"); mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP); mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.DEFAULT); mediaRecorder.setVideoEncoder(MediaRecorder.VideoEncoder.H263); Log.i(TAG, "b"); mediaRecorder.setMaxDuration(maxDurationInMs); // set to 20000 String uniqueOutFile = OUTPUT_FILE + System.currentTimeMillis() + ".3gp"; File outFile = new File(uniqueOutFile); if (outFile.exists()) { outFile.delete(); } mediaRecorder.setOutputFile(uniqueOutFile); mediaRecorder.setVideoFrameRate(videoFramesPerSecond); // set to 20 mediaRecorder.setVideoSize(sView.getWidth(), sView.getHeight()); Log.i(TAG, "c"); mediaRecorder.setPreviewDisplay(holder.getSurface()); mediaRecorder.setMaxFileSize(maxFileSizeInBytes); // set to 50000 mediaRecorder.prepare(); Log.i(TAG, "d"); mediaRecorder.start(); Log.i(TAG, "e"); return true; } catch (IllegalStateException e) { Log.i(TAG, "f"); Log.e(TAG, e.getMessage()); e.printStackTrace(); camera.lock(); return false; } catch (IOException e) { Log.i(TAG, "g"); Log.e(TAG, e.getMessage()); e.printStackTrace(); camera.lock(); return false; } catch (RuntimeException e) { Log.i(TAG, "h"); Log.e(TAG, e.getMessage()); camera.lock(); return false; } } </code>
Todos os logs de depuração (de "a" a "d") são impressos no log, então parece que todos os passos atémediaRecorder.prepare()
são feitos corretamente. Então pega umRuntimeException
com mensagemstart failed: -19
. Existe um semelhantequestão, mas isso não resolve o meu problema.
Existe algum outro motivo para obter tal erro?