我需要以10MB的块录制视频,为此我使用mMediaRecorder.setMaxFileSize(1085760);
一旦达到指定的大小,我就会在setOnInfoListener (In this case i received the file MediaRecorder.MEDIA_RECORDER_INFO_MAX_FILESIZE_REACHED
中获得重新录制的视频。
当达到此状态时,录制停止,所以我再次开始录制。由于这一点,摄像机视图闪烁并且还会发生内容丢失(由于摄像机重新初始化所花费的时间(少于5秒)。)
在DailyRoads中,他们完全符合我的需要,他们如何通过相机重新初始化来循环录制。
这是我的代码片段。
mMediaRecorder.setMaxFileSize(8485760);
mMediaRecorder.setVideoEncodingBitRate(10000000);
mMediaRecorder.setVideoFrameRate(30);
mMediaRecorder.setVideoSize(mVideoSize.getWidth(), mVideoSize.getHeight());
mMediaRecorder.setVideoEncoder(MediaRecorder.VideoEncoder.H264);
mMediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AAC);
mMediaRecorder.setOnInfoListener(new MediaRecorder.OnInfoListener() {
@Override
public void onInfo(MediaRecorder mr, int what, int extra) {
switch (what) {
case MediaRecorder.MEDIA_RECORDER_INFO_MAX_FILESIZE_REACHED:
Log.e("MEDIA_RECORDER_INFO_MAX_FILESIZE_REACHED", what + "");
// stopRecordingVideo();
mThresholdReachListener.onMaxLimitReached(videoFilePath);
stopRecordingVideo();
handler.postDelayed(new Runnable() {
@Override
public void run() {
startRecordingVideo();
}
}, 100);
break;
}
}
});