2013-07-22 57 views
0

我正在使用AVMutableVideoComposition添加視頻和音頻。多次向AVMutableVideoComposition添加聲音

我有多個視頻和音頻文件,我縫在一起,基本上工作正常。

我使用此代碼添加音頻:

AVURLAsset *audioAsset = [[AVURLAsset alloc] initWithURL:[NSURL fileURLWithPath:path] options:nil]; 

      [compositionAudioTrack insertTimeRange:titleRange 
           ofTrack:[audioAsset tracksWithMediaType:AVMediaTypeAudio][0] 
           atTime:partZeroTime 
           error:&err]; 

路徑是正確的(使用NSLog的檢查),並partZeroTime是每個音軌的插入點(音頻在開始玩只有視頻)。音頻文件總是相同的(某些m4a文件)。

這隻適用於第一個音頻,但。每個後續音頻都不播放。我沒有收到添加音頻資產的錯誤。

我也嘗試爲音樂創建單獨的音軌,結果相同。

任何想法?

[編輯]

我可能沒有什麼,我想做的事情完全清楚,所以這裏的更多信息:我有幾個片段,我與AVMutableComposition縫合在一起的視頻組成。 它包含一個介紹(我嘗試添加音樂的位置),其次是1或2個剪輯,另一個介紹(帶音樂),後面是更多視頻。 我爲音樂添加了單獨的曲目,所以它看起來像 - 音樂 - 沉默 - 音樂 - 沉默。

我試着用insertEmptyTimerange加上沉默,但是這基本上混淆了一切。然後我用insertTimeRange:tr ofTrack:nil ......這使我有同樣的結果之前:第一音樂片段播放,但每次下夾子不會...

我拉我的頭髮在這...

回答

0

好吧,這是真的愚蠢...... :)

問題是,我定義的時間範圍錯了。我沒有使用CMTimeRangeMake(kCMTimeZero, introDuration),而是將其定義爲CMTimeRangeMake(introStart, introDuration),其中introStart是音樂的開始時間...