2012-03-08 121 views
1

我想對來自相機的視頻進行一些更改。 所以我使用擴展類SurfaceView的類來實現SurfaceHolder.Callback。如何實時更改視頻流?

現在,我仍然沒有找到任何方法來做出這種改變。 我該怎麼做?

回答

1

這很複雜,很難做到實時。基本上你需要獲取相機數據,修改它,然後將其寫入SurfaceView。你真的有半秒的時間去做,否則滯後是無法忍受的。

將相機視圖上的東西疊加在一起的應用(想想ZXing條形碼掃描儀)通常是通過提供與相機綁定的視圖,然後每秒多次抓取相機圖像數據的第二個副本併疊加附加數據在第一個視圖之上。

2

您可以嘗試SurfaceTexture而不是SurfaceView,並使用方法onFrameAvailable(...)實現接口SurfaceTexture.OnFrameAvailableListener。當視頻幀到達時,Surface會回調這個方法,你可以得到當前的幀數據。

請參考Android Camera Camera類的PanoramaActivity類採樣代碼的源代碼。