将一个音频文件与两个视频文件合并到iphone sdk中
我想知道如何将给定的音频文件与两个视频文件结合起来。当涉及到组合音频时,我被卡住了,但视频很好,以下是我到目前为止所做的将一个音频文件与两个视频文件合并到iphone sdk中,iphone,xcode,audio,video,avmutablecomposition,Iphone,Xcode,Audio,Video,Avmutablecomposition,我想知道如何将给定的音频文件与两个视频文件结合起来。当涉及到组合音频时,我被卡住了,但视频很好,以下是我到目前为止所做的 - (IBAction)MergeAndSave:(id)sender{ if(firstAsset !=nil && secondAsset!=nil){ [ActivityView startAnimating]; //Create AVMutableComposition Object.This object wi
- (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];
}
正如您所见,我的音频代码根本不起作用请将audioAsset的类型更改为AVURLAsset,而不是AVAsset ... 希望它能起作用
如果不试试这个 我看过Raywenderlich的一个教程,mergétwo videôand你可以放一个音频文件。。。你看到了吗?这可能会对你有所帮助。@Larme是的,我见过:)但是我想使用一个专用的音频文件,而不是ipod库中的音频文件。我想区别只是你加载的音乐:如何获取。是的,但我尝试了不同的代码,但还没有找到解决方案,所以我求助于你们,希望你们能帮我解决这个问题AVMutableCompositionTrack*AudioTrack=[mixComposition addMutableTrackWithMediaType:AVMediaTypeAudio preferredTrackID:kCMPersistentTrackID\u无效];AVURLAsset*mixAsset=[AVURLAsset URLAssetWithURL:[NSURL fileURLWithPath:[[NSBundle mainBundle]pathForResource:@“wav”类型的“文件”]]选项:无];[AudioTrack insertTimeRange:CMTimeRangeMake(kCMTimeZero,CMTimeAdd(firstAsset.duration,secondAsset.duration))跟踪:[[mixAsset tracksWithMediaType:AVMediaTypeAudio]对象索引:0]时间:audioAsset.duration错误:无];更改类型与使代码正常工作无关,解决方案是URLAssetWithURL和tracksWithMediaType:AVMediaTypeAudio