Sto riscontrando un problema con la mia registrazione mediaria. Sto cercando di usare la fotocamera frontale per registrare. Questo mi dà un errore (ma l'anteprima funziona). Ogni volta che uso la fotocamera posteriore tutto funziona bene, penso che sia molto strano. Quale potrebbe essere il problema e quale potrebbe essere la soluzione? Il mio codice e gli errori sono mostrati di seguito.Errore iniziale mediarecording Android non riuscito -19 runTimeException
Modifica. La registrazione con una fotocamera frontale VGA sembra non funzionare. Com'è possibile? È comunque possibile la registrazione con l'app Fotocamera HTC.
Grazie in anticipo.
protected void startRecording() throws Exception
{
mrec = new MediaRecorder();
mCamera.unlock();
mrec.setCamera(mCamera);
mrec.setVideoSource(MediaRecorder.VideoSource.CAMERA);
mrec.setAudioSource(MediaRecorder.AudioSource.MIC);
mrec.setProfile(CamcorderProfile.get(CamcorderProfile.QUALITY_HIGH));
//mrec.setPreviewDisplay(surfaceHolder.getSurface());
File picDirectory = new File(Environment.getExternalStorageDirectory() +"/TrouwApp");
picDirectory.mkdirs();
File mediaStorageDir = new File(Environment.getExternalStorageDirectory() +"/TrouwApp", "Videos");
// Create the storage directory if it does not exist
if (! mediaStorageDir.exists()){
if (! mediaStorageDir.mkdirs()){
Log.d("MyCameraApp", "failed to create directory");
}
}
mrec.setOutputFile(mediaStorageDir.getPath() + File.separator + date + "_" + videonr+ ".3gp");
mrec.prepare();
mrec.start();//line 136
Log.d(TAG, "Recording started!!");
}
linee aggiunte al manifesto:
<uses-feature android:name="android.hardware.camera" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
ErrorLog:
08-25 23:25:25.332: V/MediaRecorderJNI(4989): setup 08-25 23:25:25.362: V/MediaRecorder(4989): constructor 08-25 23:25:25.402: V/MediaRecorder(4989): doCleanUp 08-25 23:25:25.402: V/MediaRecorder(4989): setListener 08-25 23:25:25.402: V/MediaRecorderJNI(4989): setMediaRecorder E: mr = mr 08-25 23:25:25.402: V/MediaRecorderJNI(4989): setMediaRecorder X 08-25 23:25:25.402: V/MediaRecorderJNI(4989): getMediaRecorder E 08-25 23:25:25.402: V/MediaRecorderJNI(4989): JNIMediaRecorderListener::setCamera 08-25 23:25:25.402: V/MediaRecorder(4989): setCamera(0x16c2290,0x1c08dc8) 08-25 23:25:25.402: V/MediaRecorderJNI(4989): process_media_recorder_call 08-25 23:25:25.402: V/MediaRecorderJNI(4989): setVideoSource(1) 08-25 23:25:25.402: V/MediaRecorderJNI(4989): getMediaRecorder E 08-25 23:25:25.402: V/MediaRecorder(4989): setVideoSource(1) 08-25 23:25:25.402: V/MediaRecorder(4989): Call init() since the media recorder is not initialized yet 08-25 23:25:25.402: V/MediaRecorder(4989): init 08-25 23:25:25.412: V/MediaRecorderJNI(4989): process_media_recorder_call 08-25 23:25:25.412: V/MediaRecorderJNI(4989): setAudioSource(1) 08-25 23:25:25.412: V/MediaRecorderJNI(4989): getMediaRecorder E 08-25 23:25:25.412: V/MediaRecorder(4989): setAudioSource(1) 08-25 23:25:25.412: V/MediaRecorderJNI(4989): process_media_recorder_call 08-25 23:25:25.502: V/MediaRecorderJNI(4989): setOutputFormat(2) 08-25 23:25:25.502: V/MediaRecorderJNI(4989): getMediaRecorder E 08-25 23:25:25.502: V/MediaRecorder(4989): setOutputFormat(2) 08-25 23:25:25.502: V/MediaRecorderJNI(4989): process_media_recorder_call 08-25 23:25:25.502: V/MediaRecorderJNI(4989): setVideoFrameRate(30) 08-25 23:25:25.502: V/MediaRecorderJNI(4989): getMediaRecorder E 08-25 23:25:25.502: V/MediaRecorder(4989): setVideoFrameRate(30) 08-25 23:25:25.502: V/MediaRecorderJNI(4989): process_media_recorder_call 08-25 23:25:25.502: V/MediaRecorderJNI(4989): setVideoSize(1920, 1088) 08-25 23:25:25.502: V/MediaRecorderJNI(4989): getMediaRecorder E 08-25 23:25:25.502: V/MediaRecorder(4989): setVideoSize(1920, 1088) 08-25 23:25:25.502: V/MediaRecorderJNI(4989): process_media_recorder_call 08-25 23:25:25.502: V/MediaRecorderJNI(4989): setParameter() 08-25 23:25:25.502: V/MediaRecorderJNI(4989): getMediaRecorder E 08-25 23:25:25.502: V/MediaRecorder(4989): setParameters(video-param-encoding-bitrate=12000000) 08-25 23:25:25.512: V/MediaRecorderJNI(4989): process_media_recorder_call 08-25 23:25:25.512: V/MediaRecorderJNI(4989): setVideoEncoder(2) 08-25 23:25:25.512: V/MediaRecorderJNI(4989): getMediaRecorder E 08-25 23:25:25.512: V/MediaRecorder(4989): setVideoEncoder(2) 08-25 23:25:25.512: V/MediaRecorderJNI(4989): process_media_recorder_call 08-25 23:25:25.512: V/MediaRecorderJNI(4989): setParameter() 08-25 23:25:25.512: V/MediaRecorderJNI(4989): getMediaRecorder E 08-25 23:25:25.512: V/MediaRecorder(4989): setParameters(audio-param-encoding-bitrate=96000) 08-25 23:25:25.512: V/MediaRecorderJNI(4989): process_media_recorder_call 08-25 23:25:25.512: V/MediaRecorderJNI(4989): setParameter() 08-25 23:25:25.512: V/MediaRecorderJNI(4989): getMediaRecorder E 08-25 23:25:25.512: V/MediaRecorder(4989): setParameters(audio-param-number-of-channels=1) 08-25 23:25:25.512: V/MediaRecorderJNI(4989): process_media_recorder_call 08-25 23:25:25.512: V/MediaRecorderJNI(4989): setParameter() 08-25 23:25:25.512: V/MediaRecorderJNI(4989): getMediaRecorder E 08-25 23:25:25.512: V/MediaRecorder(4989): setParameters(audio-param-sampling-rate=48000) 08-25 23:25:25.512: V/MediaRecorderJNI(4989): process_media_recorder_call 08-25 23:25:25.512: V/MediaRecorderJNI(4989): setAudioEncoder(3) 08-25 23:25:25.512: V/MediaRecorderJNI(4989): getMediaRecorder E 08-25 23:25:25.512: V/MediaRecorder(4989): setAudioEncoder(3) 08-25 23:25:25.512: V/MediaRecorderJNI(4989): process_media_recorder_call 08-25 23:25:25.542: V/MediaRecorderJNI(4989): setOutputFile 08-25 23:25:25.542: V/MediaRecorderJNI(4989): getMediaRecorder E 08-25 23:25:25.542: V/MediaRecorder(4989): setOutputFile(60, 0, 0) 08-25 23:25:25.542: V/MediaRecorderJNI(4989): process_media_recorder_call 08-25 23:25:25.542: V/MediaRecorderJNI(4989): prepare 08-25 23:25:25.542: V/MediaRecorderJNI(4989): getMediaRecorder E 08-25 23:25:25.542: V/MediaRecorder(4989): prepare 08-25 23:25:25.542: V/MediaRecorderJNI(4989): process_media_recorder_call 08-25 23:25:25.542: V/MediaRecorderJNI(4989): start 08-25 23:25:25.552: V/MediaRecorderJNI(4989): getMediaRecorder E 08-25 23:25:25.552: V/MediaRecorder(4989): start 08-25 23:25:25.562: E/MediaRecorder(4989): start failed: -19 08-25 23:25:25.562: V/MediaRecorderJNI(4989): process_media_recorder_call 08-25 23:25:25.562: E/MediaRecorder(4989): start failed. 08-25 23:25:25.562: E/MediaRecorder(4989): try to delete broken file: /mnt/sdcard/TrouwApp/Videos/25-8-2013_0.3gp 08-25 23:25:25.562: D/videoActivity(4989): ERROR start failed. 08-25 23:25:25.562: D/videoActivity(4989): ERROR java.lang.RuntimeException: start failed. 08-25 23:25:25.562: D/videoActivity(4989): ERROR java.lang.RuntimeException: start failed. 08-25 23:25:25.562: V/MediaRecorderJNI(4989): release 08-25 23:25:25.562: V/MediaRecorderJNI(4989): setMediaRecorder E: mr = null 08-25 23:25:25.562: V/MediaRecorderJNI(4989): setMediaRecorder X 08-25 23:25:25.562: V/MediaRecorder(4989): setListener 08-25 23:25:25.562: V/MediaRecorder(4989): release 08-25 23:25:25.562: V/MediaRecorder(4989): destructor 08-25 23:25:25.562: D/videoActivity(4989): START RECORDING ERROR 08-25 23:25:25.562: W/System.err(4989): java.lang.RuntimeException: start failed. 08-25 23:25:25.572: W/System.err(4989): at android.media.MediaRecorder._start(Native Method) 08-25 23:25:25.572: W/System.err(4989): at android.media.MediaRecorder.start(MediaRecorder.java:712) 08-25 23:25:25.572: W/System.err(4989): at com.example.trouwapp.VideoActivity.startRecording(VideoActivity.java:136) 08-25 23:25:25.572: W/System.err(4989): at com.example.trouwapp.VideoActivity.onClick(VideoActivity.java:246) 08-25 23:25:25.572: W/System.err(4989): at android.view.View.performClick(View.java:3549) 08-25 23:25:25.572: W/System.err(4989): at android.view.View$PerformClick.run(View.java:14393) 08-25 23:25:25.582: W/System.err(4989): at android.os.Handler.handleCallback(Handler.java:605) 08-25 23:25:25.582: W/System.err(4989): at android.os.Handler.dispatchMessage(Handler.java:92) 08-25 23:25:25.582: W/System.err(4989): at android.os.Looper.loop(Looper.java:154) 08-25 23:25:25.582: W/System.err(4989): at android.app.ActivityThread.main(ActivityThread.java:4945) 08-25 23:25:25.582: W/System.err(4989): at java.lang.reflect.Method.invokeNative(Native Method) 08-25 23:25:25.582: W/System.err(4989): at java.lang.reflect.Method.invoke(Method.java:511) 08-25 23:25:25.582: W/System.err(4989): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784) 08-25 23:25:25.582: W/System.err(4989): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551) 08-25 23:25:25.592: W/System.err(4989): at dalvik.system.NativeStart.main(Native Method) 08-25 23:25:55.582: V/MediaRecorderJNI(4989): native_reset 08-25 23:25:55.582: V/MediaRecorderJNI(4989): getMediaRecorder E 08-25 23:25:55.582: V/MediaRecorderJNI(4989): release 08-25 23:25:55.582: V/MediaRecorderJNI(4989): setMediaRecorder E: mr = null 08-25 23:25:55.582: V/MediaRecorderJNI(4989): setMediaRecorder X 08-25 23:25:56.002: D/AndroidRuntime(4989): Shutting down VM 08-25 23:25:56.002: W/dalvikvm(4989): threadid=1: thread exiting with uncaught exception (group=0x40ac8228)
cosa è mCamera? – grant