在iOS中使用AVFoundation暂停和恢复同一个文件的video截图

我试图找出如何实现function,以重复暂停和恢复video捕获在一个单一的会议,但有AVFoundation每个新的细分(每个暂停后捕获的细分)添加到相同的video文件。 目前,我每次按“停止”,然后“logging”,它只是一个新的video文件保存到我的iPhone的相册,并开始捕获到一个单独的/新的文件。 我需要能够反复按下“录制/停止”button…只有在录制活动时捕获video和audio…然后当“完成”button被按下时,有一个单一的AV文件,所有的细分在一起。 所有这些都需要在同一个捕获会话/预览会话中进行。

我能想到的唯一办法就是尝试这个,当按下“完成”button时,将每个单独的输出文件合并成一个单独的文件…但我很确定处理时间基本上粘贴了一堆单独的剪辑在一起将不被接受。 另外,这似乎是一个非常混乱和不必要的方式去做这个,用太多的代码。

有没有简单的方法来暂停一个会话中的video捕捉,只是简单地恢复捕获到同一个文件? 还是有其他的想法?

如果没有太多的麻烦,示例代码可以帮助我解决问题…我仍然在学习和教导自己,所以我不擅长遵循术语和术语来解释。 谢谢

编辑:这是我开始学习AVFoundation的项目…所以这是我想要改变以实现上述function的代码: http : //developer.apple.com/library/ios/#samplecode/AVCam /Introduction/Intro.html

您可以使用AVCaptureVideoDataOutput并在代理中将样本传递给AVAssetWriterInput的实例,而不是使用捕获会话的电影文件输出。 然后,您可以将预览与录制分离。 如果您的代理不将缓冲区转发到资产编写器,那么该部分就没有logging。

当你想开始logging第二次(和后续)会话到同一个文件时,你需要调整时间戳,使它们从停止点开始连续,并且你需要确保你做的是相同的调整到audio和video,使他们留在水槽。 所以有点烦琐,但肯定可行。

编辑:有一个示例iPhone应用程序,演示了这一点http://www.gdcl.co.uk/2013/02/20/iPhone-Pause.html

G

一般来说,如果我使用AVCaptureSession,我使用startRunning和stopRunning。 我假设你会的。

请参阅AVCaptureSession的文档。

您可以简单地使用HBRecorder 。 HBRecorder是一个video录制工具,具有暂停/启动function和video片段之间美丽的animation。