自 2025 年 3 月 27 日起,我們建議您使用 android-latest-release
而非 aosp-main
建構及貢獻 AOSP。詳情請參閱「Android 開放原始碼計畫變更」。
支援多相機拍攝
透過集合功能整理內容
你可以依據偏好儲存及分類內容。
在 Exterior View System (EVS) 1.1 中,系統支援由多個實體相機裝置組成的邏輯相機裝置。如要使用這個虛擬裝置,裝置實作必須支援 同步處理架構。
列舉、開啟及關閉邏輯相機裝置
應用程式可以使用相同的 IEvsEnumerator
方法,使用可用的邏輯相機裝置。傳回的 EvsCamera
物件 (代表邏輯攝影機裝置) 在中繼資料中必須包含下列項目:
ANDROID_REQUEST_AVAILABLE_CAPABILITIES_LOGICAL_MULTI_CAMERA
如果傳回的 EvsCamera 物件代表邏輯攝影機,其攝影機中繼資料必須在 ANDROID_REQUEST_AVAILABLE_CAPABILITIES
欄位中包含這個功能鍵。
ANDROID_LOGICAL_MULTI_CAMERA_PHYSICAL_IDS
欄位會列出實體相機裝置 ID。
ANDROID_LOGICAL_MULTI_CAMERA_SENSOR_SYNC_TYPE
欄位可使用下列列舉值:
ANDROID_LOGICAL_MULTI_CAMERA_SENSOR_SYNC_TYPE_APPROXIMATE
適用於主-主模式中的感應器,沒有硬體快門/曝光同步。
ANDROID_LOGICAL_MULTI_CAMERA_SENSOR_SYNC_TYPE_CALIBRATED
是用於主從模式的感應器,硬體快門/曝光同步。同步的 GMSL2 攝影機必須使用這個值。
應用程式可透過新 getPhysicalCameraInfo(stringcameraId)
方法中的 IEvsCamera
,擷取實體攝影機裝置的描述元。
/**
* Returns the description of the physical camera device that backs this
* logical camera.
*
* If a requested device does not either exist or back this logical device,
* this method returns a null camera descriptor. And, if this is called on
* a physical camera device, this method is the same as getCameraInfo_1_1()
* method if a given device ID is matched. Otherwise, this returns a
* null camera descriptor.
*
* @param deviceId Physical camera device identifier string.
* @return info The description of a member physical camera device.
* This must be the same value as reported by
* EvsEnumerator::getCameraList_1_1().
*/
getPhysicalCameraInfo(string deviceId) generates (CameraDesc info);
所有邏輯攝影機都必須以靜態方式定義,並透過設定管理員實作項目進行列舉。由於 EVS 允許群組中的每部裝置設定不同,因此 EVS 會提供成員裝置清單,並指出是否同步處理圖像擷取作業。
<!-- camera group 0 -->
<group id='group0' synchronized='CALIBRATED'>
<caps>
<!-- list of supported controls supported by all physical devices -->
<supported_controls>
<control name='BRIGHTNESS' min='0' max='255'/>
<control name='CONTRAST' min='0' max='255'/>
</supported_controls>
<!-- list of stream configuration supported by all physical devices -->
<stream id='0' width='640' height='480' format='RGBA_8888' framerate='30'/>
</caps>
<!-- list of parameters -->
<characteristics>
<parameter
name='REQUEST_AVAILABLE_CAPABILITIES'
type='enum'
size='1'
value='LOGICAL_MULTI_CAMERA'
/>
<parameter
name='LOGICAL_MULTI_CAMERA_PHYSICAL_IDS'
type='byte[]'
size='2'
value='/dev/video3,/dev/video4'
/>
</characteristics>
</group>
這個頁面中的內容和程式碼範例均受《內容授權》中的授權所規範。Java 與 OpenJDK 是 Oracle 和/或其關係企業的商標或註冊商標。
上次更新時間:2025-07-27 (世界標準時間)。
[[["容易理解","easyToUnderstand","thumb-up"],["確實解決了我的問題","solvedMyProblem","thumb-up"],["其他","otherUp","thumb-up"]],[["缺少我需要的資訊","missingTheInformationINeed","thumb-down"],["過於複雜/步驟過多","tooComplicatedTooManySteps","thumb-down"],["過時","outOfDate","thumb-down"],["翻譯問題","translationIssue","thumb-down"],["示例/程式碼問題","samplesCodeIssue","thumb-down"],["其他","otherDown","thumb-down"]],["上次更新時間:2025-07-27 (世界標準時間)。"],[],[],null,["# Multi-camera support\n\nIn Exterior View System (EVS) 1.1, the logical camera device that consists of\nmultiple physical camera devices is supported. To use this virtual device, device\nimplementations must support the\n[Synchronization\nFramework](/devices/graphics/sync).\n\nEnumerate, open, and close logical camera device\n------------------------------------------------\n\nThe app can use the same `IEvsEnumerator` methods to use the\navailable logical camera devices. The returned `EvsCamera` object, which\nrepresents a logical camera device, must contain the following items in the metadata:\n\n- [ANDROID_REQUEST_AVAILABLE_CAPABILITIES_LOGICAL_MULTI_CAMERA](https://developer.android.com/reference/android/hardware/camera2/CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_LOGICAL_MULTI_CAMERA) \n If a returned EvsCamera object represents a logical camera, its camera metadata must contain this capability key in its `ANDROID_REQUEST_AVAILABLE_CAPABILITIES` field.\n- `ANDROID_LOGICAL_MULTI_CAMERA_PHYSICAL_IDS` field lists physical camera device identifiers.\n- `ANDROID_LOGICAL_MULTI_CAMERA_SENSOR_SYNC_TYPE` field can have either of below enum values:\n - `ANDROID_LOGICAL_MULTI_CAMERA_SENSOR_SYNC_TYPE_APPROXIMATE` is for sensors in master-master mode, no hardware shutter/exposure sync.\n - `ANDROID_LOGICAL_MULTI_CAMERA_SENSOR_SYNC_TYPE_CALIBRATED` is for sensors in master-slave mode, hardware shutter/exposure sync. Synchronized GMSL2 cameras must have this value.\n\nThe app can retrieve a descriptor of physical camera devices through\n`IEvsCamera` in the new `getPhysicalCameraInfo(stringcameraId)`\nmethod. \n\n```scilab\n/**\n * Returns the description of the physical camera device that backs this\n * logical camera.\n *\n * If a requested device does not either exist or back this logical device,\n * this method returns a null camera descriptor. And, if this is called on\n * a physical camera device, this method is the same as getCameraInfo_1_1()\n * method if a given device ID is matched. Otherwise, this returns a\n * null camera descriptor.\n *\n * @param deviceId Physical camera device identifier string.\n * @return info The description of a member physical camera device.\n * This must be the same value as reported by\n * EvsEnumerator::getCameraList_1_1().\n */\ngetPhysicalCameraInfo(string deviceId) generates (CameraDesc info);\n```\n\nConfigure multi-camera support\n------------------------------\n\nAll logical cameras are required to be defined statically and must be\nenumerated through a configuration manager implementation. As EVS allows each\ndevice in the group to be configured differently, EVS provides a list of member\ndevices and indicates whether or not the image capture is synchronized. \n\n```gdscript\n\u003c!-- camera group 0 --\u003e\n\u003cgroup id='group0' synchronized='CALIBRATED'\u003e\n \u003ccaps\u003e\n \u003c!-- list of supported controls supported by all physical devices --\u003e\n \u003csupported_controls\u003e\n \u003ccontrol name='BRIGHTNESS' min='0' max='255'/\u003e\n \u003ccontrol name='CONTRAST' min='0' max='255'/\u003e\n \u003c/supported_controls\u003e\n\n \u003c!-- list of stream configuration supported by all physical devices --\u003e\n \u003cstream id='0' width='640' height='480' format='RGBA_8888' framerate='30'/\u003e\n \u003c/caps\u003e\n\n \u003c!-- list of parameters --\u003e\n \u003ccharacteristics\u003e\n \u003cparameter\n name='REQUEST_AVAILABLE_CAPABILITIES'\n type='enum'\n size='1'\n value='LOGICAL_MULTI_CAMERA'\n /\u003e\n \u003cparameter\n name='LOGICAL_MULTI_CAMERA_PHYSICAL_IDS'\n type='byte[]'\n size='2'\n value='/dev/video3,/dev/video4'\n /\u003e\n \u003c/characteristics\u003e\n\u003c/group\u003e\n```"]]