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

问题描述 投票:2回答:2

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

android android-camera android-mediaplayer android-mediarecorder
2个回答
2
投票

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

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

此解决方案有问题: 记录的mp4文件中的每个流将具有不同的长度(差异将在~100毫秒。至少这是我注意到的)。当您缝合4-5个文件时,音频和视频将不再同步。

因此,在拼接视频之前,您可以使用库剪切/修剪最长的流以匹配其他流。因为库不是编码器/解码器所以你只能剪切/修剪整个帧(音频或视频)。但是,这将减少流长度之间的差异。这些丢帧并不总是引人注目,所以你可能会侥幸逃脱。

库存储库中有足够的示例,所以我不在这里发布任何代码。 Here是另一篇文章,我认为它与我提到的第一步类似(我没有尝试OP提到的代码)。


0
投票

在Android API 24及更高版本中,您可以访问“MediaRecorder.pause()”和“MediaRecorder.resume()”方法,这些方法可让您暂停和恢复录制,就像没有发生任何事情一样

© www.soinside.com 2019 - 2024. All rights reserved.