android - Why show error IllegalStateException when setting MediaRecorder? -


my code setting mediarecorder, show error @ row set quality

mmediarecorder = new mediarecorder();     // step 1: unlock , set camera mediarecorder    mcamera.stoppreview();    mcamera.unlock();   mmediarecorder.setcamera(mcamera);    mmediarecorder.setaudiosource(mediarecorder.audiosource.camcorder);     mmediarecorder.setvideosource(mediarecorder.videosource.default);     mmediarecorder.setoutputformat(mediarecorder.outputformat.mpeg_4);     mmediarecorder.setprofile(camcorderprofile .get(camcorderprofile.quality_high));     mmediarecorder.setaudioencoder(mediarecorder.audioencoder.aac);     mmediarecorder.setvideoencoder(mediarecorder.videoencoder.mpeg_4_sp);      // step 4: set output file     mmediarecorder.setoutputfile(getoutputmediafile(media_type_video).tostring());      // step 5: set preview output     mmediarecorder.setpreviewdisplay(mpreview.getholder().getsurface());      // step 6: prepare configured mediarecorder    try {     mmediarecorder.prepare();         log.d("debug", "illegalstateexception preparing mediarecorder: "                         + e.getmessage());                 releasemediarecorder();                 return false;    } catch (ioexception e) {                 log.d("debug",                         "ioexception preparing mediarecorder: " + e.getmessage());                 releasemediarecorder();                 return false;    } 

ex:

java.lang.illegalstateexception 

stacktrace:

java.lang.illegalstateexception     @ android.media.mediarecorder.setoutputformat(native method)     @ android.media.mediarecorder.setprofile(mediarecorder.java:366)     @ jp.osaka.e028.preparevideorecorder(e028.java:1441)     @ jp.osaka.e028.access$16(e028.java:1403)     @ jp.osaka.e028$6.onclick(e028.java:344)     @ android.view.view.performclick(view.java:3517)     @ android.view.view$performclick.run(view.java:14155)     @ android.os.handler.handlecallback(handler.java:605)     @ android.os.handler.dispatchmessage(handler.java:92)     @ android.os.looper.loop(looper.java:137)     @ android.app.activitythread.main(activitythread.java:4503)     @ java.lang.reflect.method.invokenative(native method)     @ java.lang.reflect.method.invoke(method.java:511)     @ com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:809)     @ com.android.internal.os.zygoteinit.main(zygoteinit.java:576)     @ dalvik.system.nativestart.main(native method) 

why show error illegalstateexception when setting mediarecorder?

actually mmediarecorder.setoutputformat() twice: 1 time explicitly , afterwards mmediarecorder.setprofile() tries again can see in stacktrace.

the android media recorder has low robustness things that.

so remove line says

mmediarecorder.setoutputformat(); 

and error should go away. , btw. remove

mmediarecorder.setaudioencoder(mediarecorder.audioencoder.aac); mmediarecorder.setvideoencoder(mediarecorder.videoencoder.mpeg_4_sp); 

which mmediarecorder.setprofile() has done well.


Comments

Popular posts from this blog

apache - Remove .php and add trailing slash in url using htaccess not loading css -

javascript - jQuery show full size image on click -