mediarecorder 如何暂停和恢复录制视频

Posted

技术标签:

【中文标题】mediarecorder 如何暂停和恢复录制视频【英文标题】:mediarecorder how to pause and resume recording video 【发布时间】:2015-12-01 12:28:06 【问题描述】:

所以我想关于我要问的问题有很多问题。但是有没有人找到可以在录制电影期间暂停的解决方案或库?或者有没有稳定的可以连接多个mp4文件的api?

【问题讨论】:

【参考方案1】:

Mp4Parser 是基于 java 的库,可让您操作 h264 和 aac 编码流。它不是编码器或解码器。但您可以连接或修剪流、切换流或将流添加到 mp4 容器等。

为了实现暂停/恢复功能,您可以使用 MediaRecorder 在用户每次按下暂停(然后恢复)时创建新的录制文件。 因此您将拥有多个 mp4 文件,然后您可以使用 Mp4Parser 将它们拼接在一起。

这个解决方案的问题:

Recorded mp4 文件中的每个流都有不同的长度(差异将在 ~100 毫秒内。至少这是我注意到的)。当您拼接超过 4-5 个文件时,音频和视频将不同步。

因此,在拼接视频之前,您可以使用库剪切/修剪最长的流以匹配另一个流。由于库不是编码器/解码器,因此您只能剪切/修剪整个帧(音频或视频)。但是,这仍然会减少流长度之间的差异。这种丢帧并不总是很明显,因此您可能会侥幸逃脱。

库存储库中有足够的示例,因此我不会在此处发布任何代码。 Here 是另一个帖子,我相信它与我提到的第一步类似(我还没有尝试过 OP 提到的代码)。

【讨论】:

【参考方案2】:

android API 24 及更高版本中,您可以访问 'MediaRecorder.pause()' 和 'MediaRecorder.resume()' 方法,让您可以像什么都没发生一样暂停和恢复录制

【讨论】:

以上是关于mediarecorder 如何暂停和恢复录制视频的主要内容,如果未能解决你的问题,请参考以下文章

Android 4.2.2:暂停和恢复视频录制?

MediaRecorder - 如何在录制时播放视频块/块?

我如何在python中暂停录制屏幕

MediaRecorder,录制音视频音量非常小

如何录制流媒体视频?

Android多媒体功能开发(13)——使用MediaRecorder类录制视频