我目前正在开发一款iPhone应用程序,它可以获取视频的短片段,并将它们组合在一个AVMutableComposition中,然后导出到用户的相机胶卷。我正在使用的示例代码提示用户从他们的相机胶卷中选择要合并的视频,并且可以完美地工作。我遇到的问题与以下事实有关:在生产应用程序中,我传递的视频是以数组或其URL的形式编译的。我能够使用以下代码成功填充AVURLAsset:
newUrl = [NSURL fileURLWithPath:tempURLholder];
Asset0 = [[AVURLAsset alloc] initWithURL:newUrl options:nil];
但是,当我尝试将AVURLAsset传递到AVMutableCompositionTrack时,我使用以下代码获取null值:
track0 = [mainComposition addMutableTrackWithMediaType:AVMediaTypeVideo preferredTrackID:kCMPersistentTrackID_Invalid];
[track0 insertTimeRange:CMTimeRangeMake(kCMTimeZero, Asset0.duration) ofTrack:[[Asset0 tracksWithMediaType:AVMediaTypeVideo] objectAtIndex:0] atTime:kCMTimeZero error:nil];
当我尝试传递原始资产时,我得到一个'不兼容的指针,发送AVURLAsset到AVAssetTrack'错误,使用以下代码:
track0 = [mainComposition addMutableTrackWithMediaType:AVMediaTypeVideo preferredTrackID:kCMPersistentTrackID_Invalid];
[track0 insertTimeRange:CMTimeRangeMake(kCMTimeZero, Asset0.duration) ofTrack:Asset0 atTime:kCMTimeZero error:nil];
我知道我可能遗漏了一些非常简单的事情,如果有人有这方面的经验,或者愿意传递一些技巧来获取我的资源?非常感谢提前。