Camera2 API のマッピング

このページでは、Camera2 API がコア Extended View System(EVS) API をどのように置き換えるかについて説明します。

IEvsEnumerator API

IEvsEnumerator Camera2 NDK API Camera2 Java API

openCamera

EVS openCamera はオープンとストリーム構成を組み合わせていましたが、Camera2 では分離されています。

ACameraManager_openCamera の後、AImageReader を使用して ACameraDevice_createCaptureSession 、さらに ACameraDevice_createCaptureRequest

CameraManager.openCamera の後、CameraDevice.createCaptureSessionImageReader またはその他の Surface を使用)、さらに CameraDevice.createCaptureRequest

closeCamera ACameraDevice_close CameraDevice.close
getCameraList ACameraManager_getCameraIdList の後、詳細については ACameraManager_getCameraCharacteristics CameraManager.getCameraIdList の後、詳細については CameraManager.getCameraCharacteristics
getStreamList ACameraManager_getCameraCharacteristicsACAMERA_SCALER_AVAILABLE_STREAM_CONFIGURATIONS タグを読み取る CameraManager.getCameraCharacteristicsCameraCharacteristics.SCALER_STREAM_CONFIGURATION_MAP を取得する
registerStatusCallback ACameraManager_registerAvailabilityCallbackACameraManager_AvailabilityListener CameraManager.registerAvailabilityCallbackCameraManager.AvailabilityCallback
isHardware なし なし

getDisplayIdList

非推奨。

DisplayManager.getDisplaysを使用してください。

なし なし

getDisplayState

非推奨。

Display.getState を使用してください。

なし なし

getDisplayStateById

非推奨。

DisplayManager.getDisplay の後、Display.getState を使用してください。

なし なし

openDisplay

非推奨。

特定の DisplayWindowManager.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_new または AImageReader_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でベンダータグを使用します。
CaptureRequest または CameraCharacteristics でベンダータグを使用します。

setExtendedInfo

ベンダータグを使用してカスタムデータを実装します。

ACaptureRequest でベンダータグを使用します。 CaptureRequest.Builder でベンダータグを使用します。

setPrimaryClient

非推奨。

プライマリ クライアントのステータスは、Camera2 共有モードでは優先度に基づいています。

なし なし

unsetPrimaryClient

非推奨。

なし なし

forcePrimaryClient

非推奨。

なし なし

IEvsCameraStream

IEvsCameraStream Camera2 NDK API Camera2 Java API

deliverFrame

新しいフレームを受け取るためのコールバック。ImageReader.acquireLatestImage または ImageReader.acquireNextImage で画像を取得します。

onImageAvailableAImageReader_ImageListener

ImageReader.OnImageAvailableListeneronImageAvailable

notify

キャプチャ イベント(開始、進行状況、完了、失敗)のコールバックと、 CameraDevice.StateCallback デバイス イベント(エラー、切断)の。

ACameraCaptureSession_captureCallbacksV2

CameraCaptureSession.CaptureCallback

IEvsDisplay API

IEvsDisplay インターフェースのすべての API は非推奨です。 OEM は標準の Android クラスを使用する必要があります。