使用零延遲快門減少延遲時間

CameraX 1.2 起,零延遲快門已可做為拍攝模式。啟用零延遲快門功能,相較於預設拍攝模式,大幅縮短延遲時間,因此能夠準確捕捉所有精彩時刻。

啟用零延遲快門

如要啟用零延遲快門,請將 CAPTURE_MODE_ZERO_SHOT_LAG 傳遞至 ImageCapture.Builder.setCaptureMode()。若無法成功傳遞,setCaptureMode() 會改回使用 CAPTURE_MODE_MINIMIZE_LATENCY

如要進一步瞭解拍攝模式,請參閱圖像拍攝指南

運作方式

零延遲快門會使用環形緩衝區,儲存最近三個拍攝畫面。當使用者按下拍攝按鈕時,CameraX 會叫用 takePicture(),而環形緩衝區則會擷取時間戳記最接近按下按鈕時間的拍攝畫面。接著,CameraX 會重新處理拍攝工作階段,從該畫面產生圖片,並以 JPEG 格式儲存到磁碟。

必要條件

啟用零延遲快門前,請先使用 isZslSupported() 判斷裝置是否符合以下需求:

如果裝置不符合最低需求,CameraX 會改回採用 CAPTURE_MODE_MINIMIZE_LATENCY

零延遲快門僅適用於圖片拍攝。您無法針對錄影相機擴充功能,啟用這類快門。

最後,由於使用閃光燈會導致延遲時間拉長,因此如果閃光燈已開啟或處於自動模式,零快門延遲就無法運作。如要進一步瞭解如何設定閃光燈模式,請參閱 setFlashMode()