在iOS中将video文件与原始audio合并

我需要合并两个video文件以及相应的audio。 我尝试使用: http : //www.raywenderlich.com/13418/how-to-play-record-edit-videos-in-ios

video合并,但audio丢失。 这就像一个静音的video。 我需要的audio也被合并。 我也google了这个,找不到有用的东西。 有人可以帮我在这个请…

实时编辑audio就像现场编辑video一样。 回到每个电影,并获取音轨,并将其粘贴到你的可变组成。

在这个例子中,我从电影中抓取video的前五秒钟和最后五秒钟的video,并将它们一个接一个地放在一个新的video中:

NSString* type = AVMediaTypeVideo; NSArray* arr = [oldAsset tracksWithMediaType:type]; AVAssetTrack* track = [arr lastObject]; CMTime duration = track.timeRange.duration; AVMutableComposition* comp = [AVMutableComposition composition]; AVMutableCompositionTrack* comptrack = [comp addMutableTrackWithMediaType:type preferredTrackID:kCMPersistentTrackID_Invalid]; [comptrack insertTimeRange:CMTimeRangeMake(CMTimeMakeWithSeconds(0,600), CMTimeMakeWithSeconds(5,600)) ofTrack:track atTime:CMTimeMakeWithSeconds(0,600) error:nil]; [comptrack insertTimeRange:CMTimeRangeMake(CMTimeSubtract(duration, CMTimeMakeWithSeconds(5,600)), CMTimeMakeWithSeconds(5,600)) ofTrack:track atTime:CMTimeMakeWithSeconds(5,600) error:nil]; 

但由此产生的video将保持沉默。 所以我也回去拿取相应的audio:

 type = AVMediaTypeAudio; arr = [oldAsset tracksWithMediaType:type]; track = [arr lastObject]; comptrack = [comp addMutableTrackWithMediaType:type preferredTrackID:kCMPersistentTrackID_Invalid]; [comptrack insertTimeRange:CMTimeRangeMake(CMTimeMakeWithSeconds(0,600), CMTimeMakeWithSeconds(5,600)) ofTrack:track atTime:CMTimeMakeWithSeconds(0,600) error:nil]; [comptrack insertTimeRange:CMTimeRangeMake(CMTimeSubtract(duration, CMTimeMakeWithSeconds(5,600)), CMTimeMakeWithSeconds(5,600)) ofTrack:track atTime:CMTimeMakeWithSeconds(5,600) error:nil];