私は現在、ビデオの短いスニペットを取り、それらを AVMutableComposition にまとめてコンパイルし、ユーザーのカメラロールにエクスポートする iPhone アプリに取り組んでいます。私が使用しているサンプル コードは、カメラ ロールからマージするビデオを選択するようにユーザーに促し、問題なく動作します。私が直面している問題は、プロダクション アプリで、コンパイルするビデオを配列またはその 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];
私はおそらくここで本当に単純なものを見逃していることを知っています.誰かがこれを経験したことがありますか、それとも私のリソースを表示するためのヒントを喜んで伝えてくれますか? よろしくお願いします。