1. 程式人生 > >Android使用MediaRecorder的stop方法報"stop failed"錯誤的解決方案

Android使用MediaRecorder的stop方法報"stop failed"錯誤的解決方案

一、 問題描述

如下所示,呼叫recorder.stop()時丟擲異常:

Caused by: java.lang.RuntimeException: stop failed.
        at android.media.MediaRecorder.stop(Native Method)

二、 分析原因

start和stop間隔時間太短:
原始碼分析

三、 解決方案

呼叫stop()之前將OnErrorListener、OnInfoListener和PreviewDisplay置空:

recorder.setOnErrorListener(null);
recorder.setOnInfoListener
(null); recorder.setPreviewDisplay(null); try { recorder.stop(); } catch (IllegalStateException e) { e.printStackTrace(); } catch (RuntimeException e) { e.printStackTrace(); } catch (Exception e) { e.printStackTrace(); }

四、 參考文獻