ตั้งแต่วันที่ 27 มีนาคม 2025 เป็นต้นไป เราขอแนะนำให้ใช้ android-latest-release
แทน aosp-main
เพื่อสร้างและมีส่วนร่วมใน AOSP โปรดดูข้อมูลเพิ่มเติมที่หัวข้อการเปลี่ยนแปลงใน AOSP
การรองรับกล้องหลายตัว
จัดทุกอย่างให้เป็นระเบียบอยู่เสมอด้วยคอลเล็กชัน
บันทึกและจัดหมวดหมู่เนื้อหาตามค่ากำหนดของคุณ
ในระบบภาพภายนอก (EVS) 1.1 ระบบจะรองรับอุปกรณ์กล้องเชิงตรรกะซึ่งประกอบด้วยอุปกรณ์กล้องจริงหลายเครื่อง หากต้องการใช้อุปกรณ์เสมือนนี้ การติดตั้งใช้งานอุปกรณ์ต้องรองรับ เฟรมเวิร์กการซิงค์
แจกแจง เปิด และปิดอุปกรณ์กล้องเสมือน
แอปสามารถใช้เมธอด IEvsEnumerator
เดียวกันเพื่อใช้อุปกรณ์กล้องเชิงตรรกะที่มีอยู่ ออบเจ็กต์ EvsCamera
ที่แสดงผล ซึ่งแสดงถึงอุปกรณ์กล้องเชิงตรรกะต้องมีรายการต่อไปนี้ในข้อมูลเมตา
ANDROID_REQUEST_AVAILABLE_CAPABILITIES_LOGICAL_MULTI_CAMERA
หากออบเจ็กต์ EvsCamera ที่แสดงผลเป็นกล้องเชิงตรรกะ เมตาดาต้าของกล้องต้องมีคีย์ความสามารถนี้ในช่อง ANDROID_REQUEST_AVAILABLE_CAPABILITIES
ANDROID_LOGICAL_MULTI_CAMERA_PHYSICAL_IDS
ช่องแสดงตัวระบุอุปกรณ์กล้องจริง
ANDROID_LOGICAL_MULTI_CAMERA_SENSOR_SYNC_TYPE
ช่องอาจมีค่า Enum ใดค่าหนึ่งต่อไปนี้
ANDROID_LOGICAL_MULTI_CAMERA_SENSOR_SYNC_TYPE_APPROXIMATE
มีไว้สำหรับเซ็นเซอร์ในโหมดมาสเตอร์-มาสเตอร์ ไม่มีการซิงค์ชัตเตอร์/การเปิดรับแสงของฮาร์ดแวร์
ANDROID_LOGICAL_MULTI_CAMERA_SENSOR_SYNC_TYPE_CALIBRATED
มีไว้สำหรับเซ็นเซอร์ในโหมดหลัก/อุปกรณ์เสริม การซิงค์ชัตเตอร์/การเปิดรับแสงของฮาร์ดแวร์
กล้อง GMSL2 ที่ซิงค์กันต้องมีค่านี้
แอปจะดึงข้อมูลคําอธิบายอุปกรณ์กล้องจริงผ่าน IEvsCamera
ในวิธีการ getPhysicalCameraInfo(stringcameraId)
ใหม่ได้
/**
* 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 UTC
[[["เข้าใจง่าย","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 UTC"],[],[],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```"]]