2013-02-16 20 views
8

我試圖找出我怎麼能實現的功能反覆暫停,並在單個會話恢復視頻拍攝,但每次都有新段(每個之後所拍攝的片段暫停)添加到AVFoundation相同的視頻文件。目前,每次按「停止」,然後再次「錄製」,它只是將一個新的視頻文件保存到我的iphone相冊,並開始捕獲到一個單獨的/新的文件。我需要能夠反覆按下「錄製/停止」按鈕...只有當錄製文件處於活動狀態時纔會錄製視頻& ...然後當「完成」按鈕被按下時,將一個AV文件與所有細分在一起。所有這些都需要在同一個捕獲會話/預覽會話中進行。當按下「完成」按鈕,以每個單獨的輸出文件,並將它們一起合併成一個單一的文件......但是我很肯定的處理時間基本上粘貼暫停和恢復視頻採集與AVFoundation同一文件中的iOS

我能想到的嘗試這唯一的方法是一堆單獨的剪輯在一起將不被接受。另外,它看起來像這將是一個非常混亂的,不必要的方式來解決這個問題,用太多的代碼。

是否有任何簡單的方法可以在單個會話中暫停視頻捕獲,並簡單地恢復捕獲到同一個文件?還是其他想法?

如果不是太麻煩了,示例代碼會幫我出一噸......我還在學習&自學,所以我不是偉大的按照說明行話&術語。由於

編輯:這是我開始學習AVFoundation項目......所以這是我期待改變來實現上述功能的代碼:http://developer.apple.com/library/ios/#samplecode/AVCam/Introduction/Intro.html

+0

如果你最終找到了這個問題的答案,請關注它。 – 2013-02-26 20:07:31

+0

@Daniel你有解決方案嗎? – 2017-02-28 09:59:51

回答

10

而不是使用從捕獲會話輸出的電影文件,你可以使用AVCaptureVideoDataOutput和你的委託,通過樣品AVAssetWriterInput的一個實例。然後,您可以將預覽與錄製分離。如果您的代理不將緩衝區轉發給資產編寫器,那麼該部分就沒有記錄。

當您想要開始將第二個(及後續)會話錄製到同一個文件時,您需要調整時間戳,以便它們從您停止的位置開始連續,並且您需要確保您對音頻和視頻進行相同的調整,使其保持接收狀態。所以有點煩瑣,但肯定可行。

編輯:有,在http://www.gdcl.co.uk/2013/02/20/iPhone-Pause.html

+0

謝謝Geraint的迴應。我對Objective-C仍然陌生,並試圖在理解你所說的話方面摸索自己的方式。我當然明白你的答案背後的邏輯,看起來它可能會起作用。對我來說問題是搞清楚如何實際執行。我一直在挖掘示例/示例代碼,瞭解您建議的內容,但是難度很大。我要繼續狩獵,如果我可以得到這個工作,我會立即接受你的答案。與此同時,如果您有任何示例代碼或鏈接可以幫助我入門,那將會對我有所幫助! Thx – 2013-02-25 17:18:57

+0

我有一些代碼。我會把它整理成可發佈的樣本。如果在幾天內沒有看到任何東西,請給我打電話。 – 2013-02-26 17:34:03

+0

@Geraint戴維斯 - 我正在尋找完全一樣的東西。你可以在github上發佈你的代碼嗎?我也找不到任何寫作或例子。謝謝 – 2013-02-26 19:59:33

1

一般情況下,我使用startRunning和stopRunning如果我正在使用AVCaptureSession。我假設你會的。

請參閱AVCaptureSession的文檔。

+0

不停止運行停止整個會話並結束實時預覽攝像機在實際錄製時將捕獲的內容嗎? – 2013-02-16 07:15:57

+0

正確,因爲當您實例化AVCaptureVideoPreviewLayer時,您可以使用特定的會話進行此操作。你是否希望保持預覽層能夠開始捕捉/停止捕捉?類似於錄像機? – Spectravideo328 2013-02-16 11:54:46

+0

是的,我需要保持預覽層。用戶需要基本上能夠指向,捕獲幾秒鐘,停止....看別的東西,指向,捕獲,停止....看看別的東西,點,射擊,停止....等等,都在同一屆會議上。然後完成後,有一個視頻文件,只是在一個流動文件中播放每個捕獲。我也編輯了一下我的問題,希望能更清晰一點,讓它更有意義 – 2013-02-16 12:30:03

0

說明了這一點,您可以簡單地使用HBRecorder樣本的iPhone應用程序。 HBRecorder是一個視頻錄製工具,具有暫停/啓動功能&視頻片段之間的美麗動畫。

+0

請問您可以參考[如何提供個人開源庫?](// meta.stackexchange.com/q/229085)? – 2016-11-08 07:43:13