2014-10-29 92 views
0

我正在使用AVAssetWriter創建MPEG4文件。iOS/iPhone - AVAssetWriter:如何使用endSessionAtSourceTime:

我用[assetWriter startSessionAtSourceTime:kCMTimeZero]開始視頻會話;

現在的視頻文件寫入罰款,如果我完成會話與此

[assetWriter finishWritingWithCompletionHandler:^{ 


    }]; 

,但如果我叫[assetWriter endSessionAtSourceTime:結束時間]。之前[assetWriter finishWritingWithCompletionHandler然後它不寫入文件。

這是我怎麼稱呼endSessionAtSourceTime:

endTime = CMTimeMakeWithSeconds(secondsRecorded, 30); 
    [assetWriter endSessionAtSourceTime:endTime]; 

任何想法我做錯了嗎?

回答

0

我認爲問題在於endSessionAtSourceTime的行爲:並沒有達到你的期望值。

endSessionAtSourceTime:與調用finishRecording()方法幾乎相同,它在調用時會停止錄製。不同之處在於,在錄製之後,endSessionAtSourceTime:將編輯出(移除)在指定sourceTime之後接收到的任何幀。

相反,如果你預期的結果是記錄30秒夾,你需要設置一個NSTimer或類似的東西,然後調用endSessionAtSourceTime:或finishRecording()時,30秒鐘之經過

相關問題