2009-08-09 45 views
10

我正在構建一個攝像頭應用程序,其中的視頻不斷被捕獲並保存到SD卡。視頻很短(幾分鐘),並且它們的長度通過setMaxDuration()預設。Android:如何在沒有有效表面的情況下初始化MediaRecorder進行視頻預覽?

整個過程正常,主要活動在前臺。但是,當我轉到其他活動(例如設置)時,視頻錄製將在後臺運行,直到達到最大持續時間。該文件已保存,但無法啓動新序列 ,因爲prepare()失敗,顯然是因爲setPreviewDisplay()不喜歡沒有合適的曲面來附加。我試圖使用一個虛擬Surface,一個虛擬SurfaceHolder,lockCanvas()和其他各種技巧,但沒有任何工作。有沒有一種方法來初始化沒有有效表面的MediaRecorder?

回答

-1

你正在實現Surface回調?

爲什麼您需要在沒有有效表面的情況下初始化MediaRecorder?

即使離開主要活動,你是否應該記錄?或者在其他活動產生之前停止記錄?

+0

是的,我已經實現了Surface回調。有一個有效的預覽表面時,一切正常。但是,即使離開主要活動,我也想記錄。無論預覽表面是否可見,該應用程序都應能夠開始視頻錄製。但是,我嘗試的所有內容都表明,Android尚不能實現這一點。任何人都可以證明我錯了嗎? – Robert 2010-07-13 12:34:18

0

我認爲IP Webcam應用程序可以做到這一點,但我不知道如何。也許它只適用於> = 2.3。我不確定我看到它運行的是什麼版本。我問了一個問題,看看它是如何工作的。

相關問題