2013-10-25 41 views
5

我目前正在製作Android相機應用程序的Final Year項目。Android相機:PictureCallback,ShutterCallback和PreviewCallback之間的差異

我對照相機接口感到困惑:PictureCallback,ShutterCallbackPreviewCallback

我知道,當我使用Camera.takePicture()時,PictureCallback將被調用。但是ShutterCallbackPreviewCallback呢?我什麼時候使用它們?

我有通過互聯網搜索,但我仍然沒有清楚如何使用它們的想法。任何人都可以提供這3個回調的明確解釋嗎?

回答

1

我認爲谷歌的文檔提供足夠的解釋你的問題:

Camera.ShutterCallback 
public abstract void onShutter() 

稱爲儘可能接近到如果照片是從 傳感器捕捉到的瞬間。 這是一個很好的機會來播放快門聲音或給予其他相機操作反饋。這可能會在 照片被觸發後的某段時間,但在實際數據可用前有一段時間是 。

Camera.PreviewCallback 
public abstract void onPreviewFrame (byte[] data, Camera camera) 

調用作爲預覽幀被顯示。此回調調用 事件線程open(int)從中調用。

如果使用YV12格式,請參閱 setPreviewFormat(int)中的等式,以獲取 預覽回調緩衝區中像素數據的排列方式。

拍攝照片時可以使用ShutterCallback,使用PreviewCallBack從相機捕獲幀。請記住PreviewCallBack存在一些問題。見link

引用:
http://developer.android.com/reference/android/hardware/Camera.ShutterCallback.html
http://developer.android.com/reference/android/hardware/Camera.PreviewCallback.html

7

ShutterCallback用於提供反饋到相機是否工作,例如播放聲音的用戶,動畫的快門按鈕等

PreviewCallback攝像機傳感器捕獲當前相機預覽幀的字節數組。如果您想要改變某些類型的框架,比如在檢測到的人臉上顯示矩形,請使用此選項。

PictureCallback爲您提供了表示捕獲圖片的字節數組。圖片格式(jpg,raw或postview)取決於您通過回撥的位置takePicture()

有關進一步參考,您應該閱讀documentation for Camera及其相關接口和類。

相關問題