Error處理: android.media.MediaRecorder.start(Native Method) 報錯

來源:互聯網
上載者:User


spydroid-android測試在android4.0系統上報錯
start failed: -19

而且也發現,

01-06 14:04:07.790: V/MediaRecorder(13280): prepare01-06 14:04:07.790: V/IMediaRecorder(13280): prepare01-06 14:04:07.800: V/MediaRecorder(13280): start01-06 14:04:07.800: V/IMediaRecorder(13280): start01-06 14:04:08.190: E/MediaRecorder(13280): start failed: -1901-06 14:04:08.190: W/System.err(13280): java.lang.RuntimeException: start failed.01-06 14:04:08.200: W/System.err(13280): at android.media.MediaRecorder.start(Native Method)01-06 14:04:08.200: W/System.err(13280): at com.yousee.videocapturedemo.VideoCapturePlus$2.onClick(VideoCapturePlus.java:145)01-06 14:04:08.200: W/System.err(13280): at android.view.View.performClick(View.java:3515)01-06 14:04:08.200: W/System.err(13280): at android.view.View$PerformClick.run(View.java:14144)01-06 14:04:08.200: W/System.err(13280): at android.os.Handler.handleCallback(Handler.java:605)01-06 14:04:08.200: W/System.err(13280): at android.os.Handler.dispatchMessage(Handler.java:92)01-06 14:04:08.200: W/System.err(13280): at android.os.Looper.loop(Looper.java:148)01-06 14:04:08.200: W/System.err(13280): at android.app.ActivityThread.main(ActivityThread.java:4503)01-06 14:04:08.200: W/System.err(13280): at java.lang.reflect.Method.invokeNative(Native Method)01-06 14:04:08.200: W/System.err(13280): at java.lang.reflect.Method.invoke(Method.java:511)01-06 14:04:08.200: W/System.err(13280): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:830)01-06 14:04:08.200: W/System.err(13280): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)01-06 14:04:08.200: W/System.err(13280): at dalvik.system.NativeStart.main(Native Method)



    .....        mMediaRecorder=new MediaRecorder();          //設定視頻源          mMediaRecorder.setVideoSource(MediaRecorder.VideoSource.DEFAULT);          //設定音頻源          mMediaRecorder.setAudioSource(MediaRecorder.AudioSource.DEFAULT);          //設定檔案輸出格式          mMediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);          //設定視頻編碼方式          mMediaRecorder.setVideoEncoder(MediaRecorder.VideoEncoder.H264);          //設定音頻編碼方式          mMediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.DEFAULT);          //設定視頻高和寬,注意文檔的說明:          //Must be called after setVideoSource().          //Call this after setOutFormat() but before prepare().          //設定錄製的視訊框架率,注意文檔的說明:          //Must be called after setVideoSource().          //Call this after setOutFormat() but before prepare().          mMediaRecorder.setVideoFrameRate(20);          //設定預覽畫面          mMediaRecorder.setPreviewDisplay(mSurfaceHolder.getSurface());          //設定輸出路徑          mMediaRecorder.setOutputFile          (Environment.getExternalStorageDirectory()+File.separator+System.currentTimeMillis()+".mp4");  .....mediaRecorder.prepare();mediaRecorder.start();.....

相同的程式在Android2.3平台上正常運行,在Android4.0上報錯。

解決方案:

注釋掉設定視訊框架率的語句。//mMediaRecorder.setVideoFrameRate(mQuality.framerate);


將setVideoFrameRate去掉之後,如果還出現該錯誤,可將

mMediaRecorder.setVideoSize(videoWidth, videoHeight);

參考:

          http://stackoverflow.com/questions/11249642/mediarecorder-start-failed-19



聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.