根据文件http://developer.android.com/reference/android/media/MediaRecorder.html#setMaxDuration(int)
计时器到期时录制停止。
通过停止,它们是否意味着它在内部调用recorder.stop()然后在调用recorder.start()之前恢复应用程序所处的状态?
答案 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()。您已再次设置录像机以进一步使用它。