所以我想有很多关于我要问的问题。但有没有人找到一个可以在录制电影期间暂停的解决方案或库?或者是否有任何可用的api稳定并且可以连接几个mp4文件?
答案 0 :(得分:2)
Mp4Parser是基于java的库,可让您操作h264和aac编码流。它不是编码器或解码器。但您可以连接或修剪流,切换流或将流添加到mp4容器等。
对于实现暂停/恢复功能,您可以使用MediaRecorder在每次用户按下暂停(然后恢复)时创建新的录制文件。 所以你将有多个mp4文件,然后你可以使用Mp4Parser拼接在一起。
此解决方案存在问题:
记录的mp4文件中的每个流将具有不同的长度(差异将在~100毫秒。至少这是我注意到的)。当您缝合4-5个文件时,音频和视频将不再同步。
因此,在拼接视频之前,您可以使用库剪切/修剪最长的流以匹配其他流。因为库不是编码器/解码器所以你只能剪切/修剪整个帧(音频或视频)。但是,这将减少流长度之间的差异。这些丢帧并不总是引人注目,所以你可能会侥幸逃脱。
库存储库中有足够的示例,所以我不会在这里发布任何代码。 Here是另一篇文章,我认为这与我提到的第一步类似(我没有尝试OP提到的代码)。
答案 1 :(得分:0)
在Android API 24及更高版本中,您可以访问'MediaRecorder.pause()'和'MediaRecorder.resume()'方法,这些方法可以让您暂停和继续记录,就像什么都没发生一样