MediaRecorder.setMaxDuration(int timer)当计时器到期时会发生什么

时间:2010-07-12 09:11:43

标签: android

根据文件http://developer.android.com/reference/android/media/MediaRecorder.html#setMaxDuration(int)

计时器到期时录制停止。

通过停止,它们是否意味着它在内部调用recorder.stop()然后在调用recorder.start()之前恢复应用程序所处的状态?

2 个答案:

答案 0 :(得分:37)

我发现我必须实现MediaRecorder.OnInfoListener并在此时手动停止录制。完成后,MediaRecorder将返回初始状态,并且必须再次完成所有正常设置才能再次开始录制。

public class VideoCapture extends Activity implements MediaRecorder.OnInfoListener { 

   public void startVideoRecording() {
      // Normal MediaRecorder Setup
      recorder.setMaxDuration(10000); // 10 seconds
      recorder.setOnInfoListener(this);
   }

   public void onInfo(MediaRecorder mr, int what, int extra) { 
      if (what == MediaRecorder.MEDIA_RECORDER_INFO_MAX_DURATION_REACHED) {
         Log.v("VIDEOCAPTURE","Maximum Duration Reached"); 
         mr.stop();
      }
   }
}

答案 1 :(得分:1)

这是由内部的OpenCore处理的,并且在达到最大持续时间后记录器的状态是未初始化的,因为它称为stop()。您已再次设置录像机以进一步使用它。