MediaRecorder 錄製的一些問題

start 和 stop的時候可能會IllegalStateException 處理的話我們可以捕捉 這裏記錄一下

try {
            mMediaRecorder.prepare();
            mMediaRecorder.start();

            recordSuccessAction();
        } catch (IOException e) {
            e.printStackTrace();
        } catch (IllegalStateException e) {
            e.printStackTrace();
            LogUtils.e(e.getMessage());

            mMediaRecorder = null;//先重置爲null
            prepareTakeVideoAndStart(filePath);//然後重新初始化即可,包括設置重新配置等等
        }
...
if (mMediaRecorder != null) {
            mMediaRecorder.setOnErrorListener(null);
            mMediaRecorder.setOnInfoListener(null);
            mMediaRecorder.setPreviewDisplay(null);
            try {
                mMediaRecorder.stop();
            } catch (IllegalStateException e) {
                e.printStackTrace();
                exception = true;

                mMediaRecorder = null;//重置爲null
                mMediaRecorder = new MediaRecorder();//重新new對象
            }
//            mMediaRecorder.reset();
            mMediaRecorder.release();
            mMediaRecorder = null;

            ...

        }

一般錄製時間過短容易出現這種情況,可以考慮做做防抖動

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章