2013-04-23 87 views
0

我想將視頻流式傳輸到服務器,並同時將其記錄在設備上。任何方式來獲得預覽幀,而錄製視頻?

如果我不記錄視頻,我可以使用Camera.onPreviewCallback,其中我得到預覽數據作爲字節數組,並將數據發送到服務器。

當我開始錄製時(我正在使用MediaRecorder),onPreviewCallback不再被調用。

我還能如何從相機獲取相框?

回答

1

在攝像頭API當前不支持錄製視頻的同時獲取預覽回調。

在最新的Android版本上,您可以使用SurfaceTexture作爲預覽輸出,並從GPU讀取紋理以發送到服務器,而不是使用預覽回調。

+0

謝謝。那麼我如何從GPU中讀取紋理?我已經建立了一個TextureView而不是SurfaceView,但我該如何繼續? – 2013-04-25 07:15:18

+0

你不能直接用TextureView來做,因爲它在內部管理自己的OpenGL上下文。 您需要創建自己的OpenGL上下文,使用您選擇的紋理ID創建SurfaceTexture,將紋理渲染到幀緩衝區,然後使用glReadPixels讀取它。所以這不是微不足道的。 – 2013-04-26 18:19:48