iphone - 在 iOS 中使用 AVFoundation 暂停和恢复同一文件的视频捕获

标签 iphone ios objective-c avfoundation video-capture

我正在尝试弄清楚如何使用 AVFoundation 实现在单个 session 中重复暂停和恢复视频捕获的功能,但将每个新片段(每次暂停后捕获的片段)添加到同一视频文件中。目前,每次我按下“停止”然后再次“录制”时,它只会将一个新的视频文件保存到我的 iPhone 相册并开始捕捉到一个单独的/新文件。我需要能够一遍又一遍地按下“记录/停止”按钮...仅在记录处于事件状态时捕获视频和音频...然后在按下“完成”按钮时,拥有一个包含所有内容的 AV 文件段在一起。所有这些都需要在同一个捕获 session /预览 session 中发生。

我能想到的唯一尝试方法是按下“完成”按钮,获取每个单独的输出文件并将它们组合成一个文件......但我很确定基本上粘贴一个文件的处理时间一堆单独的剪辑在一起是 Not Acceptable 。另外,这似乎是一种非常困惑且不必要的方式,代码太多。

是否有任何简单的方法可以在单个 session 中暂停视频捕获并简单地恢复捕获到同一文件?或者有什么其他想法?

如果不是太麻烦的话,示例代码可以帮我解决很多问题……我仍在学习和自学,所以我不太愿意在解释中遵循行话和术语。谢谢

编辑:这是我开始学习 AVFoundation 的项目...所以这是我希望更改以实现上述功能的代码:http://developer.apple.com/library/ios/#samplecode/AVCam/Introduction/Intro.html

最佳答案

您可以使用 AVCaptureVideoDataOutput,而不是使用捕获 session 的电影文件输出,并在您的委托(delegate)中将示例传递给 AVAssetWriterInput 的实例。然后您可以将预览与录制分离。如果您的代表没有将缓冲区转发给 Assets 编写者,则该部分没有记录。

当您想开始将第二个(及后续) session 记录到同一个文件时,您需要调整时间戳,以便它们从您停止的时间点开始连续,并且您需要确保您对音频和视频进行相同的调整,使它们保持同步。有点繁琐,但肯定可行。

编辑:有一个 sample iPhone app这证明了这一点。

关于iphone - 在 iOS 中使用 AVFoundation 暂停和恢复同一文件的视频捕获,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14905892/

相关文章:

iphone - 使用 iOS-libarchive 库提取 .tar 文件时出现问题

ios - 关闭模态视图会导致应用程序崩溃

ios - 来自 UITableViewCell 内 plist 的 UIProgressView 值

ios - 在用户交互发生之前,PFQueryTableViewController 不应该加载任何对象?

ios - 如何在 Objective C 中订阅 youtube channel ?

iphone - 适用于 iPhone 的 Flex 应用程序

ios - 如果系统语言不同,如何获取英文地标位置数据?

ios - 在iOS中,是否可以在自定义模式下直接打开通知?

ios - iOS-按地区更改UIDatePicker的语言

objective-c - 新 NSObject 的最佳实践是什么 - 分配/初始化或更改现有?