0

特定のオーディオ ファイルを 2 つのビデオ ファイルと結合する方法を考えています。オーディオの結合に関しては行き詰まっていますが、ビデオは問題ありません。これまでに行ったことは次のとおりです

- (IBAction)MergeAndSave:(id)sender{
    if(firstAsset !=nil && secondAsset!=nil){
        [ActivityView startAnimating];
        //Create AVMutableComposition Object.This object will hold our multiple AVMutableCompositionTrack.
        AVMutableComposition* mixComposition = [[AVMutableComposition alloc] init];

        //VIDEO TRACK
        AVMutableCompositionTrack *firstTrack = [mixComposition addMutableTrackWithMediaType:AVMediaTypeVideo preferredTrackID:kCMPersistentTrackID_Invalid];
        [firstTrack insertTimeRange:CMTimeRangeMake(kCMTimeZero, firstAsset.duration) ofTrack:[[firstAsset tracksWithMediaType:AVMediaTypeVideo] objectAtIndex:0] atTime:kCMTimeZero error:nil];

        AVMutableCompositionTrack *secondTrack = [mixComposition addMutableTrackWithMediaType:AVMediaTypeVideo preferredTrackID:kCMPersistentTrackID_Invalid];
        [secondTrack insertTimeRange:CMTimeRangeMake(kCMTimeZero, secondAsset.duration) ofTrack:[[secondAsset tracksWithMediaType:AVMediaTypeVideo] objectAtIndex:0] atTime:firstAsset.duration error:nil];

        //AUDIO TRACK
        if(audioAsset==nil){

            NSURL* musicFile = [NSURL fileURLWithPath:[[NSBundle mainBundle]
                                                       pathForResource:@"click"
                                                       ofType:@"caf"]];

            AVMutableCompositionTrack *click = [[AVMediaTypeAudio] initWithContentsOfURL:musicFile error:nil];
            [click insertTimeRange:CMTimeRangeMake(kCMTimeZero, CMTimeAdd(firstAsset.duration, secondAsset.duration))
                                ofTrack:[[audioAsset tracksWithMediaType:AVMediaTypeAudio] objectAtIndex:0] atTime:kCMTimeZero error:nil];


                   }

ご覧のとおり、オーディオ用の私のコードはまったく機能しません

4

1 に答える 1

1

audioAsset の Type を AVAsset ではなく AVURLAsset に変更します ... うまくいくことを願っています

これを試してみない場合... XcodeでiPhone用にオーディオファイルを重ねて結合するにはどうすればよいですか?

于 2013-03-20T09:07:21.473 に答える