4

我目前正在开发一个 iPhone 应用程序,该应用程序获取视频片段并将它们编译到 AVMutableComposition 中,然后将其导出到用户的相机胶卷。我正在使用的示例代码提示用户从他们的相机胶卷中选择要合并的视频,并且可以完美运行。我遇到的问题与在生产应用程序中我传递要以数组或其 URL 的形式编译的视频有关。我能够使用以下代码成功填充 AVURLAsset:

newUrl = [NSURL fileURLWithPath:tempURLholder];
Asset0 = [[AVURLAsset alloc] initWithURL:newUrl options:nil];

但是,当我尝试将该 AVURLAsset 传递到 AVMutableCompositionTrack 时,我使用以下代码得到一个空值:

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];

我知道我可能在这里遗漏了一些非常简单的东西有没有人有这方面的经验或者愿意传递一些技巧来让我的资源展示?提前非常感谢。

4

0 回答 0