2011-08-08 64 views
5

我正在構建一個應用程序,該應用程序將保存錄制視頻的60秒緩衝區。錄像需要長時間運行(24-48小時)。我似乎沒有任何記錄問題,但似乎在幾個小時後,我與CameraSurface失去了聯繫。無盡的視頻錄製

我將最大持續時間設置爲:MediaRecorder.setMaxDuration(10 * 1000),以便將錄音分解爲10秒的片段。

每次我重新開始錄音時,我都會以6個文件被重複使用的方式遞增輸出文件。目的是始終保持60秒的歷史。

如果我在1-2小時後停止錄製,則視頻播放正常。但是,如果我讓它運行3-4小時並停止錄製,那麼視頻只會顯示黑色輸出音頻。換句話說,就好像它失去了與相機或表面的連接,但繼續錄製音頻

任何人都可以解釋這種行爲嗎?

如果沒有別的,是否有更好的方式來記錄X視頻的第二部分?

僅供參考:我正在使用喚醒鎖,以便屏幕/ CPU保持打開狀態。

+0

我從來沒有嘗試過那樣的事情。但是,如果您可以在沒有問題的情況下獲得1-2小時快速髒修復看起來像完成()並重新開始您的錄製活動。但是這會讓您在錄製的視頻中留下空缺,這與您的活動啓動時間相差無幾。如果您有兩個設備,您可以從兩個設備和備用重啓時間錄製? – FoamyGuy

+0

嗯,有趣的想法。實際上,我相信我可能會在錄製操作中做不按順序的事情。如同,它可能*通常*能夠重新連接到相機,但是可能有1%的情況在它自己之前(當我嘗試再次開始記錄時,MediaRecorder沒有完成寫入/關閉輸出文件?) –

回答

2

我有點在這裏回答我自己的問題。我沒有很多信息,但希望這將提供足夠的信息來幫助處於類似困境的其他人。

首先,我從來沒有發佈我的代碼,因爲它的方式太長。我沒有發佈我的代碼片段,因爲我不知道問題來自何處。儘管我現在有這個工作,但我仍然不知道我的舊代碼有什麼問題。

我的建議:

我結束了我再殺代碼開始在開發API演示中發現的代碼記憶猶新:CameraPreview - 我在這個站點至少有一個線程發現這個引用。

之後,我能夠連續記錄小時而沒有問題。因此,如果您遇到類似的情況,我建議您使用CameraPreview代碼作爲起點。

+0

嗨,我正在嘗試做類似的事情,但長度較短(記錄視頻+音頻的最後15-30秒),但我很難使其工作。你能告訴我你的項目是最低的API級別嗎?另外,如果您可以提供更多關於此的信息,那將會非常棒,就像您正在使用其他外部庫,您正在使用的對象/方法一樣,您如何合併所得視頻(或者如果它是自動完成的) 。 謝謝 – klifa