我正在试图弄清楚如何在单个会话中实现重复暂停和恢复视频捕获的功能,但是使用AVFoundation将每个新段(每次暂停后捕获的段)添加到同一视频文件中。目前,每当我再次按“停止”然后再“录制”时,它只会将新的视频文件保存到我的iphone专辑中,并开始捕获到单独的/新文件。我需要能够一遍又一遍地按下“录制/停止”按钮...只捕捉视频和放大当记录处于活动状态时的音频...然后当按下“完成”按钮时,将一个包含所有段的AV文件放在一起。所有这些都需要在同一个捕获会话/预览会话中发生。
我能想到尝试这个的唯一方法是按下“完成”按钮,将每个单独的输出文件合并到一个单独的文件中......但是我非常确定基本粘贴的处理时间一堆单独的剪辑是不可接受的。而且,看起来这将是一个非常混乱的&用不必要的方式解决这个问题,代码太多了。
有没有简单的方法可以在单个会话中暂停视频捕获,只需将捕获恢复到同一个文件?还是其他任何想法?
如果不是太麻烦,示例代码可以帮助我减轻...我还在学习&教我自己,所以我跟着这个术语并不是很好。解释中的术语。感谢
编辑:这是我开始学习AVFoundation的项目......所以这是我希望改变以实现上述功能的代码:http://developer.apple.com/library/ios/#samplecode/AVCam/Introduction/Intro.html
答案 0 :(得分:10)
您可以使用AVCaptureVideoDataOutput而不是使用捕获会话中的电影文件输出,并在您的委托中将示例传递给AVAssetWriterInput的实例。然后,您可以将预览与录制分离。如果您的代理人没有将缓冲区转发给资产编写者,那么该部分就没有记录。
当你想开始将第二个(和后续的)会话记录到同一个文件时,你需要调整时间戳,使它们从你停止的那一刻起是连续的,你需要确保你对音频和视频进行相同的调整,使它们保持在水槽中。所以有点繁琐,但肯定可行。
编辑:有一个示例iPhone应用在http://www.gdcl.co.uk/2013/02/20/iPhone-Pause.html
上演示了这一点
答案 1 :(得分:1)
一般情况下,如果我使用的是AVCaptureSession,我会使用startRunning和stopRunning。我假设你会。
请参阅AVCaptureSession的文档。
答案 2 :(得分:-1)
您只需使用HBRecorder即可。 HBRecorder 是一款具有暂停/启动功能的视频录制工具。视频片段之间的美丽动画。