Iphone AVAssetWriter多个会话和状态属性

Iphone AVAssetWriter多个会话和状态属性,iphone,ios,avfoundation,avassetwriter,Iphone,Ios,Avfoundation,Avassetwriter,我正在尝试使用AVAssetWriter创建多个串行写入会话。一旦我成功完成了一个(调用finishWriting后),状态设置为2(AVAssetWriterStatusCompleted) 尝试创建另一个会话时,我调用startWriting,但出现错误: [AVAssetWriter startWriting] cannot call method when status is 2 似乎我无法创建写作会话,除非我配置了一些东西。我必须重新创建AVAssetWriter吗?我肯定错过了什么

我正在尝试使用AVAssetWriter创建多个串行写入会话。一旦我成功完成了一个(调用finishWriting后),状态设置为2(AVAssetWriterStatusCompleted)

尝试创建另一个会话时,我调用startWriting,但出现错误:

[AVAssetWriter startWriting] cannot call method when status is 2
似乎我无法创建写作会话,除非我配置了一些东西。我必须重新创建AVAssetWriter吗?我肯定错过了什么,医生也帮不了我


谢谢。

编写器完成后,它将不再可用。您必须创建一个新的。从文档中:

您只能使用AVAssetWriter的给定实例一次写入单个文件。 如果要多次写入文件,则必须使用的新实例 每次都是一个作家

我有一个应用程序,我使用两个AvassetWriter。我创建了两个编写器,一次只有一个处于活动状态。当达到某个时间增量时,我将活动写入程序推到GCD队列上以完成和重新创建,并将活动写入程序指针设置为指向另一个写入程序

if(time > delta)
  dispatch( ^{ finish writer, create new one })
  active_writer = next writer
这在使用捕获队列时效果很好。您可以设置一个开关来执行给定写入程序状态的操作