Camera2 API 對應

本頁摘要說明 Camera2 API 如何取代核心 擴充檢視系統 (EVS) API。

IEvsEnumerator API

IEvsEnumerator Camera2 NDK API Camera2 Java API

openCamera

EVS openCamera 合併了開啟和串流設定,Camera2 則將兩者分開。

ACameraManager_openCamera 然後 ACameraDevice_createCaptureSession 使用 AImageReader 然後 ACameraDevice_createCaptureRequest

CameraManager.openCamera,然後 CameraDevice.createCaptureSession (使用 ImageReader 或其他 Surface),然後 CameraDevice.createCaptureRequest

closeCamera ACameraDevice_close CameraDevice.close
getCameraList ACameraManager_getCameraIdList,然後點選「瞭解詳情」ACameraManager_getCameraCharacteristics CameraManager.getCameraIdList,然後點選「瞭解詳情」CameraManager.getCameraCharacteristics
getStreamList ACameraManager_getCameraCharacteristics,讀取 ACAMERA_SCALER_AVAILABLE_STREAM_CONFIGURATIONS 標記 CameraManager.getCameraCharacteristics、取得 CameraCharacteristics.SCALER_STREAM_CONFIGURATION_MAP
registerStatusCallback ACameraManager_registerAvailabilityCallback 搭配 ACameraManager_AvailabilityListener CameraManager.registerAvailabilityCallback with CameraManager.AvailabilityCallback
isHardware 不適用 不適用

getDisplayIdList

已淘汰。

請改用 DisplayManager.getDisplays

不適用 不適用

getDisplayState

已淘汰。

請改用 Display.getState

不適用 不適用

getDisplayStateById

已淘汰。

請改用 DisplayManager.getDisplay, 然後使用 Display.getState

不適用 不適用

openDisplay

已淘汰。

請在特定 Display 上使用 WindowManager.addView

不適用 不適用

closeDisplay

已淘汰。

請改用 WindowManager.removeView

不適用 不適用

openUltrasonicsArray

已淘汰。

請改用 VHAL 屬性。

不適用 不適用

getUltrasonicsArrayList

已淘汰。

請改用 VHAL 屬性。

不適用 不適用

closeUltrasonicsArray

已淘汰。

請改用 VHAL 屬性。

不適用 不適用

IEvsCamera

IEvsCamera Camera2 NDK API Camera2 Java API
getCameraInfo ACameraManager_getCameraCharacteristics CameraManager.getCameraCharacteristics

getPhysicalCameraInfo

如果是邏輯攝影機,請檢查 getPhysicalCameraIds

ACameraManager_getCameraCharacteristics CameraManager.getCameraCharacteristics

setMaxFramesInFlight

無法在 Camera2 中動態變更,只能在建立 ImageReader 時設定

AImageReader_newAImageReader_newWithUsage 中設定 設定於 ImageReader.newInstance(width, height, format, maxImages)
startVideoStream ACameraCaptureSession_setRepeatingRequestV2 CameraCaptureSession.setSingleRepeatingRequest
stopVideoStream ACameraCaptureSession_stopRepeating CameraCaptureSession.stopRepeating

pauseVideoStream

沒有直接對應的功能。使用 stopRepeatingRequest

ACameraCaptureSession_stopRepeating CameraCaptureSession.stopRepeating

resumeVideoStream

沒有直接對應項目,請改用 setSingleRepeatingRequest

ACameraCaptureSession_setRepeatingRequestV2 CameraCaptureSession.setSingleRepeatingRequest

doneWithFrame

將緩衝區中的版本放回佇列

AImage_delete Image.close

importExternalBuffers

緩衝區管理作業是由 Surface 處理。詳情請參閱 CameraCaptureSession.prepare

不適用 不適用
getParameterList ACameraMetadata_getAllTags CameraCharacteristics.getKeys
getIntParameter ACaptureRequest_getConstEntry CaptureRequest.get(key)

getIntParameterRange

範圍是 CameraCharacteristics 的一部分

ACameraMetadata_getConstEntry CameraCharacteristics.get(key)
(CONTROL_AE_COMPENSATION_RANGE) 等等
setIntParameter ACaptureRequest_setEntry_i32_u8 和類似項目 CaptureRequest.Builder.set(key, value)

getExtendedInfo

使用供應商代碼導入自訂資料。

ACaptureRequest
ACameraMetadata 上使用供應商標記
CaptureRequestCameraCharacteristics 上使用供應商代碼

setExtendedInfo

使用供應商代碼導入自訂資料。

ACaptureRequest 上使用供應商代碼 CaptureRequest.Builder 上使用供應商代碼

setPrimaryClient

已淘汰。

在 Camera2 共用模式中,主要用戶端狀態會根據優先順序決定。

不適用 不適用

unsetPrimaryClient

已淘汰。

不適用 不適用

forcePrimaryClient

已淘汰。

不適用 不適用

IEvsCameraStream

IEvsCameraStream Camera2 NDK API Camera2 Java API

deliverFrame

接收新影格的回呼。使用 ImageReader.acquireLatestImageImageReader.acquireNextImage 取得圖片。

onImageAvailable 列,共 AImageReader_ImageListener

onImageAvailable 列 (共 ImageReader.OnImageAvailableListener 列)

notify

擷取事件 (開始、進度、完成、失敗) 和CameraDevice.StateCallback裝置事件 (錯誤、中斷連線) 的回呼。

ACameraCaptureSession_captureCallbacksV2

CameraCaptureSession.CaptureCallback

IEvsDisplay API

IEvsDisplay 介面中的所有 API 都已淘汰。原始設備製造商應使用標準 Android 類別: