2014-02-13 32 views
1

我正在研究一個視頻編輯應用程序,我必須將音頻文件添加到視頻,如果我在視頻的開始處添加音頻,那麼該工作正常。如何在iOS sdk中的某段時間後將音頻添加到視頻文件?

AVURLAsset* audioAsset = [[AVURLAsset alloc]initWithURL:audioURL options:nil]; 
    AVURLAsset* videoAsset = [[AVURLAsset alloc]initWithURL:videoURL options:nil]; 

    AVMutableComposition* mixComposition = [AVMutableComposition composition]; 

    AVMutableCompositionTrack *compositionCommentaryTrack = [mixComposition addMutableTrackWithMediaType:AVMediaTypeAudio preferredTrackID:kCMPersistentTrackID_Invalid]; 


    [compositionCommentaryTrack insertTimeRange:CMTimeRangeMake(kCMTimeZero, videoAsset.duration) 
    ofTrack:[[audioAsset tracksWithMediaType:AVMediaTypeAudio] objectAtIndex:0] atTime:kCMTimeZero error:nil]; 

    AVMutableCompositionTrack *compositionVideoTrack = [mixComposition addMutableTrackWithMediaType:AVMediaTypeVideo preferredTrackID:kCMPersistentTrackID_Invalid]; 


    [compositionVideoTrack insertTimeRange:CMTimeRangeMake(kCMTimeZero, videoAsset.duration) 
    ofTrack:[[videoAsset tracksWithMediaType:AVMediaTypeVideo] objectAtIndex:0] atTime:kCMTimeZero error:nil]; 

    AVAssetExportSession* _assetExport = [[AVAssetExportSession alloc] initWithAsset:mixComposition 
                      presetName:AVAssetExportPresetPassthrough]; 

但我想的是,用戶可以在任何時間間隔,即添加音頻他將離開視頻空白的前五秒,五秒鐘之後將使用音頻,只是時間框架。

對於我試圖用這個與NEWTIME更換kCMTimeZero但聲音不加入:

CCMTime Newtime=CMTimeMakeWithSeconds(3000.0, 600); 

[compositionCommentaryTrack insertTimeRange:CMTimeRangeMake(kCMTimeZero, videoAsset.duration) 
    ofTrack:[[audioAsset tracksWithMediaType:AVMediaTypeAudio] objectAtIndex:0] atTime:Newtime error:nil]; 

這有什麼不對的實施或有任何其他方式做到這一點?請建議。

回答

0

我已經得到了解決:

我換成CMTime Newtime=CMTimeMakeWithSeconds(3000.0, 600);CMTime Newtime=CMTimeMake(3000, 600);這和它的工作的罰款。

相關問題