我正在实现一个应用程序,其中包含根据一定时间将录制的视频保存到不同视频文件中的功能。
为了实现这一点,我实现了自定义相机并在某个循环中使用了 MediaRecorder.stop()
和 MediaRecorder.start()
。
但是这种方法会在重新启动媒体记录器(停止和启动)时产生滞后效果。是否可以使用媒体录制器或任何第三方库无缝停止和开始录制?
非常感谢任何帮助。
最佳答案
我认为实现 block 记录的最佳解决方案是在 MediaRecorder 对象中设置最大时间
mMediaRecorder.setMaxDuration(CHUNK_TIME);
然后你可以附加一个信息监听器,它会在达到最大块时间时通知你
mMediaRecorder.setOnInfoListener(new MediaRecorder.OnInfoListener() {
@Override
public void onInfo(MediaRecorder mr, int what, int extra) {
if (what == MediaRecorder.MEDIA_RECORDER_INFO_MAX_DURATION_REACHED) {
// restartVideo()
}
}
});
在restartVideo中,您应该首先清除以前的MediaRecorder对象并重新开始视频。
关于android - 使用 Media Recorder Android 以 block 形式录制视频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25486074/