我AVFoundation只使用音频-即不使用视频-并试图将几个AVCompositions接一个接一个地结尾AVComposition。
示例案例:仅两个AVComposition秒。通过创建一个AVPlayer,它们每个都可以正常运行,因此:
_player = [AVPlayer playerWithPlayerItem:[AVPlayerItem playerItemWithAsset:comp]]
Run Code Online (Sandbox Code Playgroud)
comp的实例在哪里AVMutableComposition?(顺便说一句,值得注意的是_player必须是一个ivar,否则ARC在播放之前会过早释放它-花了一段时间才能找到它。)
很好-执行
[_player play]
Run Code Online (Sandbox Code Playgroud)
导致comp成功播放。
但是,这失败了:
(self.segments是的NSMutableArray自定义子类的包含元素AVMutableComposition)
AVMutableComposition *comp = [AVMutableComposition composition];
NSError *err;
for (AVMutableComposition* c in self.segments) {
[comp insertTimeRange:CMTimeRangeMake(kCMTimeZero, segment.duration)
ofAsset:segment atTime:comp.duration error:&err];
DLog(@"Error was %@", segment, err);
}
Run Code Online (Sandbox Code Playgroud)
对于self.segments执行此代码时的每个元素,调用该insertTimeRange::::方法时都会收到此错误:
Error was Error Domain=AVFoundationErrorDomain Code=-11800 "The operation could not
be completed" UserInfo=0x14e8e7f0 {NSLocalizedDescription=The operation could …Run Code Online (Sandbox Code Playgroud)