代码之家  ›  专栏  ›  技术社区  ›  Namratha

MediaRecorder。setMaxDuration(int timer)计时器过期时会发生什么

  •  11
  • Namratha  · 技术社区  · 16 年前

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

    计时器过期时,录音停止。

    他们所说的停止,是指它调用内部记录器吗。停止(),然后恢复应用程序在调用recorder之前的状态。开始()?

    2 回复  |  直到 16 年前
        1
  •  41
  •   vanevery    15 年前

    我发现我必须实现MediaRecorder。OnInfo Listener并在该点手动停止录制。完成后,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();
          }
       }
    }
    
        2
  •  1
  •   ognian    16 年前

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