CameraX
ตารางนี้แสดงอาร์ติแฟกต์ทั้งหมดในกลุ่ม androidx.camera
อาร์ติแฟกต์ | รุ่นที่เสถียร | รุ่นที่อาจได้รับการเผยแพร่ | รุ่นเบต้า | รุ่นอัลฟ่า |
---|---|---|---|---|
camera-camera2 | 1.4.2 | - | 1.5.0-beta02 | - |
camera-core | 1.4.2 | - | 1.5.0-beta02 | - |
camera-compose | - | - | 1.5.0-beta02 | - |
camera-effects | 1.4.2 | - | 1.5.0-beta02 | - |
ส่วนขยายกล้อง | 1.4.2 | - | 1.5.0-beta02 | - |
camera-feature-combination-query | - | - | - | 1.5.0-alpha06 |
camera-feature-combination-query-play-services | - | - | - | 1.5.0-alpha06 |
วงจรกล้อง | 1.4.2 | - | 1.5.0-beta02 | - |
camera-mlkit-vision | 1.4.2 | - | 1.5.0-beta02 | - |
มุมมองกล้อง | 1.4.2 | - | 1.5.0-beta02 | - |
ช่องมองภาพของกล้อง | - | - | 1.3.0-beta02 | 1.4.0-alpha07 |
กล้อง - วิดีโอ | 1.4.2 | - | 1.5.0-beta02 | - |
การทดสอบอุปกรณ์
เราทดสอบ CameraX ในอุปกรณ์หลายรุ่นในห้องทดลอง หากต้องการดูรายการอุปกรณ์ที่อยู่ในห้องทดลองในขณะนี้ โปรดดูอุปกรณ์ที่ผ่านการทดสอบในห้องทดลองของ CameraX
การประกาศทรัพยากร Dependency
หากต้องการเพิ่มทรัพยากร Dependency ใน CameraX คุณต้องเพิ่มที่เก็บ Maven ของ Google ลงในโปรเจ็กต์ อ่านข้อมูลเพิ่มเติมได้ที่ที่เก็บ Maven ของ Google
เพิ่มการอ้างอิงสำหรับอาร์ติแฟกต์ที่คุณต้องการในไฟล์ build.gradle
สำหรับแอปหรือโมดูลของคุณ
Groovy
dependencies { // CameraX core library using the camera2 implementation def camerax_version = "1.5.0-beta02" // The following line is optional, as the core library is included indirectly by camera-camera2 implementation "androidx.camera:camera-core:${camerax_version}" implementation "androidx.camera:camera-camera2:${camerax_version}" // If you want to additionally use the CameraX Lifecycle library implementation "androidx.camera:camera-lifecycle:${camerax_version}" // If you want to additionally use the CameraX VideoCapture library implementation "androidx.camera:camera-video:${camerax_version}" // If you want to additionally use the CameraX View class implementation "androidx.camera:camera-view:${camerax_version}" // If you want to additionally add CameraX ML Kit Vision Integration implementation "androidx.camera:camera-mlkit-vision:${camerax_version}" // If you want to additionally use the CameraX Extensions library implementation "androidx.camera:camera-extensions:${camerax_version}" }
Kotlin
dependencies { // CameraX core library using the camera2 implementation val camerax_version = "1.5.0-beta02" // The following line is optional, as the core library is included indirectly by camera-camera2 implementation("androidx.camera:camera-core:${camerax_version}") implementation("androidx.camera:camera-camera2:${camerax_version}") // If you want to additionally use the CameraX Lifecycle library implementation("androidx.camera:camera-lifecycle:${camerax_version}") // If you want to additionally use the CameraX VideoCapture library implementation("androidx.camera:camera-video:${camerax_version}") // If you want to additionally use the CameraX View class implementation("androidx.camera:camera-view:${camerax_version}") // If you want to additionally add CameraX ML Kit Vision Integration implementation("androidx.camera:camera-mlkit-vision:${camerax_version}") // If you want to additionally use the CameraX Extensions library implementation("androidx.camera:camera-extensions:${camerax_version}") }
ความคิดเห็น
ความคิดเห็นของคุณจะช่วยให้ Jetpack ทำงานได้ดียิ่งขึ้น โปรดแจ้งให้เราทราบหากพบปัญหาใหม่หรือมี ไอเดียในการปรับปรุงไลบรารีนี้ โปรดดูปัญหาที่มีอยู่ ในไลบรารีนี้ก่อนสร้างปัญหาใหม่ คุณสามารถโหวตปัญหาที่มีอยู่ได้โดย คลิกปุ่มดาว
ดูข้อมูลเพิ่มเติมได้ในเอกสารประกอบของเครื่องมือติดตามปัญหา
เวอร์ชัน 1.0 ของฟีเจอร์จัดองค์ประกอบในช่องมองภาพของกล้อง
เวอร์ชัน 1.0.0-alpha02
12 มิถุนายน 2024
androidx.camera:camera-viewfinder-compose:1.0.0-alpha02
ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.0.0-alpha02 มีการคอมมิตเหล่านี้
เวอร์ชัน 1.0.0-alpha01
14 พฤษภาคม 2024
androidx.camera:camera-viewfinder-compose:1.0.0-alpha01
ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.0.0-alpha01 มีการเปลี่ยนแปลงเหล่านี้
ฟีเจอร์ใหม่
- ไลบรารีใหม่ ไลบรารีนี้แนะนำ Composable ของช่องมองภาพแบบเนทีฟของ Compose ซึ่งใช้ได้กับ CameraX และ Camera2 Viewfinder ที่ประกอบได้รองรับสัดส่วนภาพที่แตกต่างกันและการจัดการเหตุการณ์การแตะ
ช่องมองภาพของกล้อง เวอร์ชัน 1.4
เวอร์ชัน 1.4.0-alpha07
12 มิถุนายน 2024
androidx.camera:camera-viewfinder:1.4.0-alpha07
และ androidx.camera:camera-viewfinder-core:1.4.0-alpha07
เปิดตัวแล้ว เวอร์ชัน 1.4.0-alpha07 มีการคอมมิตเหล่านี้
เวอร์ชัน 1.4.0-alpha06
14 พฤษภาคม 2024
androidx.camera:camera-viewfinder:1.4.0-alpha06
และ androidx.camera:camera-viewfinder-core:1.4.0-alpha06
เปิดตัวแล้ว เวอร์ชัน 1.4.0-alpha06 มีการเปลี่ยนแปลงเหล่านี้
การเปลี่ยนแปลง API
- เปลี่ยนชื่อ
Viewfinder
ImplementationMode
Enums เพื่อให้สะท้อนการใช้งานพื้นฐานได้ดียิ่งขึ้น และเพิ่มค่าคงที่ที่แก้ไขแล้วสำหรับTransformationInfo.sourceRotation
(Ic6149) - เพิ่ม
ZoomGestureDetector.ZoomEvent
เพื่อห่อหุ้มสถานะของท่าทางการซูม (I84cdf)
กล้องเวอร์ชัน 1.5
เวอร์ชัน 1.5.0-beta02
16 กรกฎาคม 2025
androidx.camera:camera-*:1.5.0-beta02
ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.5.0-beta02 มีการเปลี่ยนแปลงเหล่านี้
การเปลี่ยนแปลง API
- เพิ่ม API ใหม่เพื่อตั้งค่าหรือค้นหากลุ่มฟีเจอร์คุณภาพสูงได้อย่างแม่นยำและเป็นธรรมชาติมากขึ้น เนื่องจากฟีเจอร์เหล่านี้อาจไม่รองรับการใช้งานร่วมกันในอุปกรณ์บางรุ่น ตอนนี้
SessionConfig
มี API ใหม่เพื่อระบุกลุ่มฟีเจอร์เป็น "ต้องระบุ" หรือ "แนะนำ"CameraInfo.isFeatureGroupSupported
API ช่วยให้ทราบว่าระบบรองรับกลุ่มฟีเจอร์หรือไม่ก่อนที่จะเชื่อมโยงSessionConfig
SessionConfig
ยังช่วยให้ตั้งค่า Listener เพื่อทราบว่าฟีเจอร์ใดที่เลือกในที่สุดเมื่อผูกการกำหนดค่าเซสชันแล้ว (Ie4d60) - เพิ่ม API ใหม่
SessoinConfig.Builder.setFrameRateRange(Range<Integer>)
และCameraInfo.getSupportedFrameRateRanges(SessionConfig)
ซึ่งช่วยให้นักพัฒนาแอปค้นหาอัตราเฟรมที่รองรับที่รับประกันซึ่งจำกัดโดยSessionConfig
ที่เฉพาะเจาะจง แล้วจึงใช้อัตราเฟรมกับSessionConfig
(Ieacf7) - เปิดตัว
SessionConfig
API ใหม่ ซึ่งมีการแยกส่วนที่ดีขึ้นสำหรับการกำหนดค่า Use Case, พารามิเตอร์เซสชัน,CameraEffect
,ViewPort
และอื่นๆ การเชื่อมโยงSessionConfig
กับ LifecycleOwner จะเปิดเซสชันกล้อง กำหนดค่าโดยใช้ Use Case และพารามิเตอร์เซสชันที่ระบุ และใช้CameraEffect
และViewPort
ที่กำหนด เมื่ออัปเดตSessionConfig
ใหม่เป็นLifecycleOwner
เดียวกัน คุณเพียงแค่ต้องเชื่อมโยงSessionconfig
ใหม่โดยไม่ต้องเรียกใช้การเลิกเชื่อมโยงหรือunbindAll
ก่อน (Iedfc3) - เพิ่ม API ใหม่เพื่อบันทึกวิดีโอความเร็วสูง/สโลว์โมชัน ดูรายละเอียดเพิ่มเติมได้ที่
HighSpeedVideoSessionConfig
API (Ia16f3)
การแก้ไขข้อบกพร่อง
- แก้ไขปัญหาที่
ImageCaptureCapabilities#getSupportedOutputFormats()
API รายงานรูปแบบ RAW ว่ารองรับในอุปกรณ์บางรุ่นซึ่งไม่มีความสามารถ RAW จริงๆ (Ibcadb) - แก้ไขปัญหาหน่วยความจำรั่วที่เกิดขึ้นเมื่อใช้
PreviewView
เปิดใช้CameraEffect
หรือเชื่อมโยง 4 กรณีการใช้งาน(StreamSharing) (I87468) - แก้ไขข้อขัดข้องในการบันทึกวิดีโอโดย
AssertionError
: สถานะเสียงภายในไม่ถูกต้อง: IDLING (I38d4b, b/414259796) - แก้ไขปัญหาเมื่อแอปทำงานในจอแสดงผลภายนอกและอุปกรณ์อยู่ในแนวนอน ตัวอย่างใน
PreviewView
จะยืดออกหรือเอียงข้าง (Ia917a) - แก้ไขปัญหาที่ระบบใช้การตั้งค่าการแสดงตัวอย่างการป้องกันภาพสั่นไม่ถูกต้องเมื่อแชร์สตรีมกล้องระหว่างการแสดงตัวอย่างกับ VideoCapture(I5430e)
CameraXViewfinder
ตอนนี้จัดการการแทนที่พื้นผิวในViewfinder
ที่อยู่เบื้องหลังได้อย่างถูกต้องแล้ว ซึ่งครอบคลุมสถานการณ์ต่างๆ เช่น เมื่อEXTERNAL
ช่องมองภาพใน API ระดับ 28 หรือต่ำกว่าเลื่อนออกนอกหน้าจอ หรือหากCameraXViewfinder
(มีImplementationMode
ใดก็ตาม) เป็นส่วนหนึ่งของmoveableContentOf()
ในกรณีที่ViewfinderSurfaceSession
พื้นฐานไม่สามารถใช้งานได้CameraXViewfinder
จะทำให้SurfaceRequest
ของ CameraX ปัจจุบันใช้งานไม่ได้ เพื่อให้ CameraX ใช้Surface
ใหม่ได้ (I79432)- แก้ไขปัญหาใน Android 10/11 ที่
EXTERNAL
CameraXViewfinder
อาจดูยืดออกหรือผิดเพี้ยนเนื่องจากมีการดำเนินการเปลี่ยนรูปแบบ (เช่น การปรับขนาดหรือการแปล) เร็วเกินไป ตอนนี้ระบบจะรอให้สร้าง Surface ก่อนที่จะใช้การเปลี่ยนรูปแบบเหล่านี้ในระยะเลย์เอาต์ เพื่อให้มั่นใจว่าเอาต์พุตถูกต้อง (Icc77c) - ตอนนี้ Composable
CameraXViewfinder
ทำงานร่วมกับPager
ของ Compose ได้อย่างถูกต้องแล้ว การเปลี่ยนแปลงนี้ช่วยให้มั่นใจได้ว่าสามารถรีเซ็ต Composable ได้สำเร็จโดยการใช้onReset
Callback ของAndroidView
ซึ่งรองรับการใช้งานทั้งEMBEDDED
และEXTERNAL
(I0d9be) - แก้ไขการรั่วไหลของเจ้าของวงจรที่เกิดขึ้นเมื่อยกเลิกการเชื่อมโยง Use Case จากเจ้าของวงจรโดยไม่ปิดผู้ให้บริการกล้อง
เวอร์ชัน 1.5.0-beta01
7 พฤษภาคม 2025
androidx.camera:camera-*:1.5.0-beta01
ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.5.0-beta01 มีการเปลี่ยนแปลงเหล่านี้
การเปลี่ยนแปลง API
- โปรเจ็กต์ที่เผยแพร่ด้วย Kotlin 2.0 ต้องใช้ KGP 2.0.0 ขึ้นไปจึงจะใช้งานได้ (Idb6b5)
- ตอนนี้คุณสามารถใช้
ContentScale
และการจัดแนวในช่องมองภาพเพื่อปรับขนาดและวางพื้นผิวที่แสดงภายในคอนเทนเนอร์ได้แล้ว ซึ่งคล้ายกับลักษณะการทำงานของandroidx.compose.foundation.Image
(Ibcea3) TransformationInfo
มีค่าเริ่มต้นสำหรับอาร์กิวเมนต์ทั้งหมดแล้ว ซึ่งจะช่วยให้สร้าง Viewfinder ได้โดยไม่มีTransformationInfo
ซึ่งจะมีการหมุนแหล่งที่มาเป็น 0 โดยค่าเริ่มต้น ไม่มีการมิเรอร์แหล่งที่มา และไม่มีสี่เหลี่ยมผืนผ้าครอบตัด (I2b1b2)- เพิ่ม
LifecycleCameraProvider
ซึ่งเป็นผู้ให้บริการกล้องที่สามารถสร้างอินสแตนซ์ด้วยการกำหนดค่าต่างๆ สำหรับฟีเจอร์ เช่น การเข้าถึงกล้องของอุปกรณ์เสมือนโดยการกำหนดค่าด้วยบริบทที่กำหนดเอง (Ia2992)
การแก้ไขข้อบกพร่อง
- แก้ไขปัญหาการหยุดแสดงตัวอย่างชั่วคราวเมื่อใช้
ImageAnalysis
กับสตรีมอื่นที่ใช้TEMPLATE_RECORD
ในอุปกรณ์ Samsung SM-E556B (Ic0e62, b/409478042) - แก้ไขปัญหาการหยุดแสดงตัวอย่างชั่วคราวเมื่อใช้
ImageAnalysis
กับสตรีมอื่นที่ใช้TEMPLATE_RECORD
ในอุปกรณ์ Samsung SM-M556B (Ic1a6a, b/395822788) - แก้ไขปัญหาโหมดกลางคืนของส่วนขยาย
AssertError
ในอุปกรณ์ Pixel ที่ใช้ Android 15 เมื่อดำเนินการที่เกี่ยวข้องกับการซูม (I27a5d, b/401460276) - แก้ไขปัญหาพิกัดกรอบล้อมรอบที่ไม่ถูกต้องของ ML Kit Analyzer เมื่อใช้
CameraController
(Iae91b, b/409808510)
เวอร์ชัน 1.5.0-alpha06
26 กุมภาพันธ์ 2025
androidx.camera:camera-*:1.5.0-alpha06
ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.5.0-alpha06 มีการเปลี่ยนแปลงเหล่านี้
การเปลี่ยนแปลง API
- เพิ่ม
CameraInfo.getTorchStrengthLevel
,CameraInfo.getMaxTorchStrengthLevel
และCameraControl.setTorchStrengthLevel
เพื่อให้ปรับแต่งความสว่างของไฟฉายได้ (I00878) - เราได้เพิ่ม API ใหม่
CameraController#setTapToFocusAutoCancelDuration
เพื่อให้ผู้ใช้ควบคุมลักษณะการยกเลิกอัตโนมัติสำหรับกิจกรรมที่PreviewView
แตะเพื่อโฟกัสได้ โดยค่าเริ่มต้น CameraX จะยกเลิกเหตุการณ์โฟกัสหลังจากผ่านไป 5 วินาที (เช่น รีเซ็ตโฟกัสกล้อง) และ API นี้จะช่วยให้คุณแก้ไขระยะเวลาดังกล่าวหรือปิดใช้การยกเลิกอัตโนมัติทั้งหมดได้ (Icf59a) FLASH_STATE_READY
เปลี่ยนชื่อเป็นNOT_FIRED
และเราได้ลดความซับซ้อนของชื่อค่าคงที่FlashState
อื่นๆ เพื่อให้อ่านง่ายขึ้น (I8771d)- เปิดตัว Low Light Boost API อุปกรณ์ที่ใช้ Android 15 ขึ้นไปจะรองรับการเพิ่มประสิทธิภาพในที่แสงน้อย ฟีเจอร์นี้จะปรับความสว่างของสตรีมตัวอย่าง วิดีโอ หรือการวิเคราะห์รูปภาพโดยอัตโนมัติในสภาพแสงน้อย แอปพลิเคชันสามารถใช้ API ใหม่เพื่อทำสิ่งต่อไปนี้ 1. ใช้
CameraInfo#isLowLightBoostSupported
เพื่อตรวจสอบความพร้อมใช้งานของฟีเจอร์ 2. ใช้CameraControl#enableLowLightBoostAsync
เพื่อเปิดใช้โหมดเมื่ออุปกรณ์รองรับ 3. ใช้CameraInfo#getLowLightBoostState
เพื่อตรวจสอบสถานะการเพิ่มประสิทธิภาพในสภาวะแสงน้อย (I937ed) - เพิ่มคลาสที่เข้ากันได้เพื่อให้การค้นหาที่ไม่ใช่ camera2 เร็วขึ้นใน camera-feature-combination-query (Ie97ee)
- สำหรับ
CameraController
เหตุการณ์แตะเพื่อโฟกัสgetTapToFocusInfoState()
API ใหม่จะแสดงตำแหน่งการแตะที่เกี่ยวข้องด้วยโดยการส่งคืนLiveData
ของคลาสTapToFocusInfo
ขณะที่ APILiveData<Integer>
ที่ส่งคืนgetTapToFocusState()
ก่อนหน้านี้จะเลิกใช้งานเพื่อสนับสนุน API ใหม่ (I238d2)
การแก้ไขข้อบกพร่อง
- แก้ไขปัญหาที่ระบบไม่ใช้การป้องกันภาพสั่นไหวในการแสดงตัวอย่างเมื่อเปิดใช้การป้องกันภาพสั่นไหวในการแสดงตัวอย่างด้วยส่วนขยาย (I24ad7)
- แก้ไข
CameraController
เหตุการณ์สถานะโฟกัสไม่รีเซ็ตกลับไปเป็นTAP_TO_FOCUS_NOT_STARTED
เมื่อ CameraX ยกเลิกเหตุการณ์โฟกัสโดยอัตโนมัติซึ่งเกิดขึ้นหลังจาก 5 วินาทีโดยค่าเริ่มต้น (I31954) - แก้ไขการหยุดแสดงตัวอย่างชั่วคราวเมื่อใช้การหน่วงเวลาชัตเตอร์เป็นศูนย์ (ZSL) หลังจากถ่ายภาพหลายครั้งเนื่องจากทรัพยากรรูปภาพที่ยังไม่ได้เผยแพร่ (Ic3c2a)
- แก้ไขปัญหาที่วิดีโอ UHD มีสีแดงในอุปกรณ์บางรุ่นเมื่อไปป์ไลน์เกี่ยวข้องกับ
OpenGL
(Idcedc)
เวอร์ชัน 1.5.0-alpha05
15 มกราคม 2025
androidx.camera:camera-*:1.5.0-alpha05
ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.5.0-alpha05 มีการเปลี่ยนแปลงเหล่านี้
การเปลี่ยนแปลง API
- เพิ่ม
VideoCapture.getSelectedQuality()
เพื่อดูคุณภาพที่เลือกตามQualitySelector
(I70508, b/204288986) - เมื่อเรียกใช้การจับภาพด้วย
ImageCapture.OnImageCapturedCallback
API ตอนนี้คุณสามารถใช้ ImageInfo ที่ImageProxy
ที่ส่งคืนเพื่อดูว่ามีการเปิดแฟลชผ่านImageInfo.getFlashState()
API ใหม่หรือไม่ (Id2c61, b/380527406) - เพิ่มการรองรับรูปแบบเอาต์พุต
OUTPUT_IMAGE_FORMAT_NV21
สำหรับImageAnalysis
(I484ab) - นำคำอธิบายประกอบเวอร์ชันทดลองของอาร์ติแฟกต์
featurecombinationquery
(I4427f) ออก - ปรับช่วงอัตราส่วนการซูมที่อนุญาตสำหรับ
CameraControl
ตามลักษณะเฉพาะของส่วนขยายเมื่อเปิดใช้โหมดส่วนขยาย (I85af1)
การแก้ไขข้อบกพร่อง
- อัปเกรดเป็น
compileSdk
เป็น 35 สำหรับการใช้ API ที่เกี่ยวข้องกับ Android 15 แอปที่ใช้ไลบรารี CameraX จะต้องอัปเกรดcompileSdk
การตั้งค่าด้วย (Ic80cd) - ตอนนี้ไลบรารีนี้ใช้คำอธิบายประกอบเกี่ยวกับค่า Null ของ JSpecify ซึ่งเป็นแบบใช้ประเภท นักพัฒนาซอฟต์แวร์ Kotlin ควรใช้อาร์กิวเมนต์คอมไพเลอร์ต่อไปนี้เพื่อบังคับใช้การใช้งานที่ถูกต้อง
-Xjspecify-annotations=strict
(นี่คือค่าเริ่มต้นที่เริ่มต้นด้วยคอมไพเลอร์ Kotlin เวอร์ชัน 2.1.0) (Idc6c6, b/326456246)
เวอร์ชัน 1.5.0-alpha04
11 ธันวาคม 2024
androidx.camera:camera-*:1.5.0-alpha04
ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.5.0-alpha04 มีการเปลี่ยนแปลงเหล่านี้
การเปลี่ยนแปลง API
- เปิดตัว
ImageCapture.Builder#setOutputFormat
และImageCaptureCapabilities#getSupportedOutputFormats
เป็น API ที่เสถียร (Ieb04a) - เพิ่ม
VideoCapture.getResolutionInfo()
เพื่อรับข้อมูลความละเอียดเมื่อVideoCapture
เชื่อมโยงกับวงจรของลูกค้า (Icb478) - เปิดตัว
PreviewView.getScreenFlash
และPreviewView.setScreenFlashOverlayColor
เป็น API ที่เสถียร (I74fee)
การแก้ไขข้อบกพร่อง
- แก้ไขปัญหาการจับภาพไม่สำเร็จในอุปกรณ์ Vivo 1610 ขณะถ่ายภาพด้วยแฟลชในที่มืด (I366f4)
- แก้ไขปัญหาไฟฉายปิดโดยไม่คาดคิดหลังจากถ่ายภาพใน Redmi Note 6 Pro (I2e0e8, b/377144569)
- แก้ไขปัญหาในอุปกรณ์ Pixel ที่ใช้ Android 15 ซึ่งโหมดกลางคืนในส่วนขยายถ่ายภาพนิ่งไม่สำเร็จจนกว่ากล้องจะโฟกัสวัตถุที่อยู่ใกล้เคียง (I228d4)
- แก้ไขปัญหาการทำงานผิดปกติของการจับภาพนิ่งเมื่อเปิดใช้ส่วนขยายและ
VideoCapture
(I5c745) - เปิดใช้การรองรับการจับภาพนิ่ง
UltraHDR
สำหรับส่วนขยายหากอุปกรณ์รองรับ (I48300) - แก้ไขปัญหาการจับเวลาแฟลชสำหรับการจับภาพด้วยแฟลชพร้อมการกำหนดเป้าหมาย
CameraEffect
การจับภาพบนอุปกรณ์ TCL (I7698c)
เวอร์ชัน 1.5.0-alpha03
30 ตุลาคม 2024
androidx.camera:camera-*:1.5.0-alpha03
ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.5.0-alpha03 มีการเปลี่ยนแปลงเหล่านี้
การเปลี่ยนแปลง API
- เพิ่มเอาต์พุตรูปแบบ API สำหรับ RAW และ RAW + JPEG
ImageCapture
โดยจะแสดงการตรวจสอบความสามารถของอุปกรณ์ในImageCaptureCapabilities#getSupportedOutputFormats
OUTPUT_FORMAT_RAW
ใช้เพื่อถ่ายภาพ RAW ซึ่งเป็นรูปแบบ DNG ของ Adobe และOUTPUT_FORMAT_RAW_JPEG
ใช้เพื่อถ่ายภาพ RAW และ JPEG พร้อมกันImageCapture#takePicture
API ใหม่ใช้สำหรับการจับภาพพร้อมกัน จึงต้องระบุOutputFileOptions
2 รายการ โดยรายการแรกสำหรับรูปภาพ RAW และรายการที่ 2 สำหรับรูปภาพ JPEG (Ib0f3d)
การแก้ไขข้อบกพร่อง
- แก้ไขปัญหาการแสดงตัวอย่างและวิดีโอที่สว่างไม่เพียงพอในอุปกรณ์ TCL เมื่อเปิดใช้
VideoCapture
(Id7a64) - แก้ไขปัญหาที่การเรียกใช้
startFocusMetering
ด้วยPreviewView.getMeteringPointFactory
ไม่ได้พิกัดเซ็นเซอร์ที่ถูกต้องเมื่อเปิดใช้เอฟเฟกต์หรือเมื่อมีการเชื่อมโยงกรณีการใช้งาน 4 รายการ (การแชร์สตรีม) (I916c5, b/345993685) - แก้ไขปัญหาที่ระบบไม่ทริกเกอร์เหตุการณ์
VideoRecordEvent.Finalize.ERROR_INSUFFICIENT_STORAGE
เมื่อบันทึกวิดีโอและมีพื้นที่เก็บข้อมูลไม่เพียงพอ (I35779, b/356399842)
เวอร์ชัน 1.5.0-alpha02
2 ตุลาคม 2024
androidx.camera:camera-*:1.5.0-alpha02
ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.5.0-alpha02 มีการเปลี่ยนแปลงเหล่านี้
ฟีเจอร์ใหม่
- API ใหม่สำหรับการค้นหาฟีเจอร์กล้องที่อุปกรณ์รองรับ เช่น การตรวจสอบว่าเปิดใช้ HDR และ 60FPS พร้อมกันได้หรือไม่ ซึ่งประกอบด้วยอาร์ติแฟกต์ 2 รายการ ได้แก่ camera-feature-combination-query และ camera-feature-combination-query-play-services
โดยเป็น API
CameraManager#getCameraDeviceSetup#isSessionConfigurationSupported
ของ camera2 เวอร์ชันที่เข้ากันได้พร้อมข้อมูลเพิ่มเติมที่ได้รับจากบริการ Google Play
การแก้ไขข้อบกพร่อง
- แก้ไขปัญหาอัตราเฟรมเป้าหมาย
Preview/VideoCapture
ในอุปกรณ์ระดับ LEGACY ระบบจะเขียนทับอัตราเฟรมเป้าหมายที่ตั้งค่าผ่าน APIsetTargetFrameRate
หรือCamera2Interop
เสมอเป็นค่าที่AeFpsRangeLegacyQuirk
ระบุ การแก้ไขนี้จะทำให้ไลบรารี CameraX ยึดตามค่าที่ตั้งค่าผ่านsetTargetFrameRate
หรือCamera2Interop
API (Ie2d32) - เพิ่มฟังก์ชันการทำงานของแฟลช/ไฟฉาย/3A สำหรับการจับภาพด้วย
CameraEffect
รูปภาพที่ถ่ายด้วยCameraEffect
ควรมีการประมวลผลก่อนและหลังการถ่ายภาพเหมือนกับการถ่ายภาพที่ไม่มีCameraEffect
(เช่น การทริกเกอร์แฟลช การรวม 3A ฯลฯ เมื่อเกี่ยวข้อง) (I5ff30) - ขนาดเอาต์พุตที่มีปัญหาที่ยกเว้นสำหรับ
ImageAnalysis
ในอุปกรณ์ Samsung SM-A057G เมื่อImageAnalysis
ใช้ความละเอียดที่มากกว่าหรือเท่ากับ 1920x1440 จะทำให้เกิดปัญหาตัวอย่างสีดำExcludedSupportedSizesQuirk
กับอุปกรณ์ SM-A057G เพื่อหลีกเลี่ยงปัญหา (I63dfe, b/365877975) - แก้ไข
Preview/VideoCapture
ปัญหาอัตราเฟรมเป้าหมายเมื่อเปิดใช้กลไกการแชร์สตรีมภายในเพื่อแชร์สตรีมไปยังPreview
และVideoCapture
(I4fdac) - เปิดใช้การแก้ปัญหาชั่วคราวเพื่อแก้ไขปัญหาข้อมูลเมตาของรูปภาพ JPEG ที่ไม่ถูกต้องในอุปกรณ์ Samsung S10e และ S10+ การแก้ไขนี้ช่วยให้ CameraX บันทึกรูปภาพ JPEG ได้สำเร็จ หรือแสดงผลออบเจ็กต์ Bitmap ที่ถูกต้องเมื่อเรียกใช้ฟังก์ชัน
ImageProxy.toBitmap()
ในอุปกรณ์เหล่านี้หากเกิดปัญหาข้อมูลเมตาของรูปภาพ JPEG ที่ไม่ถูกต้อง (Iae493, b/356428987) - ปิดใช้ส่วนขยายสำหรับกล้องหลังของ Samsung A52s ที่มีรหัสเป็น 0 เนื่องจากอาจเกิดข้อขัดข้องดั้งเดิมเมื่อถ่ายภาพ HDR และการกำหนดค่าเซสชันการจับภาพอาจล้มเหลวสำหรับโหมด BOKEH หรือ FACE_RETOUCH (I03ec9, b/364152642)
- แก้ไขปัญหาที่ระบบไม่ทริกเกอร์เหตุการณ์
VideoRecordEvent.Finalize.ERROR_INSUFFICIENT_STORAGE
เมื่อบันทึกวิดีโอและมีพื้นที่เก็บข้อมูลไม่เพียงพอ (Ia5b4f, b/356399842) - แก้ปัญหาที่ความพยายามในการบันทึกวิดีโอครั้งที่ 2 ไม่สำเร็จใน Oppo A5 (CPH1931) (I181d6)
เวอร์ชัน 1.5.0-alpha01
4 กันยายน 2024
androidx.camera:camera-*:1.5.0-alpha01
ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.5.0-alpha01 มีการเปลี่ยนแปลงเหล่านี้
ฟีเจอร์ใหม่
- เราได้เปิดตัวอาร์ติแฟกต์ใหม่
camera-compose
สำหรับ CameraX Viewfinder Compose Adapter ซึ่งจะแสดงสตรีมตัวอย่างจาก CameraXSurfaceRequest
จากcamera-core
(I8666e) - เพิ่ม Composable ใหม่
CameraXViewfinder
ซึ่งทำหน้าที่เป็น Composable ที่เป็นสำนวนซึ่งปรับSurfaceRequest
ของ CameraX ให้เหมาะกับ ComposableViewfinder
(I4770f)
การเปลี่ยนแปลง API
- จัดเตรียม API เพื่อตั้งค่าการจัดองค์ประกอบสำหรับการจับภาพวิดีโอจากกล้อง 2 ตัวพร้อมกัน การตั้งค่าประกอบด้วยค่าอัลฟ่าสำหรับการผสม ระยะห่างในพิกัด x, y ขนาดความกว้างและความสูงของหน้าต่างแสดงเฟรมกล้อง โดยจะระบุออฟเซ็ต ความกว้าง และความสูงในพิกัดอุปกรณ์ที่ปรับให้เป็นมาตรฐาน (Ia2b8a)
- เปิดตัว
CameraProvider.getCameraInfo
ให้เป็น API อย่างเป็นทางการ (I901cd) - เพิ่ม API
PendingRecording.withAudioEnabled(boolean initialMuted)
เพื่อควบคุมสถานะปิดเสียงเริ่มต้น (I635c3, b/354829267)
การแก้ไขข้อบกพร่อง
- แก้ไขข้อขัดข้องเมื่อเรียกใช้
bindToLifecycle
ด้วยLifecycleOwner
ที่ถูกทำลาย (I6e6d8) - แก้ไขปัญหาการแสดงตัวอย่างเป็นหน้าจอสีดำในกล้องหน้าขณะเชื่อมโยงกับ
VideoCapture
ใน Motorola Edge 20 Fusion (I1fe88) - เพิ่มประสิทธิภาพการกำหนดค่าสำหรับการตรวจจับท่าทางสัมผัสการซูมใน
PreviewView
เพื่อปรับปรุงความลื่นไหล (I04ffc)
กล้องเวอร์ชัน 1.4
เวอร์ชัน 1.4.2
26 มีนาคม 2025
androidx.camera:camera-*:1.4.2
ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.4.2 มีการเปลี่ยนแปลงเหล่านี้
การแก้ไขข้อบกพร่อง
- แก้ไขปัญหาการหยุดแสดงตัวอย่างชั่วคราวเมื่อใช้
ImageAnalysis
กับสตรีมอื่นที่ใช้TEMPLATE_RECORD
ใน Samsung Galaxy M55 (Ic1a6a, b/395822788)
เวอร์ชัน 1.4.1
11 ธันวาคม 2024
androidx.camera:camera-*:1.4.1
ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.4.1 มีการเปลี่ยนแปลงเหล่านี้
การแก้ไขข้อบกพร่อง
- แก้ไขปัญหาในอุปกรณ์ Pixel ที่ใช้ Android 15 ซึ่งโหมดกลางคืนในส่วนขยายถ่ายภาพนิ่งไม่สำเร็จจนกว่ากล้องจะโฟกัสวัตถุที่อยู่ใกล้เคียง (I228d4)
- แก้ไขปัญหา
ImageCapture#takePicture
ทำงานผิดปกติเมื่อเปิดใช้ส่วนขยายและVideoCapture
เชื่อมโยงกัน (I5c745)
เวอร์ชัน 1.4.0
30 ตุลาคม 2024
androidx.camera:camera-*:1.4.0
ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.4.0 มีการคอมมิตเหล่านี้
การเปลี่ยนแปลงสำคัญตั้งแต่เวอร์ชัน 1.3.0
CameraX 1.4.0 มาพร้อมการอัปเดตที่น่าตื่นเต้นมากมาย นี่คือข้อมูลสรุป:
ฟีเจอร์เด่น: HDR 10 บิต:
- ถ่ายภาพและวิดีโอ HDR ที่น่าทึ่งได้อย่างง่ายดาย
- รองรับการเข้ารหัส HLG และ HEVC 10 บิต
- เพลิดเพลินกับการแสดงตัวอย่าง HDR 10 บิตและดูความสามารถของอุปกรณ์
- ใช้ได้กับ
UltraHDR
รูปภาพและวิดีโอ HDR ในอุปกรณ์ที่เพิ่มขึ้นเรื่อยๆ
ฟีเจอร์เจ๋งๆ อื่นๆ
- ส่วนขยาย Kotlin: เพิ่มฟังก์ชันระงับ
takePicture
และawaitInstance
- เอฟเฟกต์แบบเรียลไทม์: ใช้เอฟเฟกต์ต่างๆ เช่น ลายน้ำและการไฮไลต์ออบเจ็กต์
- CameraController API: การควบคุมใหม่สำหรับการกำหนดค่าวิดีโอ
- การป้องกันภาพสั่นไหวเวอร์ชันตัวอย่าง: สอบถามความสามารถของอุปกรณ์และเปิดใช้การป้องกันภาพสั่นไหว
- การปรับปรุง VideoCapture: ควบคุมคุณภาพได้ละเอียดยิ่งขึ้นและเข้าถึงความละเอียดที่สูงขึ้น
- การผสานรวมส่วนขยาย CameraX: การผสานรวมที่ราบรื่นกับ
VideoCapture
และฟีเจอร์ใหม่ของImageCapture
- API เสียงชัตเตอร์: ตรวจสอบข้อกำหนดด้านเสียงชัตเตอร์ในภูมิภาคต่างๆ ได้อย่างง่ายดาย
- แฟลชหน้าจอ: ปรับปรุงรูปภาพในสภาวะแสงน้อยสำหรับกล้องหน้า
- Camera Extensions Metadata APIs: API ที่รองรับสำหรับการปรับความแรงของส่วนขยายและรับการแจ้งเตือนเกี่ยวกับโหมดส่วนขยายปัจจุบันใน
ExtensionMode#AUTO
ดูการแก้ไขข้อบกพร่องเพิ่มเติมได้ในประกาศเกี่ยวกับเบต้าและRC
เวอร์ชัน 1.4.0-rc04
16 ตุลาคม 2024
androidx.camera:camera-*:1.4.0-rc04
ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.4.0-rc04 มีการเปลี่ยนแปลงเหล่านี้
การแก้ไขข้อบกพร่อง
- แก้ไขปัญหาที่การเรียกใช้
startFocusMetering
ด้วยPreviewView.getMeteringPointFactory
ไม่ได้พิกัดเซ็นเซอร์ที่ถูกต้องเมื่อเปิดใช้เอฟเฟกต์หรือเมื่อมีการเชื่อมโยงกรณีการใช้งาน 4 รายการ (การแชร์สตรีม) (I916c5, b/345993685)
เวอร์ชัน 1.4.0-rc03
2 ตุลาคม 2024
androidx.camera:camera-*:1.4.0-rc03
ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.4.0-rc03 มีการคอมมิตเหล่านี้
การแก้ไขข้อบกพร่อง
- เพิ่มฟังก์ชันการทำงานของแฟลช/ไฟฉาย/3A สำหรับการจับภาพด้วย
CameraEffect
รูปภาพที่ถ่ายด้วยCameraEffect
ควรมีการประมวลผลก่อนและหลังการถ่ายภาพเหมือนกับการถ่ายภาพที่ไม่มีCameraEffect
(เช่น การทริกเกอร์แฟลช การรวม 3A ฯลฯ เมื่อเกี่ยวข้อง) (I5ff30) - เพิ่มประสิทธิภาพความลื่นไหลของการบีบเพื่อซูมใน
PreviewView
(I04ffc) - แยก Ultra HDR ออกจากความสามารถในการแสดงผล 10 บิต เนื่องจากการรองรับ Ultra HDR ไม่จำเป็นต้องให้อุปกรณ์มีความสามารถในการแสดงผล 10 บิตอีกต่อไป (I96ff2, I0c3b3)
เวอร์ชัน 1.4.0-rc02
18 กันยายน 2024
androidx.camera:camera-*:1.4.0-rc02
ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.4.0-rc02 มีการเปลี่ยนแปลงเหล่านี้
การแก้ไขข้อบกพร่อง
- แก้ไขข้อขัดข้องเมื่อเรียกใช้
bindToLifecycle
ด้วยLifecycleOwner
ที่ถูกทำลาย (I6e6d8) - เพิ่มภาพเคลื่อนไหวการมองเห็นใน
ScreenFlashView
สำหรับScreenFlash#apply
ซึ่งยังแก้ไขข้อบกพร่องเนื่องจากการเปลี่ยนแปลงความสว่างที่เสร็จสมบูรณ์แบบอะซิงโครนัสหลังจากผ่านไปสักระยะ (I37cdb) - ปรับปรุงความราบรื่นในการซูมโดยการลบล้างการตั้งค่าการซูมในเฟรมเวิร์กบนอุปกรณ์ที่รองรับ
เวอร์ชัน 1.4.0-rc01
7 สิงหาคม 2024
androidx.camera:camera-*:1.4.0-rc01
ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.4.0-rc01 มีการเปลี่ยนแปลงเหล่านี้
ฟีเจอร์ใหม่
- เพิ่ม
CameraInfo.getCameraInfo
เวอร์ชันทดลองเพื่อให้ข้อมูลกล้องที่เฉพาะเจาะจงโดยไม่ต้องผูกกรณีการใช้งานกับกล้อง (I550d1)
การเปลี่ยนแปลง API
- เพิ่ม API
PreviewView.getScreenFlash
และPreviewView.setScreenFlashOverlayColor
สำหรับกรณีที่ไม่ได้เพิ่มScreenFlashView
อย่างชัดเจน (I43945)
การแก้ไขข้อบกพร่อง
- แก้ไขปัญหาการเปิดรับแสงและสีที่ผิดเพี้ยนเมื่อจับภาพโดยเปิดใช้แฟลชในสภาพแสงน้อยที่มีการเชื่อมโยงกรณีการใช้งาน VideoCapture (Ic9814)
- แก้ไขปัญหาที่การขัดจังหวะคำขอ
takePicture
ขณะเปิดใช้ส่วนขยายอาจทำให้รับผลลัพธ์ไม่สำเร็จ และคำขอtakePicture
รายการถัดไปอาจใช้งานไม่ได้อีกต่อไป (Iae78f) - แก้ไขปัญหาการรั่วไหลของหน่วยความจำที่เกิดขึ้นเมื่อเปิดใช้ส่วนขยาย (Iab276)
- แก้ไขการทำงานผิดปกติของส่วนขยาย CameraX ในอุปกรณ์ต่างๆ เช่น Pixel 7/8 และ Samsung Galaxy S24 Series ปัญหานี้เกิดจากปัญหา Conversion ของ
Camera2OutputConfigImpl
ในโหมดรีลีส และเกิดขึ้นหลังจากอัปเกรด AGP เป็น 8.5.1 และเปิดใช้การลดขนาด (I99598, b/354824993)
เวอร์ชัน 1.4.0-beta02
12 มิถุนายน 2024
androidx.camera:camera-*:1.4.0-beta02
ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.4.0-beta02 มีการเปลี่ยนแปลงเหล่านี้
การเปลี่ยนแปลง API
- เพิ่ม
setMirrorMode
สำหรับกรณีการใช้งานตัวอย่างเช่นเดียวกับVideoCapture
โดยจะรองรับโหมดมิเรอร์เปิดและปิดสำหรับสตรีมตัวอย่างผ่านOutputConfiguration.setMirrorMode
จาก API 33 ขึ้นไป ส่วน API รุ่นเก่าจะไม่ดำเนินการใดๆ (I821f4)
การแก้ไขข้อบกพร่อง
- แก้ไขปัญหาที่แอปถ่ายภาพบน Samsung Tab A8 ไม่สำเร็จเมื่อ
ImageCapture
เลือก 1920x1080 ในส่วนPreview
+VideoCapture
+ImageCapture
UseCase
(I5a463, b/336925549) - การบันทึกอย่างต่อเนื่องที่แก้ไขแล้วอาจบันทึกต่อไม่ได้หลังจากเปลี่ยนกล้อง (Icb0a1)
เวอร์ชัน 1.4.0-beta01
14 พฤษภาคม 2024
androidx.camera:camera-*:1.4.0-beta01
ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.4.0-beta01 มีการเปลี่ยนแปลงเหล่านี้
การเปลี่ยนแปลง API
- เพิ่ม
ZoomGestureDetector.ZoomEvent
เพื่อห่อหุ้มสถานะของท่าทางการซูม (I84cdf)
การแก้ไขข้อบกพร่อง
- แก้ไขข้อบกพร่องที่ยังคงทำให้การจับภาพและแตะเพื่อโฟกัสไม่ใช้ค่า FPS/โหมดการป้องกันภาพสั่นของคำขอที่ทำซ้ำ ซึ่งอาจสร้างเซสชันการจับภาพใหม่และทำให้เกิดปัญหาด้านเวลาในการตอบสนองหรือการหยุดแสดงตัวอย่างในอุปกรณ์บางรุ่น (I7dc0b)
- แก้ไขข้อบกพร่องที่ทำให้เลือกความละเอียดสูงไม่ได้เมื่อเปิดใช้
CameraEffect
ในอุปกรณ์บางเครื่อง (เช่น 4000x3000 ใน Samsung A32 5G) (Ie3ed3, b/337336152) - แก้ไขข้อขัดข้องเมื่อถ่ายภาพด้วยการแสดงตัวอย่าง
ImageCapture
และVideoCapture(UHD)
ใน Pixel 4XL API29 (I5b288) - รองรับอุปกรณ์เสมือน: บริบทที่ส่งไปยัง
ProcessCameraProvider
จะเก็บรักษารหัสอุปกรณ์ไว้เพื่อให้มั่นใจว่าฟังก์ชันการทำงานในสภาพแวดล้อมของอุปกรณ์เสมือนจะยังคงอยู่ (I5ba48)
เวอร์ชัน 1.4.0-alpha05
17 เมษายน 2024
androidx.camera:camera-*:1.4.0-alpha05
ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.4.0-alpha05 มีการเปลี่ยนแปลงเหล่านี้
ฟีเจอร์ใหม่
- แปลง
ProcessCameraProvider
เป็นการใช้งาน Kotlin (I46d4f) - เพิ่ม
ImageCapture.takePicture
ฟังก์ชันระงับเพื่อให้เรียกใช้ในลักษณะของ Kotlin ได้ (I920be)
การเปลี่ยนแปลง API
- เพิ่ม API รูปแบบเอาต์พุตไปยัง
ImageCapture
และเพิ่มเมธอดgetSupportedOutputFormats
ไปยังImageCaptureCapabilities
เพื่อค้นหาความสามารถของอุปกรณ์ ค่ารูปแบบเอาต์พุตเริ่มต้นคือOUTPUT_FORMAT_JPEG
ซึ่งจะบันทึกภาพ SDR ในรูปแบบ JPEG เมื่ออุปกรณ์รองรับ Ultra HDR และตั้งค่ารูปแบบเอาต์พุตเป็นOUTPUT_FORMAT_JPEG_ULTRA_HDR
CameraX จะบันทึกรูปภาพที่บีบอัด Ultra HDR โดยใช้รูปแบบรูปภาพ JPEG/R รูปแบบนี้เข้ากันได้กับรูปแบบ JPEG ของ SDR และรองรับการแสดงผล HDR ของเนื้อหา ซึ่งหมายความว่าในแอปหรืออุปกรณ์รุ่นเก่า รูปภาพจะปรากฏเป็น JPEG ปกติอย่างราบรื่น ส่วนในแอปและอุปกรณ์ที่ได้รับการอัปเดตให้รองรับรูปแบบนี้อย่างเต็มที่ รูปภาพจะปรากฏเป็น HDR (I5de50) - เพิ่ม
PhysicalCameraInfo
ในCameraInfo
เพื่อค้นหาข้อมูลกล้องจริง และเพิ่มตัวตั้งค่า/ตัวรับรหัสกล้องจริงในCameraSelector
(Ic5b90) - แทนที่
CameraController#COORDINATE_SYSTEM_VIEW_REFERENCED
ด้วยImageAnalysis#COORDINATE_SYSTEM_VIEW_REFERENCED
ค่าของค่าคงที่จะยังคงเหมือนเดิม ซึ่งใช้เพื่อรวมค่าคงที่ทั้งหมดไว้ในที่เดียว (I890bb) RetryPolicy
API ใหม่ช่วยให้นักพัฒนาแอปปรับแต่งลักษณะการทำงานของการลองใหม่สำหรับการเริ่มต้น CameraX ได้ (I36dd2)- เปิดใช้การสร้างออบเจ็กต์
ImageCaptureLatencyEstimate
เพื่อช่วยในการทดสอบ (Iaba99) - เพิ่ม
ImageAnalysis#COORDINATE_SYSTEM_SENSOR
เมื่อใช้ฟังก์ชันนี้MlKitAnalyzer
จะแสดงพิกัดในระบบพิกัดเซ็นเซอร์กล้อง (I3ec61) - เปิดเผย API ข้อมูลเมตาของส่วนขยาย อินเทอร์เฟซ
CameraExtensionsInfo
และCameraExtensionsControl
ใหม่ช่วยให้แอปพลิเคชันสามารถตรวจสอบและปรับการตั้งค่าความแข็งแรงของส่วนขยายได้ แอปพลิเคชันสามารถรับอินสแตนซ์CameraExtensionsInfo
หรือCameraExtensionsControl
ผ่านเมธอดExtensionsManager#getCameraExtensionsInfo()
หรือExtensionsManager#getCameraExtensionsControl()
ที่เพิ่งเพิ่มเข้ามาใหม่ (I28e1a) - เพิ่ม
ProcessCameraProvider.awaitInstance
ซึ่งเป็นเวอร์ชันที่ระงับของProcessCameraProvider.getInstance
(Ib22b9) - เพิ่ม
PreviewView#getSensorToViewTransform()
API เมทริกซ์แสดงการแปลงจากพิกัดเซ็นเซอร์กล้องเป็นพิกัดของPreviewView
ซึ่งใช้เพื่อแปลงพิกัดจากUseCase
หนึ่งไปยังอีกUseCase
หนึ่งได้ เช่น การแปลงพิกัดของออบเจ็กต์ที่ตรวจพบในImageAnalysis
เป็นภาพซ้อนทับPreviewView
(I947ab) - ทำให้
camera-viewfinder-core
API ทั่วไปมากขึ้นเพื่อให้camera-viewfinder
และcamera-viewfinder-compose
ใช้ได้ (I1e295) - เพิ่มฟังก์ชัน
getSurface
ลงในViewfinderSurfaceRequest
(I781a0) - ใช้
camera-viewfinder-core
ในcamera-viewfinder
และเลิกใช้งานViewfinderSurfaceRequest
และCameraViewfinder
(I6198c) - เพิ่ม
ZoomGestureDetector
ที่ตีความท่าทางการปรับขนาดซึ่งกำหนดค่ามาโดยเฉพาะสำหรับกิจกรรมการบีบนิ้วเพื่อซูม (Ifafbf)
การแก้ไขข้อบกพร่อง
- แก้ไขปัญหาการเลือกความละเอียดของ
ImageAnalysis
ที่เกี่ยวข้องกับการตั้งค่าความละเอียดเป้าหมายเริ่มต้นของเครื่องมือวิเคราะห์ โดยระบบจะเก็บความละเอียดเป้าหมายเป็น 640x480 อย่างไม่ถูกต้อง แม้ว่าแอปพลิเคชันจะตั้งค่าความละเอียดเริ่มต้นของเครื่องมือวิเคราะห์เป็นค่าอื่นก็ตาม หากแอปพลิเคชันพบปัญหานี้ (1.3.0 ~ 1.3.2) และอัปเกรดเพื่อใช้เวอร์ชันที่ใหม่กว่าซึ่งมีวิธีแก้ปัญหาไม่ได้ การตั้งค่าResolutionSelector
โดยตรงด้วยความละเอียดที่ต้องการและAspectRatioStrategy
ที่ตรงกันกับImageAnalysis
UseCase
จะช่วยแก้ปัญหานี้ได้ (I81f72, b/330091012) - แก้ไขปัญหาที่
takePicture
คำขอที่อยู่ในคิวอาจทำงานไม่สำเร็จหากคำขอปัจจุบันไม่สำเร็จ (Ie0801) - ตรวจสอบข้อมูล JPEG ที่ไม่ถูกต้องในอุปกรณ์ Vivo X60 และ X60 Pro ซึ่งจะช่วยแก้ไขปัญหาภาพที่มีขนาดใหญ่ผิดปกติในอุปกรณ์เหล่านี้ได้ (I82247, b/288828159)
- แก้ไขปัญหาข้อมูลเมตาของรูปภาพ JPEG ที่ไม่ถูกต้องในอุปกรณ์ Samsung A24 การแก้ไขนี้ช่วยให้ CameraX บันทึกรูปภาพ JPEG ได้สำเร็จ หรือแสดงผลออบเจ็กต์ Bitmap ที่ถูกต้องเมื่อเรียกใช้ฟังก์ชัน
ImageProxy.toBitmap()
ในอุปกรณ์ Samsung A24 (I8d6eb, b/309005680) - ตรวจสอบข้อมูล JPEG ที่ไม่ถูกต้องในอุปกรณ์ Samsung ทั้งหมดหากรูปภาพที่ถ่ายมีขนาดใหญ่กว่า 10 MB ซึ่งอาจแก้ปัญหาภาพขนาดใหญ่ผิดปกติในอุปกรณ์ Samsung ได้ (Ic2a65, b/288828159)
- นำการรองรับ
ImageAnalysis
ในส่วนขยาย CameraX ออกเนื่องจากการติดตั้งใช้งานส่วนขยายของ OEM หลายรายทำงานร่วมกับImageAnalysis
ได้ไม่ดีและอาจทำให้เกิดปัญหาที่ไม่สอดคล้องกัน (I2d926)
เวอร์ชัน 1.4.0-alpha04
24 มกราคม 2024
androidx.camera:camera-*:1.4.0-alpha04
ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.4.0-alpha04 มีคอมมิตเหล่านี้
ฟีเจอร์ใหม่
- อาร์ติแฟกต์ใหม่: camera-effects: ไลบรารีสำหรับใช้เอฟเฟกต์แบบเรียลไทม์กับเอาต์พุต CameraX ซึ่งรวมถึง
Preview
,VideoCapture
และ/หรือImageCapture
อาร์ติแฟกต์นี้มีการติดตั้งใช้งาน OpenGL ของCameraEffect
API ที่จัดการเอาต์พุตของกล้องได้อย่างมีประสิทธิภาพ OverlayEffect
: สำหรับการวาดภาพซ้อนทับด้วย Canvas API ของ Android ซึ่งจะช่วยให้แอปใช้ลายน้ำหรือไฮไลต์ออบเจ็กต์ที่ตรวจพบบนเอาต์พุตของกล้องได้DynamicRange
API สำหรับกรณีการใช้งานตัวอย่าง: ตอนนี้คุณตั้งค่าช่วงไดนามิกในกรณีการใช้งานตัวอย่างได้แล้วโดยไม่ขึ้นอยู่กับกรณีการใช้งานวิดีโอ ซึ่งจะช่วยให้ใช้ช่วงไดนามิก HDR เช่น HLG10 สำหรับการแสดงตัวอย่างเพียงอย่างเดียวได้ นอกจากนี้ ยังมี API ใหม่ในCameraInfo
สำหรับการค้นหาช่วงไดนามิกที่กล้องแต่ละรุ่นรองรับด้วย
การเปลี่ยนแปลง API
- เปลี่ยนชื่อ
ScreenFlashUiCompleter
เป็นScreenFlashListener
และย้ายScreenFlashUiCompleter#getExpirationTimeMillis
ไปยังพารามิเตอร์expirationTimeMillis
ของScreenFlash#apply
(I13944) - เพิ่ม API ใหม่เพื่อให้ตั้งค่าช่วงไดนามิกในกรณีการใช้งานการแสดงตัวอย่าง และเพื่อค้นหาช่วงไดนามิกที่กล้องแต่ละตัวรองรับ ซึ่งจะช่วยให้ใช้ช่วงไดนามิก HDR เช่น HLG10 กับกรณีการใช้งานการแสดงตัวอย่างเพียงอย่างเดียวได้ โดยไม่ต้องผูก
VideoCapture
พร้อมกันอีกต่อไป (If25e3) - เปลี่ยนชื่อ
getMirroring()
เป็นisMirroring()
(I47063) - เพิ่มการรองรับการประมาณเวลาในการตอบสนองของการจับภาพนิ่งแบบเรียลไทม์ใน CameraX ส่วนขยายกล้องช่วยให้แอปพลิเคชันใช้ API ที่ให้ค่าประมาณระยะเวลาในการจับภาพได้ การประมาณจะพิจารณาถึงสภาพแวดล้อมปัจจุบัน สถานะของกล้อง และรวมถึงเวลาที่ใช้ในการประมวลผลคำขอการจับภาพหลายเฟรม พร้อมกับเวลาเพิ่มเติมสำหรับการเข้ารหัสบัฟเฟอร์ที่ประมวลผลแล้วหากจำเป็น (I05c3a)
- เปลี่ยนชื่อ
ScreenFlashUiControl
เป็นScreenFlash
,ScreenFlashUiControl#applyScreenFlashUi
เป็นScreenFlash#apply
,ScreenFlashUiControl#clearScreenFlashUi
เป็นScreenFlash#clear
และเพิ่มเมธอดgetScreenFlashUiApplyTimeoutSeconds
แทนการแสดงSCREEN_FLASH_UI_APPLY_TIMEOUT_SECONDS
โดยตรง (Iccdd0)
การแก้ไขข้อบกพร่อง
- แก้ไขการรั่วไหลของหน่วยความจำซึ่งส่งผลให้ระบบไม่ปล่อยกิจกรรมหรือ Fragment เมื่อเปิดใช้ส่วนขยาย (I14215)
- แก้ไขปัญหาที่
getZoomRatio
แสดงค่าที่ลดลงอย่างไม่ถูกต้องเมื่อใช้สัดส่วนการซูมที่เพิ่มขึ้น (I4aa0d, b/317543616) - ระบบจะเรียกใช้เหตุการณ์
ImageCapture#ScreenFlash#clear
ทันทีเมื่อเลิกผูกImageCapture
หรือปิดกล้อง รวมถึงแก้ไขข้อบกพร่องบางอย่างที่ไม่มีการเรียกใช้เนื่องจากการจับภาพในสถานการณ์เหล่านี้ไม่เสร็จสมบูรณ์ (If99f9) - แก้ไขข้อขัดข้องที่เกิดขึ้นเมื่อหยุดวงจรการใช้งานก่อนที่
takePicture
คำขอจะเสร็จสมบูรณ์ (Idf017, b/306202751) - แก้ไขปัญหาที่ตัวอย่างกล้องกลายเป็นสีดำเมื่อเปิดใช้ส่วนขยายในอุปกรณ์บางเครื่อง (I1ffd0)
- แก้ไขระยะเวลาการบันทึกวิดีโอที่ไม่ถูกต้องในอุปกรณ์ที่ใช้ Snapdragon 778G SoC (If6aa7, b/316057919)
เวอร์ชัน 1.4.0-alpha03
13 ธันวาคม 2023
androidx.camera:camera-*:1.4.0-alpha03
ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.4.0-alpha03 มีคอมมิตต่อไปนี้
ฟีเจอร์ใหม่
- เพิ่ม
CameraInfo.mustPlayShutterSound
เพื่อระบุข้อมูลว่าต้องเล่นเสียงชัตเตอร์ตามข้อจำกัดระดับภูมิภาคหรือไม่ (Ifda84) - เพิ่ม
OnImageCapturedCallback.onCaptureStarted
และOnImageSavedCallback.onCaptureStarted
สำหรับการแจ้งเตือนเมื่อกล้องเริ่มเปิดรับเฟรม ขอแนะนำให้เล่นเสียงชัตเตอร์หรือภาพเคลื่อนไหวของชัตเตอร์ในขั้นตอนนี้ (Ic49b3) - เพิ่มการรองรับฟีเจอร์แฟลชหน้าจอใน CameraX สำหรับการจับภาพกล้องหน้า CameraX จะจัดการ API ฝั่งเฟรมเวิร์กและซิงค์เวลาให้สอดคล้องกับการเปลี่ยนแปลง UI ของแอปพลิเคชันตามที่จำเป็น (เช่น ทริกเกอร์การจับภาพก่อน AE หลังจากที่แอปเปลี่ยนสี/ความสว่างของหน้าจอ) แอปจะต้องเพิ่มการติดตั้งใช้งานฝั่ง UI ใน
ScreenFlashUiControl
อินเทอร์เฟซที่ให้ไว้กับ CameraX เท่านั้น (I8ae84) - เพิ่มการรองรับการติดตั้งใช้งานฝั่ง UI ของฟีเจอร์แฟลชหน้าจอใน CameraX แอปจะสามารถรับการติดตั้งใช้งาน
ImageCapture.ScreenFlashUiControl
ขั้นพื้นฐานจากPreviewView
หรือScreenFlashView
ที่เพิ่มเข้ามาใหม่ ซึ่งจะเพิ่มมุมมองการซ้อนทับสีเดียวและเพิ่มความสว่างของหน้าจอสูงสุดในระหว่างการจับภาพด้วยแฟลชหน้าจอ (I1810e)
การเปลี่ยนแปลง API
- รองรับฟีเจอร์ส่วนขยายใหม่(ความคืบหน้าของกระบวนการหลังการดูและจับภาพ): เพิ่ม
ImageCapture#getImageCaptureCapabilities()
API สำหรับแอปเพื่อค้นหาความสามารถของความคืบหน้าของกระบวนการหลังการดูและจับภาพ แอปเปิดใช้การดูภายหลังการคลิกได้โดยใช้ImageCapture.Builder#setPostviewEnabled()
คุณเลือกขนาดหลังการดูโฆษณาได้โดยใช้ImageCapture.Builder#setPostviewResolutionSelector()
เมื่อเรียกใช้takePicture()
,onPostviewBitmapAvailable
และonCaptureProcessProgressed
จะนำไปใช้ในOnImageSavedCallback
หรือOnImageCapturedCallback
เพื่อรับการแจ้งเตือนความคืบหน้าของ Postview และกระบวนการได้หากรองรับ (I5cd88) - API สำหรับคำนวณการแปลงพิกัดจากเซ็นเซอร์ไปยังบัฟเฟอร์ปัจจุบัน โดยมีแฟล็กที่ระบุว่า Surface มีข้อมูลการวางแนวกล้องหรือไม่ (I59096)
- เปิดเผย API เพื่อค้นหา
PreviewCapabitlity
ในเวอร์ชันตัวอย่างUseCase
(Ie5b6c) - เพิ่ม API เพื่อรองรับคุณภาพที่มากขึ้นสำหรับ
VideoCapture
Recorder.Builder#setVideoCapabilitiesSource(int)
สามารถใช้กับVIDEO_CAPABILITIES_SOURCE_CODEC_CAPABILITIES
เพื่อสร้างอินสแตนซ์Recorder
ที่รองรับคุณภาพมากกว่าVIDEO_CAPABILITIES_SOURCE_CAMCORDER_PROFILE
กรณีการใช้งานที่พบบ่อยคือเมื่อแอปพลิเคชันพยายามบันทึกวิดีโอ UHD ทุกครั้งที่ทำได้ แต่CamcorderProfile
ของอุปกรณ์ไม่มีการตั้งค่า UHD แม้ว่าตัวแปลงรหัสจะบันทึกวิดีโอ UHD ได้ก็ตาม (Iedbe2, b/263961771) - เพิ่มตัวรับ/ตัวตั้งค่ารูปแบบเอาต์พุต
ImageAnalysis
ลงในCameraController
(I9a96c, b/308240643)
การแก้ไขข้อบกพร่อง
- จากกล้อง
1.3.1
: ปรับปรุงProcessCameraProvider#bindToLifecycle()
ประสิทธิภาพ การเปลี่ยนแปลงที่สำคัญคือการเพิ่มประสิทธิภาพกระบวนการระบุชุดขนาดที่เหมาะสมที่สุดสำหรับUseCases
ผลลัพธ์ที่เหมาะสมที่สุดจะแตกต่างกันไปตามการผสมผสานUseCase
ที่เฉพาะเจาะจงและจำนวนขนาดเอาต์พุตที่รองรับสำหรับอุปกรณ์เป้าหมาย (I454f2) - อนุญาตให้ใช้
VideoCapture
เมื่อเปิดใช้ส่วนขยาย (I91f32) - แก้ไขปัญหาภาพ JPEG ที่ถ่ายขนาดใหญ่ในอุปกรณ์ Samsung A71 และ M51 รูปภาพ JPEG ที่บันทึกไว้มีข้อมูลการเพิ่ม 0 ที่ซ้ำซ้อนในส่วนข้อมูลที่บีบอัด JFIF ซึ่งจะทำให้รูปภาพที่ถ่ายมีขนาดไฟล์ใหญ่มาก ระบบจะนำข้อมูลการเพิ่ม 0 ที่ซ้ำซ้อนออกเพื่อให้รูปภาพที่ถ่ายมีขนาดไฟล์ภาพตามปกติ (I01afc, b/288828159)
- ปิดใช้การรองรับ
ImageAnalysis
ใน Pixel เพื่อหลีกเลี่ยงข้อบกพร่องใน Pixel ที่แสดงขนาดที่รองรับImageAnalysis
ที่ไม่ว่างโดยไม่ตั้งใจ (I7ec31) - แก้ไขปัญหาด้านประสิทธิภาพที่การโหลด CPU และการใช้พลังงานเพิ่มขึ้นเมื่อเปิดใช้ส่วนขยาย (Ibdccb)
- เพิ่ม Snapdragon 480 ลงใน
CameraUseInconsistentTimebaseQuirk
การแก้ไขนี้จะช่วยแก้ปัญหาใน Android 12 สำหรับอุปกรณ์ที่ใช้ชิปเซ็ตนี้ ซึ่งเสียงในไฟล์บันทึกจะช้ากว่าเวลาที่อุปกรณ์อยู่ในสถานะระงับ (I58010)
เวอร์ชัน 1.4.0-alpha02
18 ตุลาคม 2023
androidx.camera:camera-*:1.4.0-alpha02
ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.4.0-alpha02 มีคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- เปลี่ยนชื่อ API เป็น
setCameraOpenRetryMaxTimeoutInMillisWhileResuming
และเปลี่ยนชื่ออาร์กิวเมนต์ (I72370) - เพิ่ม API เพื่อค้นหาความสามารถของอุปกรณ์และเปิดใช้การป้องกันภาพสั่นไหวของวิดีโอ/ตัวอย่าง (I87544)
- ระบุ API เพื่อปรับแต่งระยะหมดเวลาสูงสุดของการลองเปิดกล้องอีกครั้ง (I0c642)
- เปิดตัว
ProcessCameraProvider.shutdownAsync
เป็น API สำหรับการทดสอบแบบสาธารณะเพื่อให้ใช้ผู้ให้บริการกล้องของกระบวนการในชุดทดสอบได้ ซึ่งอาจต้องเริ่มต้น CameraX ในรูปแบบต่างๆ ระหว่างการทดสอบ (I9eca7) - เพิ่ม API สำหรับกำหนดค่าช่วงไดนามิก อัตราเฟรม และโหมดมิเรอร์ของการจับภาพวิดีโอ (Ifb8f7)
- เลิกใช้งาน
OutputSize
และแทนที่ด้วยResolutionSelector
ResolutionSelector
เป็นวิธีที่ครอบคลุมกว่าในการเลือกความละเอียด และสอดคล้องกับ API หลักของกล้อง (I93abd, b/286801438)
การแก้ไขข้อบกพร่อง
- แก้ไขปัญหาตัวอย่างสีดำใน Samsung Galaxy S23 Ultra 5G เมื่อเปิดใช้โบเก้ของส่วนขยายหรือการรีทัชใบหน้าด้วย
ImageAnalysis
ในกล้องหลัง (I2e8b1) - แก้ไขปัญหาการแสดงตัวอย่างและ
VideoCapture
ยืดบน Moto E5 Play (73dce2)
เวอร์ชัน 1.4.0-alpha01
20 กันยายน 2023
androidx.camera:camera-*:1.4.0-alpha01
ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.4.0-alpha01 มีคอมมิตต่อไปนี้
การเปลี่ยนแปลง API
- เพิ่ม API ใหม่เพื่อเข้าถึงข้อมูลแอมพลิจูดของเสียงขณะบันทึก (Id4925)
การแก้ไขข้อบกพร่อง
- ปรับปรุงความเสถียรของส่วนขยายโดยตรวจสอบว่าเหตุการณ์การเริ่มต้นและการเลิกเริ่มต้นทริกเกอร์ตามลำดับที่ถูกต้อง (Ib3b8e)
- แก้ไขการกำหนดค่าเซสชันการจับภาพไม่สำเร็จเนื่องจากเกินชุดค่าผสมของพื้นผิวที่รองรับเนื่องจากการเพิ่มพื้นผิวที่ทำซ้ำเพิ่มเติมภายใน (Id718c)
- แก้ไขปัญหาภาพ JPEG ขนาดใหญ่ที่ถ่ายในอุปกรณ์ Vivo S16 รูปภาพ JPEG ที่บันทึกไว้มีข้อมูลการเพิ่ม 0 ที่ซ้ำซ้อนในส่วนข้อมูลที่บีบอัด JFIF ซึ่งจะทำให้รูปภาพที่ถ่ายมีขนาดไฟล์ใหญ่ ระบบจะนำข้อมูลการเพิ่ม 0 ที่ซ้ำซ้อนออกเพื่อให้รูปภาพที่ถ่ายมีขนาดไฟล์ภาพตามปกติ (I79505, b/299069235)
- แก้ไขปัญหาที่
ImageAnalysis
ผูกกับImageCapture
และตัวอย่างไม่ได้เมื่อเปิดใช้โหมดส่วนขยายบางโหมดในอุปกรณ์บางเครื่อง การแก้ไขจะแสดงค่าที่ถูกต้องเมื่อแอปค้นหาImageAnalysis
ความพร้อมจำหน่ายผ่านExtensionsManager#isImageAnalysisSupported()
(I7d538) - อัปเดต JavaDoc ให้ตรงกับลักษณะการทำงาน
#setZoomRatio
,#setLinearZoom
และ#enableTorch
จะรอจนกว่ากล้องจะพร้อมแทนที่จะดำเนินการให้เสร็จสมบูรณ์ทันที นอกจากนี้ ยังได้เพิ่มข้อมูลเกี่ยวกับวิธีรับ FOV สูงสุดด้วย#takePicture
API (I23588)
เวอร์ชัน 1.3
เวอร์ชัน 1.3.4
12 มิถุนายน 2024
androidx.camera:camera-*:1.3.4
ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.3.4 มีการเปลี่ยนแปลงเหล่านี้
การแก้ไขข้อบกพร่อง
- แก้ไขปัญหาที่
getZoomRatio
แสดงค่าที่ลดลงอย่างไม่ถูกต้องเมื่อใช้สัดส่วนการซูมที่เพิ่มขึ้น (I4aa0d, b/317543616) - แก้ไขการจับภาพนิ่ง/แตะเพื่อโฟกัสที่ไม่ได้ใช้ค่า FPS/โหมดการป้องกันภาพสั่นของคำขอที่ทำซ้ำ ซึ่งอาจสร้างเซสชันการจับภาพใหม่และทำให้เกิดปัญหาด้านเวลาในการตอบสนองหรือการหยุดแสดงตัวอย่างในอุปกรณ์บางรุ่น (I7dc0b)
- แก้ไขปัญหาที่ระบบตั้งค่าอัตราเฟรมให้ต่ำลงเมื่อโทร
setTargetFrameRate
ด้วยFRAME_RATE_RANGE_UNSPECIFIED
(I78c61)
เวอร์ชัน 1.3.3
17 เมษายน 2024
androidx.camera:camera-*:1.3.3
ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.3.3 มีการเปลี่ยนแปลงเหล่านี้
การแก้ไขข้อบกพร่อง
- แก้ไขปัญหาการเลือกความละเอียดของ
ImageAnalysis
ที่เกี่ยวข้องกับการตั้งค่าความละเอียดเป้าหมายเริ่มต้นของเครื่องมือวิเคราะห์ โดยระบบจะเก็บความละเอียดเป้าหมายเป็น 640x480 อย่างไม่ถูกต้อง แม้ว่าแอปพลิเคชันจะตั้งค่าความละเอียดเริ่มต้นของเครื่องมือวิเคราะห์เป็นค่าอื่นก็ตาม หากแอปพลิเคชันพบปัญหานี้ (1.3.0 ~ 1.3.2) และอัปเกรดเพื่อใช้เวอร์ชันที่ใหม่กว่าซึ่งมีวิธีแก้ปัญหาไม่ได้ การตั้งค่าResolutionSelector
โดยตรงด้วยความละเอียดที่ต้องการและAspectRatioStrategy
ที่ตรงกันกับImageAnalysis
UseCase จะช่วยแก้ปัญหานี้ได้ (I81f72, b/330091012)
เวอร์ชัน 1.3.2
6 มีนาคม 2024
androidx.camera:camera-*:1.3.2
ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.3.2 มีการเปลี่ยนแปลงเหล่านี้
การแก้ไขข้อบกพร่อง
- แก้ไขปัญหาข้อมูลเมตา JPEG ในอุปกรณ์ Samsung A24 ตอนนี้ CameraX จะบันทึกรูปภาพได้อย่างถูกต้อง และฟังก์ชัน
ImageProxy.toBitmap()
จะแสดงผลออบเจ็กต์บิตแมปที่ถูกต้อง (I8d6eb, b/309005680) - นำตัวเลือกความละเอียด 9280x6944 ในอุปกรณ์ Redmi Note 9 Pro ออกเนื่องจากปัญหา (Ia23da)
เวอร์ชัน 1.3.1
13 ธันวาคม 2023
androidx.camera:camera-*:1.3.1
ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.3.1 มีคอมมิตเหล่านี้
การแก้ไขข้อบกพร่อง
ปรับปรุงProcessCameraProvider#bindToLifecycle()
ประสิทธิภาพ การเปลี่ยนแปลงที่สำคัญคือการเพิ่มประสิทธิภาพกระบวนการระบุชุดขนาดที่เหมาะสมที่สุดสำหรับ UseCases
ผลลัพธ์ที่เหมาะสมที่สุดจะแตกต่างกันไปตามการผสมผสาน UseCase
ที่เฉพาะเจาะจงและจำนวนขนาดเอาต์พุตที่รองรับสำหรับอุปกรณ์เป้าหมาย (I454f2)
ต่อไปนี้คือผลลัพธ์อ้างอิงสำหรับสถานการณ์ต่างๆ
สี่
UseCases
:Preview
+ImageCapture
+ImageAnalysis
+VideoCapture
- Google Pixel 7: ประมาณ 430 มิลลิวินาทีถึง 60 มิลลิวินาที
- Samsung Galaxy S23 Ultra: ประมาณ 540 มิลลิวินาทีถึง 45 มิลลิวินาที
- Samsung A53 5G: ประมาณ 115 มิลลิวินาทีถึง 70 มิลลิวินาที
UseCases
สามตัว:Preview
+ImageCapture
+ImageAnalysis
- Google Pixel 7: ประมาณ 9 มิลลิวินาทีถึง 7 มิลลิวินาที
- Samsung Galaxy S23 Ultra: ประมาณ 6 มิลลิวินาทีถึง 5 มิลลิวินาที
- Samsung A53 5G: ประมาณ 32 มิลลิวินาทีถึง 12 มิลลิวินาที
เพิ่ม Snapdragon 480 ลงใน
CameraUseInconsistentTimebaseQuirk
การแก้ไขนี้จะช่วยแก้ปัญหาใน Android 12 สำหรับอุปกรณ์ที่ใช้ชิปเซ็ตนี้ ซึ่งเสียงในไฟล์บันทึกจะช้ากว่าเวลาที่อุปกรณ์อยู่ในสถานะระงับ (I58010)
เวอร์ชัน 1.3.0
18 ตุลาคม 2023
androidx.camera:camera-*:1.3.0
ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.3.0 มีคอมมิตเหล่านี้
การเปลี่ยนแปลงที่สำคัญตั้งแต่เวอร์ชัน 1.2.0
- ฟีเจอร์วิดีโอ ได้แก่ HDR 10 บิต ครอบตัด มิเรอร์/ไม่มิเรอร์ ปิด/เปิดเสียง ตั้งค่าอัตราเฟรม และอื่นๆ
- กล้องคู่พร้อมกัน
- คลังเอฟเฟกต์
- ตัวเลือกความละเอียด
- การเลือกกล้องอัลตราไวด์และกล้องเทเลสโคป
- การสลับกล้องขณะบันทึกวิดีโอ (ฟีเจอร์เวอร์ชันทดลอง)
เวอร์ชัน 1.3.0-rc02
20 กันยายน 2023
androidx.camera:camera-*:1.3.0-rc02
ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.3.0-rc02 มีคอมมิตต่อไปนี้
การแก้ไขข้อบกพร่อง
- ปรับปรุงความเสถียรของส่วนขยายโดยตรวจสอบว่าเหตุการณ์การเริ่มต้นและการเลิกเริ่มต้นทริกเกอร์ตามลำดับที่ถูกต้อง การแก้ไขนี้ช่วยแก้ปัญหาการแสดงตัวอย่างสีดำบางอย่างเมื่อเปลี่ยนโหมดส่วนขยายหรือเปลี่ยนกล้อง (Iddaac)
- แก้ไขปัญหาที่
ImageAnalysis
ผูกกับImageCapture
และตัวอย่างไม่ได้เมื่อเปิดใช้โหมดส่วนขยายบางโหมดในอุปกรณ์บางเครื่อง การแก้ไขจะแสดงค่าที่ถูกต้องเมื่อแอปค้นหาImageAnalysis
ความพร้อมจำหน่ายผ่านExtensionsManager#isImageAnalysisSupported()
(I7d538) - แก้ไขปัญหาที่เสียงและวิดีโอที่บันทึกไว้ไม่ซิงค์กันเมื่อเปิดใช้โหมดการมิเรอร์ใน Xiaomi Poco X3 NFC (I20b4c)
เวอร์ชัน 1.3.0-rc01
23 สิงหาคม 2023
androidx.camera:camera-*:1.3.0-rc01
ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.3.0-rc01 มีคอมมิตต่อไปนี้
การเปลี่ยนแปลง API
- เพิ่ม
PendingRecording.asPersistentRecording
เพื่ออนุญาตให้บันทึกอย่างต่อเนื่องขณะที่VideoCapture
ที่ติดอยู่กับโปรแกรมอัดเสียงถูกผูกใหม่ (I517c6)
การแก้ไขข้อบกพร่อง
- แก้ไขการขัดข้องเมื่อแชร์สตรีมกับทั้ง
VideoCapture
และเวอร์ชันตัวอย่าง นอกจากนี้ เรายังแก้ไขปัญหาหน้าจอสีดำในอุปกรณ์รุ่นเดิมเมื่อเปิดใช้การแชร์สตรีมด้วย - แก้ไขปัญหาภาพ JPEG ขนาดใหญ่ที่ถ่ายในอุปกรณ์ซีรีส์ Samsung S7 (SM-G930T, SM-G930V) รูปภาพ JPEG ที่บันทึกไว้มีข้อมูลการเพิ่ม 0 ที่ซ้ำซ้อนในส่วนข้อมูลที่บีบอัด JFIF ซึ่งจะทำให้รูปภาพที่ถ่ายมีขนาดไฟล์ใหญ่ ระบบจะนำข้อมูลการเพิ่ม 0 ที่ซ้ำซ้อนออกเพื่อให้รูปภาพที่ถ่ายมีขนาดไฟล์ภาพตามปกติ (I407b0, b/288828159)
- แก้ไขปัญหาภาพ JPEG ขนาดใหญ่ที่ถ่ายในอุปกรณ์ซีรีส์ Samsung S22 (SM-S901B, SM-S901B/DS) และ S22+ (SM-S906B) รูปภาพ JPEG ที่บันทึกไว้มีข้อมูลการเพิ่ม 0 ที่ซ้ำซ้อนในส่วนข้อมูลที่บีบอัด JFIF ซึ่งทำให้รูปภาพที่ถ่ายมีขนาดไฟล์ใหญ่ประมาณ 13 MB ในอุปกรณ์ S22 SM-S901B/DS ระบบจะนำข้อมูลการเพิ่ม 0 ที่ซ้ำซ้อนออกเพื่อให้รูปภาพที่ถ่ายมีขนาดไฟล์ภาพตามปกติ (I73be9, b/288828159)
- แก้ไขปัญหาภาพ JPEG ขนาดใหญ่ที่ถ่ายในอุปกรณ์ซีรีส์ Samsung A5, A52, A70 และ A72 รูปภาพ JPEG ที่บันทึกไว้มีข้อมูลการเพิ่ม 0 ที่ซ้ำซ้อนในส่วนข้อมูลที่บีบอัด JFIF ซึ่งจะทำให้รูปภาพที่ถ่ายมีขนาดไฟล์ใหญ่มาก (เช่น ประมาณ 32 MB หรือ 96 MB) ระบบจะนำข้อมูลการเพิ่ม 0 ที่ซ้ำซ้อนออกเพื่อให้รูปภาพที่ถ่ายมีขนาดไฟล์ภาพตามปกติ (I97c4d, b/288828159)
- แก้ไขข้อขัดข้องของเนทีฟเมื่อถ่ายภาพโดยเปิดใช้ส่วนขยาย (I698f5)
เวอร์ชัน 1.3.0-beta02
26 กรกฎาคม 2023
androidx.camera:camera-*:1.3.0-beta02
ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.3.0-beta02 มีคอมมิตเหล่านี้
การแก้ไขข้อบกพร่อง
- ใช้ไฟฉายเป็นแฟลชสำหรับ Pixel 4 และ 5 เพื่อปรับปรุงคุณภาพการจับภาพในที่แสงน้อย (I56ff5, b/280221967)
- แก้ไขปัญหารูปภาพ JPEG ขนาดใหญ่ที่ถ่ายในอุปกรณ์ Samsung A5 (2017) รูปภาพ JPEG ที่บันทึกไว้มีข้อมูลการเพิ่ม 0 ที่ซ้ำซ้อนในส่วนข้อมูลที่บีบอัด JFIF ซึ่งจะทำให้รูปภาพที่ถ่ายมีขนาดไฟล์ประมาณ 32 MB ระบบจะนำข้อมูลการเพิ่ม 0 ที่ซ้ำซ้อนออกเพื่อให้รูปภาพที่ถ่ายมีขนาดไฟล์ภาพตามปกติ (I29837, b/288828159)
- แก้ไขการลองใหม่ที่ทริกเกอร์ไม่ถูกต้องในกรณีที่การจับภาพล้มเหลวในอุปกรณ์ที่มีปัญหาที่กล่าวถึงใน
CaptureFailedRetryQuirk
(I7b589)
เวอร์ชัน 1.3.0-beta01
21 มิถุนายน 2023
androidx.camera:camera-*:1.3.0-beta01
ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.3.0-beta01 มีคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- เปลี่ยนชื่อฟังก์ชัน
ResolutionSelector.Builder#setHighResolutionEnabledFlag(int)
เป็นsetAllowedResolutionMode
และเปลี่ยนชื่อค่าคงที่ResolutionSelector#HIGH_RESOLUTION_FLAG_OFF
/ON
เป็นPREFER_CAPTURE_RATE_OVER_HIGHER_RESOLUTION
/PREFER_HIGHER_RESOLUTION_OVER_CAPTURE_RATE
(If84e8) - นำ API
ImageAnalysis.setTargetRotationDegrees(int)
,ImageCapture.setTargetRotationDegrees(int)
และVideoCapture.setTargetRotationDegrees(int)
ที่เลิกใช้งานแล้วออก (Id8e77) DynamicRange
คลาสแสดงช่วงไดนามิกของรูปภาพ ใช้เพื่อเลือกรูปแบบ High Dynamic Range เป็นเอาต์พุตของVideoCapture
ถึงVideoCapture.Builder#setDynamicRange()
ได้ (Ib0377)- เพิ่ม
isImageAnalysisSupported
API ลงในExtensionsManager
ซึ่งแอปสามารถระบุได้ว่าImageAnalysis
กรณีการใช้งานสามารถเชื่อมโยงกับตัวอย่างและImageCapture
ได้หรือไม่เมื่อเปิดใช้ส่วนขยาย (I1bc63) VideoCapabilities
คลาสใหม่ที่ได้จากRecorder
สามารถใช้เพื่อค้นหาช่วงไดนามิกและคุณภาพที่รองรับสำหรับการบันทึกวิดีโอบนอุปกรณ์ได้ เรากำลังจะเลิกใช้งานเมธอดgetSupportedQualities()
และisQualitySupported()
ของQualitySelector
โปรดใช้วิธีการgetSupportedQualities()
และisQualitySupported()
ของVideoCapabilities
แทน (I04014)CameraController#setVideoCaptureTargetQuality()
เปลี่ยนชื่อเป็นsetVideoCaptureQualitySelector
และรับอาร์กิวเมนต์QualitySelector
ซึ่งช่วยให้ตั้งค่าคุณภาพวิดีโอได้ยืดหยุ่นมากขึ้นCameraController#getVideoCaptureTargetQuality()
จะเปลี่ยนเป็นgetVideoCaptureQualitySelector
ตามนั้น (I520ed)- นำคำอธิบายประกอบเวอร์ชันทดลองสำหรับฟีเจอร์วิดีโอออกแล้ว ตอนนี้ฟีเจอร์วิดีโอเสถียรแล้ว (I1a113)
การแก้ไขข้อบกพร่อง
- ใช้ไฟฉายเป็นแฟลชในรุ่น Samsung SM-A320 เพื่อปรับปรุงความเร็วและคุณภาพของรูปภาพที่ถ่ายในสภาวะแสงน้อย (I6a022, b/286190938)
- เพิ่มการรองรับรูปแบบ
ImageFormat.JPEG
สำหรับImageProxy.toBitmap()
หากถอดรหัสอาร์เรย์ไบต์ JPEG ไม่ได้ ระบบจะแสดงUnsupportedOperationException
(I81958, b/282057603)
เวอร์ชัน 1.3.0-alpha07
24 พฤษภาคม 2023
androidx.camera:camera-*:1.3.0-alpha07
ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.3.0-alpha07 มีคอมมิตเหล่านี้
ฟีเจอร์ใหม่
VideoCapture.Builder# setTargetFrameRate(Range)
API ใหม่ช่วยให้บันทึกวิดีโอที่อัตราเฟรมอื่นๆ นอกเหนือจากค่าเริ่มต้นของอุปกรณ์ได้ คุณค้นหาอัตราเฟรมที่ใช้ได้สำหรับการบันทึกได้ผ่านCameraInfo#getSupportedFrameRates()
API ใหม่
การเปลี่ยนแปลง API
- เปลี่ยนชื่อค่าคงที่
ResolutionSelector#HIGH_RESOLUTION_FLAG_OFF
/ON
เป็นALLOWED_RESOLUTIONS_NORMAL
/SLOW
และเปลี่ยนชื่อฟังก์ชันตัวสร้างsetHighResolutionEnabledFlag
เป็นsetAllowedResolutionMode
(Iae817) CameraInfo#getSupportedFrameRateRanges()
จะแสดงSet
แทนList
เพื่อแสดงให้เห็นว่าช่วงต่างๆ ไม่ได้เรียงตามลำดับ (I02f43)- เพิ่มเครื่องมือฟังข้อผิดพลาดลงใน
CameraEffect
เพื่อจัดการข้อผิดพลาดที่กู้คืนไม่ได้ (Ice471) - เพิ่มตัวสร้างสาธารณะใน
ResolutionInfo
เพื่อให้ทดสอบได้ดียิ่งขึ้น (If6d1c) - จัดเตรียม API
UseCase.snapToSurfaceRotation(int)
เพื่อแทนที่การใช้งานsetTargetRotationDegrees
และเลิกใช้งาน APIImageAnalysis.setTargetRotationDegrees(int)
,ImageCapture.setTargetRotationDegrees(int)
และVideoCapture.setTargetRotationDegrees(int)
(Ia9010) - เพิ่ม API ใหม่
Preview#getTargetFrameRate
และPreview.Builder#setTargetFrameRate
เพื่อให้ตั้งค่าและเรียกข้อมูลอัตราเฟรมเป้าหมายสำหรับ Use Case ของการแสดงตัวอย่างได้ (If4f22) VideoRecordEvent.Finalize
จะเสร็จสมบูรณ์พร้อมรหัสข้อผิดพลาดERROR_RECORDING_GARBAGE_COLLECTED
เมื่อหยุดออบเจ็กต์Recording
เนื่องจากการเก็บขยะ (Iba974)
การแก้ไขข้อบกพร่อง
- แก้ไข
NullPointerException
เมื่อขนาดเอาต์พุตที่แคชไว้ในStreamConfigurationMapCompat
เป็น Null (Idf124, b/282025204) - แก้ไขปัญหาที่
Preview.setSurfaceProvider(null)
ไม่หยุดการแสดงตัวอย่างชั่วคราวในส่วนขยาย (Ia903e) - แก้ไขปัญหาที่ทำให้เกิด
ConcurrentModificationException
ระหว่างการเปิดกล้องเมื่อมีการเชื่อมโยงVideoCapture
(Ic8ac4)
เวอร์ชัน 1.3.0-alpha06
19 เมษายน 2023
androidx.camera:camera-*:1.3.0-alpha06
ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.3.0-alpha06 มีคอมมิตต่อไปนี้
ฟีเจอร์ใหม่
- กล้องพร้อมกันเป็นฟีเจอร์ใหม่ที่เปิดตัวตั้งแต่ Android 11 ซึ่งรองรับการสตรีมอุปกรณ์กล้องพร้อมกัน เช่น ช่วยให้อุปกรณ์มีทั้งกล้องหน้าและกล้องหลังที่ทำงานพร้อมกันได้ ขณะนี้ CameraX รองรับเฉพาะกล้องคู่ที่ทำงานพร้อมกัน ซึ่งช่วยให้กล้อง 2 ตัวทำงานพร้อมกันได้ โดยมี {@link UseCase} อย่างมาก 2 รายการที่เชื่อมโยงกับกล้องแต่ละตัว ความละเอียดสูงสุดคือ 720p หรือ 1440p ดูรายละเอียดเพิ่มเติมได้ที่ลิงก์ต่อไปนี้ CameraManager#getConcurrentCameraIds()
- ขอแนะนำ
ResolutionSelector
API ใหม่ซึ่งครอบคลุมฟีเจอร์ต่อไปนี้- แอปพลิเคชันสามารถระบุกลยุทธ์ด้านสัดส่วนภาพและความละเอียดเพื่อเลือกความละเอียดที่ดีที่สุดตามความต้องการของตนได้
- พารามิเตอร์ขนาดและสัดส่วนภาพทั้งหมดจะแสดงในพิกัดของเซ็นเซอร์อุปกรณ์กล้อง
- แอปพลิเคชันสามารถใช้ตัวกรองความละเอียดที่กำหนดเองเพื่อจัดเรียงขนาดที่รองรับตามลำดับที่ต้องการ
- นอกจากนี้ แอปพลิเคชันยังเปิดใช้การจับภาพความละเอียดสูงเพื่อรับรูปภาพที่มีความละเอียดสูงขึ้นได้ด้วย อย่างไรก็ตาม โปรดทราบว่าการใช้ความละเอียดสูงอาจทำให้เวลาในการจับภาพช้าลง
- เพิ่ม API การมิเรอร์
VideoCapture
แล้วVideoCapture
จะไม่บันทึกวิดีโอแบบมิเรอร์โดยค่าเริ่มต้น อย่างไรก็ตาม ตัวอย่างกล้องจะปรับให้เหมือนภาพในกระจกในกล้องหน้าโดยค่าเริ่มต้นVideoCapture
API การมิเรอร์ช่วยให้จัดแนวกับการแสดงตัวอย่างกล้องได้เมื่อใช้กล้องหน้า มีMirrorMode
,OFF
,ON
และON_FRONT_ONLY
หากต้องการจัดแนวให้ตรงกับการแสดงตัวอย่างกล้อง ขอแนะนำให้ใช้ON_FRONT_ONLY
ซึ่งหมายความว่าระบบจะไม่ได้เปิดใช้การมิเรอร์สำหรับกล้องหลัง แต่จะเปิดใช้สำหรับกล้องหน้า
การเปลี่ยนแปลง API
- เปิดตัว
ResolutionSelector
API ใหม่ แอปพลิเคชันสามารถระบุกลยุทธ์สัดส่วนภาพและความละเอียดด้วยกฎการสำรองหรือตัวกรองความละเอียดที่กำหนดเองเพื่อให้ได้ผลลัพธ์ที่ต้องการ แอปพลิเคชันสามารถระบุ Flag เพื่อเปิดใช้การจับภาพความละเอียดสูงได้ ซึ่งจะช่วยให้ CameraX เลือกความละเอียดที่สูงขึ้นได้เมื่อถ่ายรูปภาพหรือวิดีโอ อย่างไรก็ตาม โปรดทราบว่าการใช้ความละเอียดสูงอาจทำให้เวลาในการจับภาพช้าลง (Ibed95) - ตอนนี้คุณสามารถค้นหาช่วง FPS ที่อัลกอริทึม AE รองรับได้ผ่าน
CameraInfo#getSupportedFrameRateRanges()
(Iaa67f) - รวมชื่อของวิธีการอัตราเฟรมทั้งหมดให้ใช้ "FrameRate" แก้ไขข้อผิดพลาดของ Javadoc ใน
VideoCapture#getTargetFrameRate()
(I83304) - เลิกใช้งาน
setTargetAspectRatio
และsetTargetResolution
API เดิม โปรดใช้ResolutionSelector
API ใหม่แทน (I542c3) - เพิ่ม API สาธารณะสำหรับกล้องคู่พร้อมกัน ซึ่งรวมถึง
List<List<CameraInfo>> getAvailableConcurrentCameraInfos()
ConcurrentCamera bindToLifecycle(@NonNull ConcurrentCameraConfig concurrentCameraConfig)
boolean isConcurrentCameraModeOn()
และConcurrentCameraConfig
,SingleCameraConfig
และConcurrentCamera
(Iab1c1)
- Make
ImageProcessor.Response#getOutputImage
NonNull (Ib9c60) - เพิ่ม API การมิเรอร์
VideoCapture
ซึ่งรวมถึงVideoCapture.Builder.setMirrorMode(int)
และVideoCapture.getMirrorMode()
API เหล่านี้มีประโยชน์สำหรับแอปพลิเคชันที่ต้องการให้การบันทึกวิดีโอสอดคล้องกับลักษณะการทำงานของพรีวิวกล้องทั่วไป กล่าวคือ พรีวิวกล้องหลังจะไม่กลับด้าน แต่พรีวิวกล้องหน้าจะกลับด้าน (I713b6, b/194634656) - เพิ่ม
setTargetFrameRate()
API ในVideoCapture.Builder
และgetTargetFramerate()
API ในVideoCapture
(I109d4) - ทำให้
SurfaceOutput
ขยาย Closable และซ่อนตัวสร้างสาธารณะของ SurfaceOutput.Event
(I60ea8) - เพิ่ม
Recording.mute
เพื่อปิดหรือเปิดเสียงการบันทึกที่กำลังประมวลผลแบบไดนามิกRecordingStats
จะมีAudioStats.AUDIO_STATE_MUTED
เมื่อปิดเสียงการบันทึกที่กำลังประมวลผลอย่างชัดเจน (Ie17fc) - ทำให้พารามิเตอร์
#setEffects()
ไม่เป็นค่าว่าง เพิ่ม#clearEffects()
API สำหรับล้างเอฟเฟกต์ แอปควรเรียกใช้#clearEffects()
เพื่อนำเอฟเฟกต์ออก (I4b4d9) - เพิ่มตัวสร้างที่ 2 สำหรับ
ViewfinderSurfaceRequest.Builder
เพื่อใช้ตัวสร้างสำหรับตัวสร้างสำเนา (I621a7)
การแก้ไขข้อบกพร่อง
- แก้ไขปัญหาที่แอปที่เรียกใช้ Extensions API อาจขัดข้องเมื่อปิดกล้อง (Ib27e5)
- แก้ไขปัญหาที่
VideoCapture
ใช้กับกล้องหน้าในอุปกรณ์บางรุ่นไม่ได้ เช่น ใน Samsung Galaxy S23 และ Xiaomi 2107113SG (Ibec7e, b/270656244) - แก้ไขปัญหาที่การถ่ายรูปโดยใช้ไฟล์ในโฟลเดอร์สาธารณะของที่เก็บข้อมูลภายนอกจะล้มเหลวเสมอใน Android 10 ขึ้นไป โปรดทราบว่าใน Android 10 การถ่ายภาพโดยใช้ไฟล์ในโฟลเดอร์สาธารณะของที่เก็บข้อมูลภายนอกยังต้องตั้งค่า
requestLegacyExternalStorage
เป็น true ในแท็กแอปพลิเคชันด้วย (I11b2c) - แก้ไขการขัดข้องของ
RejectedExecutionException
ในDefaultSurfaceProcessor
ข้อขัดข้องอาจเกิดขึ้นเมื่อVideoCapture
เชื่อมโยงอยู่และกิจกรรมหยุดชั่วคราว (Idb46a, b/273713906)
เวอร์ชัน 1.3.0-alpha05
22 มีนาคม 2023
androidx.camera:camera-*:1.3.0-alpha05
ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.3.0-alpha05 มีคอมมิตต่อไปนี้
การเปลี่ยนแปลง API
- เพิ่ม API การหมุนเวียน
VideoCapture
ซึ่งรวมถึงVideoCapture.Builder.setTargetRotation(int)
,VideoCapture.setTargetRotation(int)
,VideoCapture.setTargetRotationDegrees(int)
และVideoCapture.getTargetRotation()
API เหล่านี้มีประโยชน์สำหรับแอปพลิเคชันที่ล็อกการวางแนวอุปกรณ์ นอกจากนี้ยังเพิ่มImageCapture.setTargetRotationDegrees(int)
และImageAnalysis.setTargetRotationDegrees(int)
ด้วย (Id3ffe, b/205242781) - อนุญาตให้ใช้
VIDEO_CAPTURE
และPREVIEW|VIDEO_CAPTURE
เป็นเป้าหมายของเอฟเฟกต์ ระบบจะใช้เอฟเฟกต์ที่กำหนดเป้าหมายเป็นVIDEO_CAPTURE
กับVideoCapture
UseCase และจะใช้เอฟเฟกต์ที่กำหนดเป้าหมายเป็นPREVIEW|VIDEO_CAPTURE
กับสตรีมที่แชร์ก่อนที่จะคัดลอกไปยังสตรีมตัวอย่างและVideoCapture
(Iee6f3)
การแก้ไขข้อบกพร่อง
- จากกล้อง
1.2.2
: แก้ปัญหาที่ส่วนขยาย CameraX ทำงานไม่ถูกต้องเมื่อเปิดใช้ ProGuard ในอุปกรณ์บางรุ่น เช่น Pixel (I90aa2) - แก้ไข
PreviewView
ข้อบกพร่องที่ว่าหากแอปจัดการการวางแนวหน้าจอด้วยตัวเอง ตัวอย่างอาจบิดเบี้ยวเมื่อหมุน โดยปัญหานี้จะเกิดขึ้นในอุปกรณ์บางรุ่นเท่านั้น โดยสามารถจำลองได้ใน Pixel 4a, Pixel 5 และ Pixel 6a (I14340, b/223488673)
เวอร์ชัน 1.3.0-alpha04
22 กุมภาพันธ์ 2023
androidx.camera:camera-*:1.3.0-alpha04
ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.3.0-alpha04 มีคอมมิตต่อไปนี้
ฟีเจอร์ใหม่
ฟีเจอร์ใหม่ที่รองรับการผสมผสาน Surface ที่ก่อนหน้านี้ไม่รองรับด้วยการแชร์สตรีมเดียวไปยัง UseCase หลายรายการ
- ก่อนหน้านี้ เมื่อเชื่อมโยง "Preview, VideoCapture, ImageAnalysis" ในระดับฮาร์ดแวร์ของกล้องเป็น FULL และต่ำกว่า หรือเชื่อมโยง "Preview, VideoCapture, ImageCapture" ในระดับฮาร์ดแวร์เป็น LEGACY แล้ว CameraX จะแสดง
IllegalArgumentException
- ลักษณะการทำงานใหม่คือการเชื่อมโยงจะทำงานได้โดยไม่ต้องส่งข้อยกเว้น แต่ CameraX จะใช้ OpenGL เพื่อคัดลอกสตรีมที่แชร์ไปยังทั้ง Preview และ VideoCapture
- เนื่องจากเป็นค่าใช้จ่ายของสำเนาบัฟเฟอร์ แอปจึงอาจพบว่าเวลาในการตอบสนองและการใช้พลังงานเพิ่มขึ้น
การเปลี่ยนแปลง API
- เพิ่ม API เพื่อแปลง
ImageProxy
เป็นBitmap
รูปแบบImageProxy
ที่รองรับคือImageFormat.YUV_420_888
และPixelFormat.RGBA_8888
หากรูปแบบไม่ถูกต้อง ระบบจะแสดงIllegalArgumentException
(Ic7110) - เพิ่ม
CoroutineCameraViewfinder
เพื่อรองรับการกำหนดค่าช่องมองภาพโดยใช้ฟังก์ชันระงับใน Kotlin (I657bc) - เพิ่มตัวสร้างสาธารณะใหม่สำหรับ
ViewfinderSurfaceRequest
ซึ่งจะช่วยให้มีความยืดหยุ่นในกรณีที่ผู้ใช้ไม่สามารถระบุCameraCharacteristics
ได้ (Ie6549)
การแก้ไขข้อบกพร่อง
- แก้ไขข้อขัดข้องของส่วนขยายที่เกิดขึ้นในอุปกรณ์ Samsung บางรุ่นเมื่อหยุดชั่วคราว/กลับมาใช้แอปต่อเร็วเกินไป (Iaca26)
เวอร์ชัน 1.3.0-alpha03
25 มกราคม 2023
androidx.camera:camera-*:1.3.0-alpha03
ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.3.0-alpha03 มีคอมมิตต่อไปนี้
การเปลี่ยนแปลง API
- เพิ่ม
CameraInfo.getIntrinsicZoomRatio
เพื่อให้ข้อมูลมุมมองที่สัมพันธ์กับกล้องเริ่มต้น (Ib300c) - เพิ่ม
CameraInfo.getLensFacing
เพื่อให้ข้อมูลเกี่ยวกับเลนส์ เพิ่มCameraSelector#LENS_FACING_EXTERNAL
เป็นฟีเจอร์ทดลองสำหรับเลือกกล้องภายนอก (Icaf3e) - เพิ่ม
#setEffect()
ลงในCameraController
ที่อนุญาตให้เพิ่มเอฟเฟกต์ลงในเอาต์พุตของกล้อง (I1d21f) - เพิ่มวิธีการ
invalidate()
ลงในSurfaceRequest
ผู้ให้บริการ Surface สามารถแจ้งให้ทราบว่า Surface ที่ระบุไว้ก่อนหน้านี้ไม่ถูกต้องอีกต่อไป (Idc649) - เพิ่ม
ImageProcessor
API อินเทอร์เฟซนี้ใช้สำหรับแทรกเอฟเฟ็กต์หลังการประมวลผลลงในไปป์ไลน์ImageCapture
(I575c6) - เพิ่ม API
Recorder.Builder.setAspectRatio()
ซึ่งใช้ร่วมกับQualitySelector
เพื่อรองรับความละเอียดของวิดีโอได้มากขึ้น (I8a082) - เพิ่ม
Recorder.Builder#setTargetVideoEncodingBitRate
เพื่อตั้งค่าการเข้ารหัสวิดีโอเป้าหมายBitRate
และRecorder#getTargetVideoEncodingBitRate
เพื่อรับอัตราบิตของการเข้ารหัสวิดีโอเป้าหมาย (I5984d)
การแก้ไขข้อบกพร่อง
- แก้ไขปัญหา
ImageCapture
ไม่สำเร็จเมื่อไม่มีแฟลชและเปิดโหมดแฟลช (I9e8b4, b/263391112) - แก้ไขปัญหาภาพ JPEG เสียหายหากเขียนข้อมูลตำแหน่ง Exif ในอุปกรณ์ Samsung Android 12 บางรุ่น (Ib7086, b/263747161, b/263289024)
- เมื่อตั้งค่าไฟฉาย/การซูมก่อนที่การเริ่มต้นกล้องจะเสร็จสมบูรณ์ เช่น การเรียกใช้
CameraController#enableTorch
ระบบจะแคชการดำเนินการที่รอดำเนินการและส่งเมื่อการเริ่มต้นเสร็จสมบูรณ์ (I11e92, b/264157663)
เวอร์ชัน 1.3.0-alpha02
7 ธันวาคม 2022
androidx.camera:camera-*:1.3.0-alpha02
ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.3.0-alpha02 มีคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- เพิ่ม API ใหม่สำหรับการใช้เอฟเฟกต์หลังการประมวลผลกับเอาต์พุตตัวอย่าง (Ic17d5)
- เปลี่ยนชื่อ
OutputOptions.getDurationLimit
เป็นOutputOptions.getDurationLimitMillis
และOutputOptions.setDurationLimit
เป็นOutputOptions.setDurationLimitMillis
(I91f0c) - เพิ่มคลาส
AudioConfig
เพื่อจัดการการตั้งค่าที่เกี่ยวข้องกับเสียงขณะบันทึกวิดีโอ เราย้ายคำอธิบายประกอบ@RequiresPermission
จากฟังก์ชันstartRecording
ไปยังAudioConfig
เพื่อหลีกเลี่ยงการขอสิทธิ์ที่ไม่จำเป็นในกรณีที่ไม่จำเป็นต้องใช้เสียง (I28755) - นำคลาส Metadata,
OnVideoSavedCallback
,OutputFileOptions
และOutputFileResults
ที่ไม่ได้ใช้แล้วออกหลังจากใช้ API การจับภาพวิดีโอใหม่ (I38cd8) - ใช้ API การจับภาพวิดีโอใหม่ ระบบจะแทนที่เมธอด
getVideoCaptureTargetSize
และsetVideoCaptureTargetSize
ด้วยเมธอดgetVideoCaptureTargetQuality
และsetVideoCaptureTargetQuality
ตามลำดับ เนื่องจากระบบไม่รองรับsetTargetResolution
อีกต่อไป (I2a1d5)
การแก้ไขข้อบกพร่อง
- นำ
core.VideoCapture
API ที่เลิกใช้งานแล้วออก (I531e0) - แก้ไขปัญหาที่ไม่ได้เรียกใช้
onError
Callback เมื่อถ่ายภาพโดยไม่มีสิทธิ์เข้าถึงพื้นที่เก็บข้อมูล(I936db, b/244807669) - ปรับปรุงคุณภาพและความน่าเชื่อถือของส่วนขยายกล้อง เราปิดใช้ส่วนขยายกล้องในอุปกรณ์ Motorola ที่ใช้ส่วนขยายกล้อง v1.1.0 และเวอร์ชันเก่ากว่าเนื่องจากปัญหาเกี่ยวกับการรองรับโบเก้ การจับภาพ และการแสดงตัวอย่างที่ไม่กลับมาทำงานต่อ (Id3ce3)
- แก้ไขข้อขัดข้องของเนทีฟเมื่อเปิดใช้การครอบตัดวิดีโอผ่าน
ViewPort
ในอุปกรณ์รุ่นเดิม (I16b8a, b/251357665)
เวอร์ชัน 1.3.0-alpha01
9 พฤศจิกายน 2022
androidx.camera:camera-*:1.3.0-alpha01
ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.3.0-alpha01 มีคอมมิตต่อไปนี้
ฟีเจอร์ใหม่
Camera-viewfinder
ได้รับการเผยแพร่อย่างเป็นทางการแล้วCamera-viewfinder
มีวิดเจ็ตช่องมองภาพพื้นฐานที่แสดงฟีดกล้องสำหรับ Camera2 ได้ โปรดดูตัวอย่างในโค้ดตัวอย่าง
การเปลี่ยนแปลง API
- เพิ่ม
OutputOptions.setDurationLimit
เพื่ออนุญาตให้ตั้งค่าขีดจำกัดระยะเวลาของวิดีโอ ระบบจะบันทึกให้เสร็จสมบูรณ์โดยอัตโนมัติเมื่อบันทึกเกินขีดจำกัดระยะเวลาที่ระบุ (I902a0) - เพิ่มสถานะข้อผิดพลาดของเสียงในการบันทึกวิดีโอ
AudioStats.AUDIO_STATE_SOURCE_ERROR
ส่งเมื่อตั้งค่าแหล่งเสียงไม่สำเร็จหรือเกิดข้อผิดพลาด (I37410)
การแก้ไขข้อบกพร่อง
- เพิ่มการปรับแต่งเพื่ออนุญาตให้อุปกรณ์ที่มีปัญหาบางเครื่องลองจับภาพอีกครั้งเมื่อพบว่าการจับภาพล้มเหลว (Id4795)
- แก้ไขปัญหาหน้าจอสีดำเมื่อใช้การติดตั้งใช้งาน
PreviewView
SurfaceView
ในViewPager2
ในส่วนของการแก้ไขPreviewView
จะใช้SurfaceView
ซ้ำหากไม่มีการเปลี่ยนแปลงความละเอียดที่ขอ (Ib3f27) - รองรับการครอบตัดวิดีโอ (ฟีเจอร์ WYSIWYG) เมื่อใช้
ViewPort
หรือCameraController
API (Ifbba8, b/201085351) - แก้ไขปัญหาการบันทึกวิดีโอที่ถ่ายด้วยกล้องหน้าไม่สำเร็จใน Huawei P40 lite (I87c57, b/250807400)
เวอร์ชัน 1.2
เวอร์ชัน 1.2.3
24 พฤษภาคม 2023
androidx.camera:camera-*:1.2.3
ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.2.3 มีคอมมิตเหล่านี้
การแก้ไขข้อบกพร่อง
- แก้ไขปัญหาที่
VideoCapture
ใช้กับกล้องหน้าในอุปกรณ์บางรุ่นไม่ได้ เช่น ใน Samsung Galaxy S23 และ Xiaomi 2107113SG (Ibec7e, b/270656244)
เวอร์ชัน 1.2.2
22 มีนาคม 2023
androidx.camera:camera-*:1.2.2
ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.2.2 มีคอมมิตเหล่านี้
การแก้ไขข้อบกพร่อง
- แก้ไขปัญหาที่ส่วนขยาย CameraX ทำงานไม่ถูกต้องเมื่อเปิดใช้ ProGuard ในอุปกรณ์บางรุ่น เช่น Pixel (I90aa2)
เวอร์ชัน 1.2.1
25 มกราคม 2023
androidx.camera:camera-*:1.2.1
ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.2.1 มีคอมมิตเหล่านี้
การแก้ไขข้อบกพร่อง
- แก้ไขปัญหาภาพ JPEG เสียหากเขียนข้อมูลตำแหน่ง Exif ในอุปกรณ์ Samsung Android 12 บางรุ่น (b/263289024)
เวอร์ชัน 1.2.0
7 ธันวาคม 2022
androidx.camera:camera-*:1.2.0
ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.2.0 มีคอมมิตเหล่านี้
การเปลี่ยนแปลงที่สำคัญตั้งแต่เวอร์ชัน 1.1.0
- กล้องไลบรารีใหม่ - mlkit-vision ผสานรวม CameraX กับฟีเจอร์ ML Kit มากมายได้อย่างง่ายดาย ซึ่งรวมถึงการสแกนบาร์โค้ด การตรวจจับใบหน้า การตรวจจับข้อความ ฯลฯ โดยได้เพิ่ม
MLKitAnalyzer
เป็น API ใหม่ - API ใหม่แบบทดลองที่ไม่มีการหน่วงเวลาชัตเตอร์ เพิ่มประสิทธิภาพไปป์ไลน์การจับภาพเพื่อให้มีเวลาในการตอบสนองที่ดีขึ้นในขณะที่ยังคงคุณภาพของรูปภาพไว้ได้ เมื่อตั้งค่าโหมดการจับภาพเป็น
CAPTURE_MODE_ZERO_SHUTTER_LAG
คาดว่าจะมีการลดเวลาในการตอบสนองระหว่างการคลิกปุ่มชัตเตอร์กับการถ่ายภาพให้เหลือน้อยที่สุด เมื่อเทียบกับโหมดการจับภาพอื่นๆ ในอุปกรณ์ที่ไม่รองรับZERO_SHUTTER_LAG
ระบบจะเปลี่ยนไปใช้CAPTURE_MODE_MINIMIZE_LATENCY
แทน - เลิกใช้งาน
android.camera.core.VideoCapture
- เพิ่ม
setStreamUseCase()
เป็นCamera2Interop
API สาธารณะ - เพิ่มข้อกำหนดเกี่ยวกับระดับ API สำหรับ
setOutputImageRotationEnabled
- เปลี่ยนชื่อ
ImageAnalysis.Analyzer#getTargetResolutionOverride()
เป็นImageAnalysis.Analyzer#getDefaultTargetResolution()
แล้ว - เพิ่ม API สำหรับตั้งค่าข้อมูลเมตาของตำแหน่งให้กับวิดีโอที่บันทึกไว้
- แก้ไขปัญหาอัตราเฟรมต่ำเมื่อใช้
VideoCapture
และกรณีการใช้งานตัวอย่างที่มีสัดส่วนภาพ 16:9 - แก้ไขปัญหาภาพตัวอย่างสีดำที่เกิดขึ้นเมื่อเปิดใช้ส่วนขยาย BOKEH ในอุปกรณ์ Samsung บางรุ่นและผู้ใช้สลับกล้อง
- แก้ไขปัญหา
Preview/VideoCapture
การยืดของ Samsung J7 Prime (SM-G610M) และ J7 (SM-J710MN) ในอุปกรณ์ API ระดับ 27 - ปิดใช้การแก้ปัญหาชั่วคราวเพื่อพลิกภูมิภาค AF ในแนวนอนของกล้องหน้าใน Samsung Android T เนื่องจากปัญหาได้รับการแก้ไขแล้ว
เวอร์ชัน 1.2.0-rc01
24 ตุลาคม 2022
androidx.camera:camera-*:1.2.0-rc01
ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.2.0-rc01 มีคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- เพิ่ม
setStreamUseCase
API สำหรับOutputConfiguration
ผู้ใช้สามารถระบุ Use Case ของสตรีมสำหรับเซสชันสตรีมได้ โดยจะลบล้างตรรกะภายในของ CameraX เพื่อเลือก Use Case ของสตรีมเพื่อเพิ่มประสิทธิภาพตามความต้องการ (Ib1a95)
การแก้ไขข้อบกพร่อง
- แก้ไขปัญหา
Preview/VideoCapture
การยืดของ Samsung J7 Prime (SM-G610M) และ J7 (SM-J710MN) ในอุปกรณ์ API ระดับ 27 ความละเอียด 1920x1080 ทำให้Preview/VideoCapture
รูปภาพถูกยืด เพิ่มวิธีแก้ปัญหาเพื่อไม่ให้เลือกความละเอียด 1920x1080 สำหรับตัวอย่างหรือVideoCapture
เพื่อหลีกเลี่ยงปัญหาภาพยืด (I0e04e) - แก้ไขอัตราเฟรมต่ำเมื่อใช้
VideoCapture
และกรณีการใช้งานตัวอย่างที่มีสัดส่วนภาพ 16:9 ในอุปกรณ์ Huawei บางรุ่น (If8c88, b/223643510) - แก้ไขปัญหาการเปิดกล้องไม่สำเร็จเมื่อไม่ได้ตั้งค่า
SurfaceProvider
ของการแสดงตัวอย่าง การแก้ไขนี้จะทำให้ระบบไม่กำหนดค่าตัวอย่างที่ไม่มีSurfaceProvider
ลงในเซสชันการจับภาพของกล้อง (I99681)
เวอร์ชัน 1.2.0-beta02
21 กันยายน 2022
androidx.camera:camera-*:1.2.0-beta02
ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.2.0-beta02 มีคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- เพิ่มข้อกำหนดระดับ API สำหรับ
setOutputImageRotationEnabled
(I26e3e, b/240993561)
การแก้ไขข้อบกพร่อง
- ปิดใช้การแก้ปัญหาชั่วคราวเพื่อพลิกภูมิภาค AF ในแนวนอนของกล้องหน้าใน Samsung Android T เนื่องจากปัญหาได้รับการแก้ไขแล้ว (I05f69)
- แก้ไขปัญหาการแสดงตัวอย่างสีดำที่เกิดขึ้นเมื่อเปิดใช้ส่วนขยาย
BOKEH
ในอุปกรณ์ Samsung บางรุ่นและผู้ใช้สลับกล้อง (If6168)
เวอร์ชัน 1.2.0-beta01
24 สิงหาคม 2022
androidx.camera:camera-*:1.2.0-beta01
ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.2.0-beta01 มีคอมมิตเหล่านี้
ฟีเจอร์ใหม่
- ไลบรารีใหม่
camera-mlkit-vision
ผสานรวม CameraX กับฟีเจอร์ ML Kit มากมายได้อย่างง่ายดาย ซึ่งรวมถึงการสแกนบาร์โค้ด การตรวจจับใบหน้า การตรวจจับข้อความ และอื่นๆ โปรดดูโค้ดตัวอย่างที่นี่ - API ที่ไม่มีการหน่วงเวลาชัตเตอร์เวอร์ชันทดลองใหม่ เพิ่มประสิทธิภาพไปป์ไลน์การจับภาพเพื่อให้มีเวลาในการตอบสนองที่ดีขึ้นในขณะที่ยังคงคุณภาพของรูปภาพไว้ได้ เมื่อตั้งค่าโหมดการจับภาพเป็น CAPTURE_MODE_ZERO_SHUTTER_LAG คาดว่าจะมีการลดเวลาในการตอบสนองระหว่างการคลิกปุ่มชัตเตอร์กับการถ่ายภาพให้เหลือน้อยที่สุด เมื่อเทียบกับโหมดการจับภาพอื่นๆ ในอุปกรณ์ที่ไม่รองรับ ZERO_SHUTTER_LAG ระบบจะเปลี่ยนไปใช้ CAPTURE_MODE_MINIMIZE_LATENCY แทน
ImageAnalysis.Analyzer
และMLKitAnalyzer
เป็น API อย่างเป็นทางการ- API ที่เปิดเผยสำหรับการตั้งค่าข้อมูลเมตาของตำแหน่งให้กับวิดีโอที่บันทึกไว้
- เปลี่ยนชื่อ
ImageAnalysis.Analyzer#getTargetResolutionOverride()
เป็นImageAnalysis.Analyzer#getDefaultTargetResolution()
การแก้ไขข้อบกพร่อง
- แก้ไขปัญหาการจับภาพของ Alps k61v1_basic_ref รูปภาพ JPEG ที่จับภาพจาก HAL มีข้อมูลเมตา Exif ไม่ถูกต้อง ข้อมูลเมตา Exif ไม่มีแท็ก 0xffd9 หรือ 0xffda เพื่อให้
ExifInterface
แยกวิเคราะห์แอตทริบิวต์ได้อย่างถูกต้อง การบันทึกรูปภาพในรูปแบบ YUV แล้วบีบอัดเป็นรูปภาพเอาต์พุต JPEG เพื่อหลีกเลี่ยงปัญหานี้ (I45abb)
เวอร์ชัน 1.2.0-alpha04
27 กรกฎาคม 2022
androidx.camera:camera-*:1.2.0-alpha04
ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.2.0-alpha04 มีคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- เปลี่ยนชื่อ
ImageAnalysis.Analyzer#getTargetResolutionOverride()
เป็นImageAnalysis.Analyzer#getDefaultTargetResolution()
นอกจากนี้ ยังมีการเปลี่ยนแปลงลักษณะการทำงานเพื่อให้ค่าที่เมธอดนี้แสดงผลสามารถลบล้างได้ด้วยค่าของImageAnalysis#setTargetResolution()
(If1d36) - API ที่เปิดเผยสำหรับการตั้งค่าข้อมูลเมตาของตำแหน่งให้กับวิดีโอที่บันทึกไว้ คุณตั้งค่าออบเจ็กต์
android.location.Location
ได้ผ่าน API ใหม่androidx.camera.video.OutputOptions.Builder.setLocation(Location)
(I313a0, b/204197544)
การแก้ไขข้อบกพร่อง
- แก้ไขปัญหาเพื่อถ่ายภาพด้วยตัวอย่างที่ไม่ได้เชื่อมโยง (Ie70b6, b/235119898)
- แก้ไขปัญหาการขัดข้องใน
Recorder
เมื่อพยายามบันทึกขณะที่แหล่งเสียงไม่พร้อมใช้งาน (I9f652)
เวอร์ชัน 1.2.0-alpha03
29 มิถุนายน 2022
androidx.camera:camera-*:1.2.0-alpha03
ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.2.0-alpha03 มีคอมมิตต่อไปนี้
การเปลี่ยนแปลง API
- นำคำอธิบายประกอบเวอร์ชันทดลองสำหรับ
ImageAnalysis.Analyzer
และMLKitAnalyzer
ออกแล้ว (I0ff22)
การแก้ไขข้อบกพร่อง
- เพิ่มการหมดเวลาเริ่มต้นของการโฟกัสอัตโนมัติ 5000 มิลลิวินาที ซึ่งจะทำให้ส่วน AF เสร็จสมบูรณ์ด้วย
isFocusSuccessful
false หากไม่ได้ยกเลิกFocusMeteringAction
และส่วน AF ไม่ได้รวมกันในระยะเวลาดังกล่าว (Ibc2e3) - แก้ไขปัญหาเพื่อถ่ายภาพด้วยตัวอย่างที่ไม่ได้เชื่อมโยง (I1d3a2, b/235119898)
- เปิดใช้การติดตั้งใช้งาน Extender ขั้นสูงและอัปเดตเวอร์ชันส่วนขยายอินเทอร์เฟซการรองรับ CameraX เป็น 1.2 (I92256)
เวอร์ชัน 1.2.0-alpha02
1 มิถุนายน 2022
androidx.camera:camera-*:1.2.0-alpha02
ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.2.0-alpha02 มีคอมมิตเหล่านี้
ฟีเจอร์ใหม่
- เปิดเผย CameraX Zero-Shutter Lag API เป็นเวอร์ชันทดลอง
การเปลี่ยนแปลง API
- เพิ่มโหมดการจับภาพใหม่
CAPTURE_MODE_ZERO_SHUTTER_LAG
ในImageCapture
และเพิ่มisZslSupported
ในCameraInfo
เพื่อค้นหาความสามารถของอุปกรณ์CAPTURE_MODE_ZERO_SHUTTER_LAG
มีเป้าหมายที่จะให้เวลาในการตอบสนองน้อยที่สุดสำหรับการจับภาพทันที โดยจะใช้บัฟเฟอร์แบบวงแหวน ซึ่งแคชผลลัพธ์การจับภาพชั่วคราวเพื่อประมวลผลอีกครั้งในภายหลังเมื่อผู้ใช้กดปุ่มเพื่อถ่ายภาพ หาก {@link VideoCapture} เชื่อมโยงอยู่ หรือโหมดแฟลชไม่ได้ปิดอยู่ หรือส่วนขยาย OEM เปิดอยู่ ระบบจะปิดใช้โหมดนี้โดยอัตโนมัติ (I9ae74) - เพิ่มเมธอด
ImageAnalysis.getBackgroundExecutor()
(Icc945)
การแก้ไขข้อบกพร่อง
- แก้ไขเมธอด
ImageCapture
takePicture ซึ่งจะปิดไฟฉายในอุปกรณ์ที่รายงาน (Ib5eb5, b/228272227) - แก้ไขข้อบกพร่องที่ไม่ได้จัดการ
AssertionError
เมื่อได้รับลักษณะCONTROL_ZOOM_RATIO_RANGE
(/Ia248a, b/231701345)
เวอร์ชัน 1.2.0-alpha01
18 พฤษภาคม 2022
androidx.camera:camera-*:1.2.0-alpha01
ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.2.0-alpha01 มีคอมมิตต่อไปนี้
ฟีเจอร์ใหม่
- เปิดตัวไลบรารีใหม่ camera-mlkit-vision
การแก้ไขข้อบกพร่อง
- แก้ไขปัญหาที่
QualitySelector
บันทึกวิดีโอ UHD ไม่สำเร็จเมื่อเปิดใช้กลยุทธ์สำรอง ปัญหานี้เกิดขึ้นเมื่อVideoCapture
เชื่อมโยงกับImageCapture
และแสดงตัวอย่างในอุปกรณ์กล้องที่มีระดับฮาร์ดแวร์เป็น FULL หรือสูงกว่า กลยุทธ์สำรองของQualitySelector
ทำให้VideoCapture
ได้ความละเอียด FHD อย่างไม่ถูกต้อง ความละเอียด UHD รองรับการใช้งานร่วมกันใน Use Case นี้และควรนำมาใช้ (I0e788, b/230651237) - แก้ไข
NullPointerException
เมื่อวันที่ImageCapture.takePicture()
(I92366, b/230454568, b/229766155) - แก้ไขลักษณะการทำงานของการหยุดชั่วคราวแบบไม่พร้อมกันของ
androidx.camera.video.Recorder
(Ia8ce8)
Camera-Camera2, Camera-Core, Camera-Lifecycle และ Camera-Video เวอร์ชัน 1.1.0
เวอร์ชัน 1.1.0
29 มิถุนายน 2022
androidx.camera:camera-*:1.1.0
ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.1.0 มีคอมมิตเหล่านี้
การเปลี่ยนแปลงที่สำคัญตั้งแต่เวอร์ชัน 1.0.0
- Landed View, Extension และ Video Capture เป็นเวอร์ชัน RC แรก ตั้งแต่เวอร์ชัน 1.1.0-beta01 เป็นต้นไป ไลบรารี CameraX ทั้งหมดจะใช้หมายเลขเวอร์ชันเดียวกัน ซึ่งจะช่วยให้นักพัฒนาแอปติดตามเวอร์ชันได้ง่ายขึ้นมาก และลดความซับซ้อนของเมทริกซ์ความเข้ากันได้ของเวอร์ชันขนาดใหญ่
- เปิดตัว API และฟีเจอร์ใหม่แบบสาธารณะ ซึ่งรวมถึง
- เพิ่มไลบรารีกล้องและวิดีโออย่างเป็นทางการเพื่อรองรับกรณีการใช้งานการจับภาพวิดีโอ
- ความสามารถในการแปลง YUV เป็น RGB และการหมุน (
ImageAnalysis.Builder.setOutputImageRotationEnabled
และsetOutputImageFormat
) - รองรับโหมดหลายหน้าต่างโดยอนุญาตให้แอปพลิเคชัน CameraX กลับมาใช้กล้องต่อเมื่อแอปอื่นขัดจังหวะการใช้กล้องและโฟกัสกลับมา
- ดูแลให้ CameraX ทำงานได้ดีในอุปกรณ์แบบพับได้ด้วยการแก้ไขปัญหาการแสดงตัวอย่างบางอย่าง
- เพิ่ม
CameraState
API ที่จะแสดงผ่าน CameraInfo - เพิ่ม API
ProcessCameraProvider.getAvailableCameraInfos()
เพื่อดึงข้อมูลเกี่ยวกับกล้องที่พร้อมใช้งานโดยตรง - รูปแบบ JPEG เอาต์พุตสำหรับ
ImageCapture#OnImageCapturedCallback
เมื่อเปิดใช้ส่วนขยาย - เพิ่ม API
isFocusMeteringSupported
ในCameraInfo
ซึ่งช่วยให้แอปพลิเคชันตรวจสอบได้ว่ากล้องปัจจุบันรองรับFocusMeteringAction
ที่ระบุหรือไม่ - เปิดเผย
getResolutionInfo
API เพื่อให้ข้อมูลความละเอียดสำหรับตัวอย่างImageCapture
และImageAnalysis
- เพิ่ม API ใหม่
ImageCapture.Builder#setJpegQuality
เพื่อให้เปลี่ยนคุณภาพการบีบอัดรูปภาพ JPEG เอาต์พุตได้เมื่อถ่ายรูป - เพิ่ม
CameraSelector#filter
ลงใน API สาธารณะเพื่อกรองรายการCameraInfos
ตามCameraSelector
- เพิ่ม
Camera2CameraControl.clearCaptureRequestOptions
สำหรับล้างตัวเลือกคำขอแคปเจอร์ที่มีอยู่ - เพิ่ม API เวอร์ชันทดลองสำหรับการใช้
CameraController
กับไลบรารีการประมวลผลรูปภาพภายนอก เช่น MLKit - เพิ่ม API เวอร์ชันทดลอง
CameraInfo#getCameraSelector()
ซึ่งจะแสดงCameraSelector
ที่ไม่ซ้ำกันสำหรับกล้อง - เลื่อนระดับ API ทดลองหลายรายการให้เป็น API สาธารณะอย่างเป็นทางการ
- แทนที่คำอธิบายประกอบ
@Experimental
ด้วย@RequiresOptIn
ใน API เวอร์ชันทดลอง หากต้องการเรียกใช้ API เวอร์ชันทดลอง ให้ใช้ androidx.annotation.OptIn แทน androidx.annotation.experimental.UseExperimental ที่เลิกใช้งานแล้ว - เลื่อนระดับ API ที่เป็นเวอร์ชันทดลองต่อไปนี้ให้เป็น API อย่างเป็นทางการ:
CameraXConfig.Builder#setAvailableCamerasLimiter()
,CameraXConfig.Builder#setMinimumLoggingLevel()
,CameraXconfig.Builder#setSchedulerHandler()
,CameraXConfig#getAvailableCamerasLimiter()
,CameraXConfig#getMinimumLoggingLevel()
,CameraXConfig#getCameraExecutor()
,CameraXConfig#getSchedulerHandler()
@ExperimentalCameraFilter
API- API การชดเชยแสงทดลอง
- โปรโมต
UseCaseGroup
API เวอร์ชันทดลองสำหรับ camera-core, camera-lifecycle และ camera-video เพิ่มViewPort#getLayoutDirection
,ViewPort.Builder#setLayoutDirection
และViewPort.Builder#setScaleType
สำหรับปรับแต่งวิวพอร์ต ExperimentalUseCaseGroupLifecycle
เป็น API สาธารณะอย่างเป็นทางการ- การเปลี่ยนแปลง API ที่มีอยู่
Renamed MediaStoreOutputOptions.getCollection
เพื่อMediaStoreOutputOptions.getCollectionUri
- เราได้เปลี่ยนชื่อ
ActiveRecording
เป็น "การบันทึก" เพื่อลดความซับซ้อน - เปลี่ยน
QualitySelector
Creator API เป็น API ที่อิงตามรายการ
การแก้ไขข้อบกพร่อง
- แก้ไขปัญหา
YuvToJpegProcessor
EOFException
เมื่อเปิดใช้โหมดส่วนขยายและตั้งค่าโหมดImageCapture#CAPTURE_MODE_MAX_QUALITY
- กำหนดค่าตัวแปลงรหัสแบบคงที่ล้มเหลวเนื่องจากระบบกำลังปิดการบันทึกวิดีโอ
- แก้ไขสัดส่วนภาพของตัวอย่าง/วิดีโอที่ยืดออกเมื่อบันทึกที่ความละเอียด FHD
- แก้ไขปัญหาเสียง/วิดีโอไม่ตรงกันหลังจากหยุดชั่วคราวและเล่นต่อในอุปกรณ์บางเครื่อง
- แก้ไขปัญหาที่แฟลชทำงานระหว่างการแตะเพื่อโฟกัส (
startFocusAndMetering
) เมื่อโหมดแฟลชเป็น auto หรือ always_on ในสภาพแวดล้อมที่มีแสงน้อย
เวอร์ชัน 1.1.0-rc02
1 มิถุนายน 2022
androidx.camera:camera-*:1.1.0-rc02
ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.1.0-rc02 มีคอมมิตเหล่านี้
การแก้ไขข้อบกพร่อง
- แก้ไข
NullPointerException
เมื่อวันที่ImageCapture.takePicture()
(I92366, b/230454568, b/229766155) - แก้ไขข้อบกพร่องที่ไม่ได้จัดการ
AssertionError
เมื่อรับลักษณะCONTROL_ZOOM_RATIO_RANGE
(Ia248a, b/231701345)
เวอร์ชัน 1.1.0-rc01
11 พฤษภาคม 2022
androidx.camera:camera-*:1.1.0-rc01
ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.1.0-rc01 มีคอมมิตเหล่านี้
ฟีเจอร์ใหม่
- เปิดตัวเวอร์ชัน RC แรกสำหรับกล้อง-วิดีโอ กล้อง-มุมมอง และกล้อง-ส่วนขยาย
การแก้ไขข้อบกพร่อง
- แก้ไขปัญหาที่ไม่ได้เผยแพร่ตัวแปลงรหัสวิดีโอเมื่อเลิกผูก
VideoCapture<Recorder>
ซึ่งทําให้การใช้VideoCapture<Recorder>
ในภายหลังล้มเหลวในการบันทึกด้วยMediaCodec.CodecException
โดยเฉพาะในอุปกรณ์ API 21-22 (Ie7f68) - แก้ไขรูปภาพที่จับภาพของ
CameraExtensionsActivity
ไม่ให้ถูกลบในImageCaptureTest
เวอร์ชัน 1.1.0-beta03
6 เมษายน 2022
androidx.camera:camera-*:1.1.0-beta03
ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.1.0-beta03 มีคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- จำกัดตัวสร้าง
CaptureRequestOptions
(I261b6) - เพิ่ม API เวอร์ชันทดลองสำหรับใช้
CameraController
กับไลบรารีการประมวลผลรูปภาพภายนอก เช่น MLKit (I4ea71)
การแก้ไขข้อบกพร่อง
- แก้ไขปัญหาที่ตัวอย่างจะกลายเป็นด้านข้างใน
PreviewView
เมื่อไม่ได้รีสตาร์ทกิจกรรมหลังจากหมุนอุปกรณ์ในโหมดหลายหน้าต่าง (I1ea36, b/223488673) - แก้ไขปัญหาการทำงานแบบหลายหน้าต่างที่เมื่อเปลี่ยนโฟกัสกลับไปที่แอปแล้ว แอปไม่สามารถกลับมาใช้กล้องต่อได้ในกรณีที่ (1) แอปอื่นๆ ที่มีลำดับความสำคัญสูงเปิดกล้องอื่น (2) อุปกรณ์เป็นอุปกรณ์ Samsung Android 12 (I7e9f2)
- รวมวิธีแก้ปัญหาสำหรับอุปกรณ์ที่ขัดข้องเมื่อตรวจสอบความพร้อมใช้งานของ Flash อุปกรณ์เหล่านี้จะไม่มีไฟฉาย (If26a3, b/216667482)
- แก้ไขปัญหา
AbstractMethodError
ที่เกิดขึ้นเมื่อแอปใช้ส่วนขยายและเปิดใช้ Proguard (I7cbaf, b/222726805) - บังคับปิดใช้โหมดส่วนขยายโบเก้ในอุปกรณ์ Motorola razr 5G ซึ่งจะทำให้เกิดปัญหาหน้าจอแสดงตัวอย่างสีดำ (I35d49)
- แก้ไขปัญหาเสียง/วิดีโอไม่ตรงกันหลังจากหยุดชั่วคราวและเล่นต่อในอุปกรณ์ Samsung บางรุ่นก่อน API 29 (I64622, b/202798609, b/202798572)
- แก้ไขปัญหาเสียง/วิดีโอไม่ซิงค์กันหลังจากหยุดชั่วคราวและเล่นต่อใน Sony G3125 (I2a1a5, b/202799148)
- แก้ไขการขัดข้องเมื่อเครื่องบันทึกพบ
InvalidConfigException
อย่างไรก็ตาม การแก้ไขนี้จะป้องกันไม่ให้แอปขัดข้องเท่านั้น แต่ไม่ได้แก้สาเหตุของInvalidConfigException
หากยังกำหนดค่าRecorder
ไม่ได้ แอปพลิเคชันจะได้รับการเรียกกลับข้อผิดพลาดเมื่อเริ่มบันทึก (I89c29, b/213617227)
การมีส่วนร่วมภายนอก
- อัปเดต API :compose:ui:ui-test (updateApi) เนื่องจากการย้ายข้อมูล test-coroutines-lib (I3366d)
เวอร์ชัน 1.1.0-beta02
23 กุมภาพันธ์ 2022
androidx.camera:camera-*:1.1.0-beta02
ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.1.0-beta02 มีคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- เพิ่มความสามารถในการระบุรหัสกล้องจริงผ่าน Camera2Interop (I5aed8)
การแก้ไขข้อบกพร่อง
- แก้ไขปัญหาการแสดงตัวอย่างที่ยืดออกใน Oppo Find N (I7d004)
- แก้ไขปัญหาใน Galaxy J7 Prime ที่ทำให้ตัวอย่างบิดเบี้ยว (I4c500)
- ใช้บิตเรตที่เข้ากันได้เพื่อค้นหาโปรแกรมเปลี่ยนไฟล์วิดีโอ (d969052)
เวอร์ชัน 1.1.0-beta01
26 มกราคม 2022
androidx.camera:camera-*:1.1.0-beta01
ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.1.0-beta01 มีคอมมิตเหล่านี้
ฟีเจอร์ใหม่
- ตั้งแต่เวอร์ชัน 1.1.0-beta01 เป็นต้นไป ไลบรารี CameraX ทั้งหมดจะใช้หมายเลขเวอร์ชันเดียวกัน ซึ่งจะช่วยให้นักพัฒนาแอปติดตามเวอร์ชันได้ง่ายขึ้นมาก และลดความซับซ้อนของเมทริกซ์ความเข้ากันได้ของเวอร์ชันขนาดใหญ่
การเปลี่ยนแปลง API
- เพิ่ม
Camera2CameraControl.clearCaptureRequestOptions
สำหรับ ล้างตัวเลือกคำขอจับภาพที่มีอยู่ (Ifa07d)
การแก้ไขข้อบกพร่อง
- แก้ไขข้อขัดข้องเมื่อบันทึกวิดีโอบนอุปกรณ์บางรุ่นที่ใช้ Android เวอร์ชันก่อน O(API 26) (I88fdf, b/212328261)
- แก้ไขปัญหาเกี่ยวกับภูมิภาค AF ที่ไม่ถูกต้องเมื่อใช้
cameraControl#startFocusAndMetering()
ในกล้องที่หันเลนส์ด้านหน้าในอุปกรณ์ Samsung (Ifbf59, b/210548792) - ใช้ไฟฉายเป็นแฟลชใน Pixel 3a/Pixel 3a XL เพื่อปรับปรุงความเร็วและคุณภาพของรูปภาพที่ถ่ายในที่มืด (Ib12b6, b/211474332)
- เปิดใช้แอปพลิเคชันเพื่อกลับมาใช้กล้องต่อเมื่อแอปพลิเคชันอื่นที่มีลำดับความสำคัญสูงกว่าขัดจังหวะการทำงานของกล้อง ในโหมดหลายหน้าต่างและโฟกัสเปลี่ยนกลับไปที่แอปพลิเคชัน โปรดทราบว่าอาจมีความหน่วง(1-10 วินาทีขึ้นไป) ระหว่างการเปลี่ยนโฟกัสและการเปิดกล้องอีกครั้งเนื่องจากปัญหาเกี่ยวกับเฟรมเวิร์กบางอย่าง (I4d092)
เวอร์ชัน 1.1.0-alpha12
15 ธันวาคม 2021
androidx.camera:camera-*:1.1.0-alpha12
ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.1.0-alpha12 มีคอมมิตต่อไปนี้
การเปลี่ยนแปลง API
- นำคำอธิบายประกอบ
@RequiresApi(21)
ที่ไม่จำเป็นออกจากคลาส/อินเทอร์เฟซด้านใน (I8e286, b/204917951) - ค่าคงที่ด้านคุณภาพและค่าคงที่กลยุทธ์สำรองของ
QualitySelector
ได้รับการเปลี่ยนแปลงให้แสดงด้วยออบเจ็กต์คลาส เช่นQualitySelector.QUALITY_HD
จะเปลี่ยนเป็นQuality.HD
และQualitySelector.FALLBACK_STRATEGY_LOWER
จะเปลี่ยนเป็นอินสแตนซ์ที่FallbackStrategy.lowerQualityOrHigherThan(Quality)
แสดงผล API ที่ใช้สร้างQualitySelector
ได้เปลี่ยนเป็น API ที่อิงตามรายการแล้ว API ใหม่QualitySelector.fromOrderedList(List<Quality>)
จะอ้างอิงถึงลำดับของรายการคุณภาพอินพุตแทนลำดับที่สร้างโดยQualitySelector.Procedure
ระบบนำชั้นเรียนQualitySelector.Procedure
ออกแล้ว (I43343) - ระบบได้นำ
PendingRecording.withEventListener()
ออกแล้ว และตอนนี้ต้องส่ง Listener เหตุการณ์ไปยังPendingRecording.start()
ข้อกำหนด Listener เหตุการณ์นี้มีจุดประสงค์เพื่อกระตุ้นให้จัดการข้อผิดพลาดแบบไม่พร้อมกันที่รายงานในเหตุการณ์VideoRecordEvent.Finalize
(I1e71d) - เราได้เปลี่ยนชื่อ
ActiveRecording
เป็นRecording
เพื่อลดความซับซ้อน (I77ceb)
การแก้ไขข้อบกพร่อง
- แก้ไขปัญหาที่รูปภาพที่ถ่ายในโหมด
FLASH_AUTO
มีค่าแสงน้อยเกินไปในสภาพแวดล้อมที่มืดบน Pixel 3a และ Pixel 3a XL (I13f19, b/205373142) - ใช้ขนาดการแสดงผลล่าสุดเสมอเพื่อกำหนดตัวอย่าง
Resolution
(I4a694) - กรองกล้องที่ไม่มี
REQUEST_AVAILABLE_CAPABILITIES_BACKWARD_COMPATIBLE
ออก กล้องที่มีREQUEST_AVAILABLE_CAPABILITIES_BACKWARD_COMPATIBLE
จะมีความสามารถขั้นต่ำที่อุปกรณ์กล้องทุกเครื่องรองรับ กล้องที่ไม่มีREQUEST_AVAILABLE_CAPABILITIES_BACKWARD_COMPATIBLE
อาจเป็นกล้องที่รองรับฟังก์ชันพิเศษและไม่รองรับเอาต์พุตสีมาตรฐานCameraX
ไม่รองรับกรณีการใช้งานPreview
,ImageCapture
,ImageAnalysis
หรือVideoCapture
สำหรับกล้องเหล่านั้น ดังนั้น เราจึงควรกรองกล้องเหล่านั้นออกเพื่อป้องกันการใช้งานที่ไม่ถูกต้อง (Ib8cda) CameraSelector#filter
จะไม่แสดงIllegalArgumentException
อีกต่อไปเมื่อชุดผลลัพธ์ว่างเปล่า (I27804)- ตอนนี้ระบบจะใช้ฮิวริสติกที่ชาญฉลาดยิ่งขึ้นเพื่อเลือกการตั้งค่าโปรแกรมเปลี่ยนไฟล์ตามโปรไฟล์ที่ OEM ระบุ (Iaeef0)
- Fixed Preview จะมีเส้นสีแบบสลับหลังจากเริ่มบันทึกวิดีโอ UHD ใน Pixel1 (I833c6, b/205340278)
เวอร์ชัน 1.1.0-alpha11
17 พฤศจิกายน 2021
androidx.camera:camera-*:1.1.0-alpha11
ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.1.0-alpha11 มีคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- เพิ่ม CameraSelector#filter ลงใน API สาธารณะเพื่อกรองรายการ CameraInfo ตาม CameraSelector (I105d0)
เพิ่ม API setOutputImageRotationEnabled สำหรับการกำหนดค่า ImageAnalysis ผู้ใช้สามารถเปิดใช้การหมุนสำหรับบัฟเฟอร์รูปภาพ YUV/RGB ได้ องศาการหมุนเป็นการหมุนแบบสัมพัทธ์ที่คำนวณตามการหมุนของเซ็นเซอร์และการหมุนของเป้าหมายเพื่อให้รูปภาพอยู่ด้านหน้า
เพิ่ม API setOutputImageRotationEnabled สำหรับการกำหนดค่า ImageAnalysis ผู้ใช้สามารถเปิดใช้การหมุนสำหรับบัฟเฟอร์รูปภาพ YUV/RGB ได้ องศาการหมุนเป็นการหมุนแบบสัมพัทธ์ที่คำนวณตามการหมุนของเซ็นเซอร์และการหมุนของเป้าหมายเพื่อให้รูปภาพอยู่ด้านหน้า
เพิ่ม
getSensorToBufferTransformMatrix
API ใน ImageInfo เมทริกซ์ที่แสดงผลคือการแมปจากพิกัดเซ็นเซอร์ไปยังพิกัดบัฟเฟอร์ ซึ่งก็คือจากค่าของCameraCharacteristics.SENSOR_INFO_ACTIVE_ARRAY_SIZE
ไปยัง(0, 0, image.getWidth, image.getHeight)
คุณใช้เมทริกซ์เพื่อแมปพิกัดจาก {UseCase} หนึ่งไปยังอีก {UseCase} หนึ่งได้ เช่น การแมปพิกัดของใบหน้าที่ตรวจพบด้วย ImageAnalysis กับตัวอย่าง (I9ff1e)เพิ่ม API ใหม่ ImageCapture.Builder#setJpegQuality เพื่อให้เปลี่ยนคุณภาพการบีบอัดรูปภาพ JPEG เอาต์พุตได้เมื่อถ่ายภาพ (I8dcf4)
เปลี่ยนชื่อ MediaStoreOutputOptions.getCollection เป็น MediaStoreOutputOptions.getCollectionUri (I16639)
การแก้ไขข้อบกพร่อง
- แก้ไขปัญหาที่แฟลชทำงานระหว่าง แตะเพื่อโฟกัส (startFocusAndMetering) เมื่อโหมดแฟลชเป็นอัตโนมัติหรือ always_on ในสภาพแวดล้อมที่มีแสงน้อย (Id4c11)
- ปิดใช้ HDR+ ใน Pixel 2 XL / Pixel 3 XL ในโหมด MINIMIZE_LATENCY เพื่อลดเวลาในการตอบสนอง (Ib6270, b/203505523)
การมีส่วนร่วมภายนอก
เวอร์ชัน 1.1.0-alpha10
13 ตุลาคม 2021
androidx.camera:camera-*:1.1.0-alpha10
ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.1.0-alpha10 มีคอมมิตเหล่านี้
ฟีเจอร์ใหม่
- เปิดตัว
androidx.camera:camera-video:1.1.0-alpha10
เป็นเวอร์ชันอัลฟ่าแรกสำหรับวิดีโออย่างเป็นทางการ เรามีปัญหาที่ทราบหลายอย่างซึ่งจะได้รับการแก้ไขในรุ่นต่อๆ ไป
การเปลี่ยนแปลง API
- เพิ่ม
@RequiresApi(21)
คำอธิบายประกอบให้กับคลาส CameraX ทั้งหมด และนำ minSdkVersion ออกจาก AndroidManifest.xml ซึ่งจะช่วยให้ผสานรวม camera-core เข้ากับแอปพลิเคชันที่มี minSdkVersion น้อยกว่า 21 ได้อย่างง่ายดาย แต่ต้องการใช้เส้นทางโค้ดแบบมีเงื่อนไข ที่อิงตาม API 21 ขึ้นไป สำหรับการใช้งานใดๆ ที่มี minSdkVersion 21 ขึ้นไป การเปลี่ยนแปลงนี้ไม่จำเป็นต้องดำเนินการใดๆ (Ie7f2e, b/200599470)
การแก้ไขข้อบกพร่อง
- ส่ง InitializationException เพื่อให้แอปจัดการ AssertionError ที่เกิดขึ้นเมื่อสร้าง CameraCharacteristics ได้อย่างราบรื่น (Ibec79)
เวอร์ชัน 1.1.0-alpha09
29 กันยายน 2021
androidx.camera:camera-camera2:1.1.0-alpha09
androidx.camera:camera-core:1.1.0-alpha09
และ androidx.camera:camera-lifecycle:1.1.0-alpha09
ออกอากาศแล้ว เวอร์ชัน 1.1.0-alpha09 มีคอมมิตต่อไปนี้
การเปลี่ยนแปลง API
- ตอนนี้เราได้นำคำอธิบายประกอบ ExperimentalUseCaseGroup ออกแล้วเนื่องจาก API ไม่ใช่เวอร์ชันทดลองอีกต่อไป (I01ef5)
การแก้ไขข้อบกพร่อง
- แก้ไขปัญหาที่รูปภาพที่ถ่ายเบลอ
ในโหมด
MAXIMIZE_QUALITY
(I173a9, b/193823892) - แก้ไขปัญหาใน Samsung Galaxy J5 ที่กล้องค้างหลังจากถ่ายภาพโดยเปิด/ตั้งค่าแฟลชเป็นอัตโนมัติในสภาพแวดล้อมที่มืด (I3aab9)
- เมื่อจำเป็นต้องครอบตัดสำหรับ ImageCapture ให้บีบอัดรูปภาพที่ครอบตัดแล้วซึ่งเป็นเอาต์พุตด้วยระดับคุณภาพ JPEG ที่ระบุตามโหมดการจับภาพที่ตั้งค่าไว้ หากโหมดการจับภาพเป็น
CAPTURE_MODE_MINIMIZE_LATENCY
คุณภาพการบีบอัด JPEG จะเป็น 95 หากโหมดการจับภาพเป็นCAPTURE_MODE_MAXIMIZE_QUALITY
คุณภาพการบีบอัด JPEG จะเป็น 100 (Ieb37c, b/142856426)
เวอร์ชัน 1.1.0-alpha08
18 สิงหาคม 2021
androidx.camera:camera-camera2:1.1.0-alpha08
androidx.camera:camera-core:1.1.0-alpha08
และ androidx.camera:camera-lifecycle:1.1.0-alpha08
ออกอากาศแล้ว เวอร์ชัน 1.1.0-alpha08 มีคอมมิตเหล่านี้
ฟีเจอร์ใหม่
- เพิ่ม API setOutputImageFormat สำหรับการกำหนดค่าการวิเคราะห์รูปภาพ ผู้ใช้ สามารถเลือก ImageAnalysis.OUTPUT_IMAGE_FORMAT_YUV_420_888 หรือ ImageAnalysis.OUTPUT_IMAGE_FORMAT_RGBA_8888 ได้ โดยค่าเริ่มต้น ระบบจะเลือก ImageAnalysis.OUTPUT_IMAGE_FORMAT_YUV_420_888 (I7902d)
การเปลี่ยนแปลง API
- ตอนนี้เราได้นำคำอธิบายประกอบ ExperimentalUseCaseGroupLifecycle ออกแล้วเนื่องจาก API ไม่ใช่เวอร์ชันทดลองอีกต่อไป (I17b85)
การแก้ไขข้อบกพร่อง
- แก้ไขปัญหาหน้าจอแสดงตัวอย่างสว่างเกินไปใน Huawei P20 Lite ปัญหานี้จะเกิดขึ้นเมื่อใช้ความละเอียดการแสดงตัวอย่างพิเศษบางอย่างร่วมกับค่าการซูมเข้าขนาดใหญ่เท่านั้น (Idefce, b/192129158)
- แก้ไขปัญหาที่แฟลชไม่ทำงานในอุปกรณ์บางเครื่องเมื่อตั้งค่า โหมดแฟลชเป็น FLASH_MODE_ON แล้วถ่ายรูปในเวลาต่อมา (Ieb49b)
- แก้ไขปัญหาที่การแสดงตัวอย่างจะหยุดชั่วคราวเมื่อถ่ายภาพหากมีการเชื่อมโยง VideoCapture, ImageCapture และ Preview (I56197, b/193864120)
- อนุญาตให้ ImageAnalysis เลือกความละเอียดที่สูงกว่า 1080p อุปกรณ์ที่มีระดับ LIMITED ขึ้นไปจะรองรับความละเอียดขนาด RECORD สำหรับ ImageAnalysis เมื่อผูกรวมกับ Preview และ ImageCapture ข้อควรทราบคือความละเอียดที่เลือกสำหรับ ImageCapture จะต้องเป็นความละเอียดขนาด RECORD ด้วย หากต้องการเลือกความละเอียดขนาด RECORD สำหรับ ImageAnalysis ให้สำเร็จ คุณควรตั้งค่าความละเอียดเป้าหมายขนาด RECORD ทั้งใน ImageCapture และ ImageAnalysis ซึ่งบ่งบอกว่าแอปพลิเคชันเข้าใจข้อแลกเปลี่ยนอย่างชัดเจน และต้องการให้ ImageAnalysis มีความละเอียดสูงกว่าแทนที่จะให้ ImageCapture มีความละเอียดสูงสุด ดูคำจำกัดความของ RECORD, ขนาดสูงสุด และรายละเอียดเพิ่มเติมได้ที่ https://developer.android.com/reference/android/hardware/camera2/CameraDevice#regular-capture ขนาด RECORD หมายถึงความละเอียดในการบันทึกสูงสุดที่อุปกรณ์กล้องรองรับ ซึ่งกำหนดโดย CamcorderProfile ขนาดสูงสุดหมายถึงความละเอียดเอาต์พุตสูงสุดของอุปกรณ์กล้องสำหรับรูปแบบหรือเป้าหมายนั้นจาก StreamConfigurationMap.getOutputSizes(int) (I1ee97, b/192911449)
- เพิ่มข้อมูล Exif ลงในรูปภาพที่ถ่าย (I01ff0, b/193342619)
- ใน ImageCapture ให้ส่งคืน URI ของรูปภาพที่บันทึกไว้หากตำแหน่งที่บันทึกคือไฟล์ (Ib5b49, b/149241379)
- แก้ไขปัญหาที่รูปภาพที่ถ่ายด้วยแฟลชมีสีเข้มในอุปกรณ์หลายรุ่น (I4e510)
เวอร์ชัน 1.1.0-alpha07
21 กรกฎาคม 2021
androidx.camera:camera-camera2:1.1.0-alpha07
androidx.camera:camera-core:1.1.0-alpha07
และ androidx.camera:camera-lifecycle:1.1.0-alpha07
ออกอากาศแล้ว เวอร์ชัน 1.1.0-alpha07 มีคอมมิตเหล่านี้
การแก้ไขข้อบกพร่อง
- แก้ไขปัญหา Samsung Galaxy Note 5 ที่กล้องค้างหลังจากถ่ายภาพโดยเปิด/ตั้งค่าแฟลชเป็นอัตโนมัติในสภาพแวดล้อมที่มืด (If6871)
- แก้ไขปัญหา
YuvToJpegProcessor
EOFException เมื่อเปิดใช้โหมดส่วนขยายและตั้งค่าโหมดImageCapture#CAPTURE_MODE_MAX_QUALITY
(I538bd, b/192017012)
เวอร์ชัน 1.1.0-alpha06
30 มิถุนายน 2021
androidx.camera:camera-camera2:1.1.0-alpha06
androidx.camera:camera-core:1.1.0-alpha06
และ androidx.camera:camera-lifecycle:1.1.0-alpha06
ออกอากาศแล้ว เวอร์ชัน 1.1.0-alpha06 มีคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- โปรโมต API การชดเชยแสงทดลองสำหรับ camera-core (I08ee8)
- เพิ่ม API isFocusMeteringSupported ใน CameraInfo ซึ่ง ช่วยให้แอปพลิเคชันตรวจสอบได้ว่ากล้องปัจจุบันรองรับ FocusMeteringAction ที่ระบุหรือไม่ (Ib45ae, b/188606490)
- เปิดเผย API getResolutionInfo เพื่อให้ข้อมูลความละเอียดสำหรับ Preview, ImageCapture และ ImageAnalysis (I2b613, b/188600718)
- เลื่อนระดับ API ทดลองต่อไปนี้เป็น API อย่างเป็นทางการ CameraXConfig.Builder#setAvailableCamerasLimiter(), CameraXConfig.Builder#setMinimumLoggingLevel(), CameraXconfig.Builder#setSchedulerHandler(), CameraXConfig#getAvailableCamerasLimiter(), CameraXConfig#getMinimumLoggingLevel(), CameraXConfig#getCameraExecutor(), CameraXConfig#getSchedulerHandler() (I2ade2)
- เปิดเผยอินเทอร์เฟซ CameraProvider เพื่อให้สิทธิ์เข้าถึงชุดกล้อง (I1a7b1)
- โปรโมต UseCaseGroup API เวอร์ชันทดลองสำหรับ camera-core, camera-lifecycle และ camera-video เพิ่ม
ViewPort#getLayoutDirection
,ViewPort.Builder#setLayoutDirection
และViewPort.Builder#setScaleType
สำหรับปรับแต่งวิวพอร์ต (I7cee8)
เวอร์ชัน 1.1.0-alpha05
2 มิถุนายน 2021
androidx.camera:camera-camera2:1.1.0-alpha05
androidx.camera:camera-core:1.1.0-alpha05
และ androidx.camera:camera-lifecycle:1.1.0-alpha05
ออกอากาศแล้ว เวอร์ชัน 1.1.0-alpha05 มีคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- นำชั้นเรียน
Camera2CameraFilter
ออกแล้ว แนะนำให้เลือกกล้องโดยใช้ CameraFilter และเรียกข้อมูล CameraCharacteristics หรือข้อมูลอื่นๆ ที่เกี่ยวข้องกับ Camera2 ผ่าน Camera2CameraInfo หากจำเป็น (Ib887c) ExperimentalCameraFilter
ตอนนี้ API เหล่านี้พ้นระยะทดลอง และกลายเป็น API อย่างเป็นทางการแล้ว โดยสามารถใช้ได้โดยไม่ต้องมี OptIn ที่มีการอธิบายประกอบ (I4bc94)- เพิ่ม API สถานะกล้องที่แสดงผ่าน
CameraInfo#getCameraState()
(Ia86b4) - เพิ่ม API เวอร์ชันทดลอง
CameraInfo#getCameraSelector()
ซึ่งจะแสดงผล CameraSelector ที่ไม่ซ้ำกันสำหรับกล้อง (I77f9f)
การแก้ไขข้อบกพร่อง
- แก้ไขปัญหาที่ ListenableFuture แสดงผลใน setZoomRatio และ setLinearZoom ไม่สามารถดำเนินการให้เสร็จสมบูรณ์ในอุปกรณ์ Android 11 บางเครื่อง (I716d7)
- เร่งการสลับกล้องและลดอัตราการเกิดข้อผิดพลาดของอุปกรณ์กล้อง (I34c99)
- แทนที่ ExperimentalUseCaseGroupLifecycle ด้วย ExperimentalUseCaseGroup (I3b2ef, b/159033688)
เวอร์ชัน 1.1.0-alpha04
21 เมษายน 2021
androidx.camera:camera-camera2:1.1.0-alpha04
androidx.camera:camera-core:1.1.0-alpha04
และ androidx.camera:camera-lifecycle:1.1.0-alpha04
ออกอากาศแล้ว เวอร์ชัน 1.1.0-alpha04 มีคอมมิตเหล่านี้
การแก้ไขข้อบกพร่อง
- แก้ไขการรั่วไหลของหน่วยความจำที่เกิดจากหลายเธรดที่เข้าถึงคอลเล็กชันเดียวกันพร้อมกัน หน่วยความจำรั่วอาจทำให้อินสแตนซ์ Preview เก็บรักษา Activity หรือ Fragment ไว้ (I7b4b8)
- แทนที่คำอธิบายประกอบ
@Experimental
ด้วย@RequiresOptIn
ใน API เวอร์ชันทดลอง หากต้องการเรียกใช้ API ที่เป็นเวอร์ชันทดลอง ให้ใช้androidx.annotation.OptIn
แทนandroidx.annotation.experimental.UseExperimental
ที่เลิกใช้งานแล้ว (Iff226) - แก้ไข ImageCapture เมื่อเปิด/อัตโนมัติแฟลชแล้วจะถ่ายภาพบน Samsung Galaxy S7 ได้ไม่ชัด (I30001)
- เพิ่ม CameraState API ที่จะแสดงผ่าน CameraInfo (I75392)
เวอร์ชัน 1.1.0-alpha03
24 มีนาคม 2021
androidx.camera:camera-camera2:1.1.0-alpha03
androidx.camera:camera-core:1.1.0-alpha03
และ androidx.camera:camera-lifecycle:1.1.0-alpha03
ออกอากาศแล้ว เวอร์ชัน 1.1.0-alpha03 มีคอมมิตเหล่านี้
การแก้ไขข้อบกพร่อง
- ส่งออกรูปแบบ JPEG สำหรับ
ImageCapture#OnImageCapturedCallback
เมื่อเปิดใช้โหมดส่วนขยาย (I0d7b1) - แก้ไขข้อผิดพลาดในการเริ่มต้นในอุปกรณ์ UMIDIGI BISON (I57d9e, b/180818665)
- แก้ไขการแสดงตัวอย่างที่ยืดใน PreviewView ของ Samsung A3 (Iacb30, b/180121821)
เวอร์ชัน 1.1.0-alpha02
24 กุมภาพันธ์ 2021
androidx.camera:camera-camera2:1.1.0-alpha02
androidx.camera:camera-core:1.1.0-alpha02
และ androidx.camera:camera-lifecycle:1.1.0-alpha02
ออกอากาศแล้ว เวอร์ชัน 1.1.0-alpha02 มีคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- เพิ่ม API
ProcessCameraProvider.getAvailableCameraInfos()
เพื่อดึงข้อมูลเกี่ยวกับกล้องที่พร้อมใช้งานโดยตรง ซึ่งอาจเป็นกล้องทั้งหมดของอุปกรณ์ หรือกล้องที่เลือกโดยCameraSelector
ที่ระบุในCameraXConfig.Builder.setAvailableCamerasLimiter(CameraSelector)
(Ieac08)
การแก้ไขข้อบกพร่อง
- ตอนนี้ CameraX จะพยายามบังคับเปิดกล้องในการพยายามครั้งแรก ซึ่งอาจส่งผลให้ CameraX แย่งกล้องจากไคลเอ็นต์กล้องอื่นๆ เมื่อแอปมีลำดับความสำคัญสูงกว่า (Iab069, b/175820568)
- แก้ไขการทดสอบ Robolectric ที่ล้มเหลวเมื่อใช้ setAvailableCamerasLimiter ใน CameraXConfig (Ice307)
- การเปลี่ยนแปลงนี้จะตรวจหาข้อยกเว้นเมื่อคิวรูปภาพเต็มใน ImageAnalysis ดังนั้นแทนที่จะเกิดข้อขัดข้อง คุณอาจเห็นว่ากรณีการใช้งานอื่นๆ หยุดทำงานหรือทำงานช้า เช่น ตัวอย่างหยุดทำงาน/ทำงานช้า (Ic12da, b/175851631)
- แก้ไข ExtensionsErrorListener เพื่อรายงานข้อผิดพลาดเมื่อมีการเชื่อมโยงเฉพาะ Preview หรือ ImageCapture (I5ae39)
- แก้ไขการถดถอยของประสิทธิภาพ ImageCapture โดยนำการตรวจสอบตำแหน่งที่บันทึกรูปภาพออกก่อนถ่ายรูปภาพ หลังจากทำการเปลี่ยนแปลงนี้ หากปลายทางการบันทึกไม่ถูกต้อง ระบบจะใช้เวลานานขึ้นในการตอบกลับว่าไม่สำเร็จ เนื่องจากระบบจะพยายามบันทึกรูปภาพหลังจากถ่ายรูป (I1fd4e, b/177061560)
- แก้ไขการถดถอยของประสิทธิภาพ ImageCapture ด้วย OutputFileOptions ประเภท "File" (I5164a, b/177061560)
- อัปเดตเอกสารประกอบเพื่อแนะนำไม่ให้ใช้
ProcessCameraProvider.configureInstance(...)
จาก โค้ดไลบรารี (Ib8a9f)
เวอร์ชัน 1.1.0-alpha01
27 มกราคม 2021
androidx.camera:camera-camera2:1.1.0-alpha01
androidx.camera:camera-core:1.1.0-alpha01
และ androidx.camera:camera-lifecycle:1.1.0-alpha01
ออกอากาศแล้ว เวอร์ชัน 1.1.0-alpha01 มีคอมมิตเหล่านี้
การแก้ไขข้อบกพร่อง
- รวมวิธีแก้ปัญหาสำหรับข้อมูลรูปภาพที่เสียหายเป็นระยะๆ ใน JPEG บนกล้องหลังของ SM-G930T (I52001, b/159831206)
- แก้ไข
IllegalArgumentException
ที่เกิดขึ้นเมื่อขนาดทั้งหมดที่รองรับการแสดงตัวอย่างมีขนาดเล็กกว่า 640x480 และขนาดการแสดงผลมีขนาดใหญ่กว่า 640x480 (I2a63c, b/150506192) - ตอนนี้ทรัพยากรในไลบรารีที่ไม่มีการประกาศทรัพยากรสาธารณะอย่างชัดเจน (เช่น ผ่าน public.xml) จะเป็นแบบส่วนตัวโดยค่าเริ่มต้น (Ia1dcc, b/170882230)
กล้อง - Camera2, กล้อง - Core และกล้อง - วงจรชีวิต เวอร์ชัน 1.0.2
เวอร์ชัน 1.0.2
29 กันยายน 2021
androidx.camera:camera-camera2:1.0.2
androidx.camera:camera-core:1.0.2
และ androidx.camera:camera-lifecycle:1.0.2
ออกอากาศแล้ว เวอร์ชัน 1.0.2 มีคอมมิตเหล่านี้
การแก้ไขข้อบกพร่อง
- แก้ไขปัญหาที่รูปภาพที่ถ่ายเบลอ
ในโหมด
MAXIMIZE_QUALITY
(I173a9, b/193823892) - แก้ไขปัญหาที่รูปภาพที่ถ่ายด้วยแฟลชมีสีเข้มในอุปกรณ์หลายเครื่อง (I4e510)
กล้อง - Camera2, กล้อง - Core และกล้อง - วงจรการใช้งาน เวอร์ชัน 1.0.1
เวอร์ชัน 1.0.1
21 กรกฎาคม 2021
androidx.camera:camera-camera2:1.0.1
androidx.camera:camera-core:1.0.1
และ androidx.camera:camera-lifecycle:1.0.1
ออกอากาศแล้ว เวอร์ชัน 1.0.1 มีคอมมิตเหล่านี้
การแก้ไขข้อบกพร่อง
แก้ไขปัญหาที่
ListenableFuture
ที่แสดงในsetZoomRatio
และsetLinearZoom
ไม่สามารถดำเนินการให้เสร็จสมบูรณ์ในอุปกรณ์ Android 11 บางรุ่น (I716d7)แก้ไขปัญหาที่กล้องค้างในสถานะปิดกล้องในอุปกรณ์บางรุ่นและทำให้แสดงตัวอย่างเป็นสีดำ (I34c99)
กล้อง - Camera2, กล้อง - Core และกล้อง - วงจรชีวิต เวอร์ชัน 1.0.0
เวอร์ชัน 1.0.0
5 พฤษภาคม 2021
androidx.camera:camera-camera2:1.0.0
androidx.camera:camera-core:1.0.0
และ androidx.camera:camera-lifecycle:1.0.0
ออกอากาศแล้ว เวอร์ชัน 1.0.0 มีคอมมิตเหล่านี้
ฟีเจอร์หลักของเวอร์ชัน 1.0.0
- CameraX รองรับPreview, ImageCapture และ Analysis
- CameraX จัดการวงจรของกล้องภายใน API ที่ใช้งานง่าย
- CameraX มีเป้าหมายที่จะมอบเลเยอร์ความเข้ากันได้ซึ่งจะช่วยแก้ไขปัญหาต่างๆ ในระบบนิเวศของกล้อง Android
ปัญหาที่ทราบ
เวอร์ชัน 1.0.0-rc05
21 เมษายน 2021
androidx.camera:camera-camera2:1.0.0-rc05
androidx.camera:camera-core:1.0.0-rc05
และ androidx.camera:camera-lifecycle:1.0.0-rc05
ออกอากาศแล้ว เวอร์ชัน 1.0.0-rc05 มีคอมมิตต่อไปนี้
การแก้ไขข้อบกพร่อง
- แก้ไข ImageCapture เมื่อเปิด/อัตโนมัติแฟลชแล้วจะถ่ายภาพบน Samsung Galaxy S7 ได้ไม่ชัด (I30001)
เวอร์ชัน 1.0.0-rc04
24 มีนาคม 2021
androidx.camera:camera-camera2:1.0.0-rc04
androidx.camera:camera-core:1.0.0-rc04
และ androidx.camera:camera-lifecycle:1.0.0-rc04
ออกอากาศแล้ว เวอร์ชัน 1.0.0-rc04 มีคอมมิตเหล่านี้
การแก้ไขข้อบกพร่อง
- แก้ไขข้อผิดพลาดในการเริ่มต้นในอุปกรณ์ UMIDIGI BISON (I57d9e, b/180818665)
เวอร์ชัน 1.0.0-rc03
24 กุมภาพันธ์ 2021
androidx.camera:camera-camera2:1.0.0-rc03
androidx.camera:camera-core:1.0.0-rc03
และ androidx.camera:camera-lifecycle:1.0.0-rc03
ออกอากาศแล้ว เวอร์ชัน 1.0.0-rc03 มีคอมมิตเหล่านี้
การแก้ไขข้อบกพร่อง
- แก้ไขข้อผิดพลาดของรูปแบบในเอกสารของ
ProcessCameraProvider#getInstance
- แก้ไขการทดสอบ Robolectric ที่ล้มเหลวเมื่อใช้ setAvailableCamerasLimiter ใน CameraXConfig
- แก้ไขการถดถอยของประสิทธิภาพ ImageCapture โดยนำการตรวจสอบตำแหน่งที่บันทึกรูปภาพออกก่อนถ่ายรูปภาพ หลังจากทำการเปลี่ยนแปลงนี้ หากปลายทางการบันทึกไม่ถูกต้อง ระบบจะใช้เวลานานขึ้นในการตอบกลับว่าดำเนินการไม่สำเร็จ เนื่องจากระบบจะพยายามบันทึกรูปภาพหลังจากถ่ายรูป
- การเปลี่ยนแปลงนี้จะตรวจหาข้อยกเว้นเมื่อคิวรูปภาพเต็มใน ImageAnalysis ดังนั้นแทนที่จะเกิดข้อขัดข้อง คุณอาจเห็นว่า Use Case อื่นๆ หยุดทำงานหรือทำงานช้าลง เช่น ตัวอย่างหยุดทำงาน/ทำงานช้าลง
- รวมวิธีแก้ปัญหาสำหรับข้อมูลรูปภาพที่เสียหายเป็นระยะๆ ใน JPEG บนกล้องหลังของ SM-G930T (I52001, b/159831206)
- การเปลี่ยนแปลงนี้จะตรวจหาข้อยกเว้นเมื่อคิวรูปภาพเต็มใน ImageAnalysis ดังนั้นแทนที่จะเกิดข้อขัดข้อง คุณอาจเห็นว่ากรณีการใช้งานอื่นๆ หยุดทำงานหรือทำงานช้า เช่น ตัวอย่างหยุดทำงาน/ทำงานช้า (Ic12da, b/175851631)
- แก้ไขการทดสอบ Robolectric ที่ล้มเหลวเมื่อใช้ setAvailableCamerasLimiter ใน CameraXConfig (Ice307)
- แก้ไขการถดถอยของประสิทธิภาพ ImageCapture โดยนำการตรวจสอบตำแหน่งที่บันทึกรูปภาพออกก่อนถ่ายรูปภาพ หลังจากทำการเปลี่ยนแปลงนี้ หากปลายทางการบันทึกไม่ถูกต้อง ระบบจะใช้เวลานานขึ้นในการตอบกลับว่าไม่สำเร็จ เนื่องจากระบบจะพยายามบันทึกรูปภาพหลังจากถ่ายรูป (I1fd4e, b/177061560)
- แก้ไขการถดถอยของประสิทธิภาพ ImageCapture ด้วย OutputFileOptions ประเภท "File" (I5164a, b/177061560)
เวอร์ชัน 1.0.0-rc02
27 มกราคม 2021
androidx.camera:camera-camera2:1.0.0-rc02
androidx.camera:camera-core:1.0.0-rc02
และ androidx.camera:camera-lifecycle:1.0.0-rc02
ออกอากาศแล้ว เวอร์ชัน 1.0.0-rc02 มีคอมมิตเหล่านี้
การแก้ไขข้อบกพร่อง
- แก้ไขปัญหา IllegalArgumentException ที่เกิดขึ้นเมื่อขนาดที่รองรับการแสดงตัวอย่างทั้งหมดมีขนาดเล็กกว่า 640x480 และขนาดการแสดงผลมีขนาดใหญ่กว่า 640x480 (b/150506192)
จำกัดจำนวนครั้งที่พยายามเปิดกล้องอีกครั้ง ขณะพยายามกู้คืนจากปัญหาบางอย่างเมื่อเปิดกล้อง CameraX จะไม่พยายามเปิดกล้องอีกครั้งอย่างไม่มีกำหนด แต่จะหยุดหลังจากลองอีกครั้งเป็นเวลา 10 วินาทีI435d2
แก้ไข
IllegalArgumentException
ที่เกิดขึ้นเมื่อขนาดทั้งหมดที่รองรับการแสดงตัวอย่างมีขนาดเล็กกว่า 640x480 และขนาดการแสดงผลมีขนาดใหญ่กว่า 640x480 (I2a63c, b/150506192)
เวอร์ชัน 1.0.0-rc01
16 ธันวาคม 2020
androidx.camera:camera-camera2:1.0.0-rc01
androidx.camera:camera-core:1.0.0-rc01
และ androidx.camera:camera-lifecycle:1.0.0-rc01
ออกอากาศแล้ว เวอร์ชัน 1.0.0-rc01 มีคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- เปลี่ยน CameraFilter และ Camera2Filter เพื่อรับ CameraInfo (I6883d)
- เพิ่ม Camera2CameraControl เวอร์ชันทดลองในคลาสเพื่อให้ทำงานร่วมกับ Camera2 API ได้แบบไดนามิก (I45cf3)
- เปลี่ยนชื่อ Camera2CameraInfo#fromCameraInfo เป็น #from (Ia2bd6)
- เพิ่ม API setAvailableCamerasLimiter ที่เป็นเวอร์ชันทดลองลงใน CameraXConfig เพื่อให้แอปเพิ่มประสิทธิภาพเวลาในการเริ่มต้นได้ โดยหลีกเลี่ยงการเริ่มต้นกล้องที่ไม่ได้ใช้ (I6cf88)
- เพิ่มวิธีการทดลอง
CameraXConfig.Builder#setMinimumLoggingLevel()
เพื่ออนุญาตให้ตั้งค่าระดับการบันทึกขั้นต่ำสำหรับบันทึกของ CameraX หากไม่ได้ตั้งค่าไว้ ระบบจะใช้Log#DEBUG
เป็นค่าเริ่มต้น (Ic3245)
การแก้ไขข้อบกพร่อง
- รวมวิธีแก้ปัญหาสำหรับข้อมูลรูปภาพที่เสียหายเป็นระยะๆ ใน JPEG ในกล้องหลังของ SM-G930V (I5aca5, b/159831206)
- แก้ไขปัญหาที่การถ่ายภาพไม่ได้รับผลลัพธ์เมื่อเปิดแฟลชเสมอ/เปิด และสภาพแวดล้อมมืดในอุปกรณ์ Samsung SM-A716 (If98b2, b/172036589)
- แก้ไขปัญหาที่หยุดการแสดงตัวอย่างไม่ได้โดยการโทร
Preview.setSurfaceProvider(null)
(I3ac18) - แก้ไขปัญหาการวางแนวเมื่อถ่ายภาพ 4:3 ในอุปกรณ์บางรุ่น (I0e3fb, b/171492111)
กล้อง Camera2, Core และ Lifecycle เวอร์ชัน 1.0.0-beta12
11 พฤศจิกายน 2020
androidx.camera:camera-camera2:1.0.0-beta12
androidx.camera:camera-core:1.0.0-beta12
และ androidx.camera:camera-lifecycle:1.0.0-beta12
ออกอากาศแล้ว เวอร์ชัน 1.0.0-beta12 มีคอมมิตเหล่านี้
การแก้ไขข้อบกพร่อง
- ปิดใช้แฟลชอัตโนมัติในอุปกรณ์ Samsung A3 เพื่อแก้ไขข้อขัดข้อง เมื่อถ่ายรูปด้วยโหมด AE แฟลชอัตโนมัติในอุปกรณ์ Samsung A3 (Ia5fe3, b/157535165)
- แก้ไขปัญหาที่การแสดงตัวอย่างยืดออกในอุปกรณ์ Nexus 4 ที่ใช้ Android L (API ระดับ 21 และ 22) (I4d407, b/158749159)
OnImageCapturedCallback#onCaptureSuccess
การใช้งานคลาสฐาน จะไม่ปิดรูปภาพอีกต่อไป ซึ่งมีไว้เพื่อป้องกัน ลักษณะการทำงานที่ไม่คาดคิดสำหรับนักพัฒนาแอป นักพัฒนาแอปไม่ควรใช้ super.onCaptureSuccess เพื่อปิดรูปภาพ (Ifbf9c)- เราเลิกใช้งานแอนนอเทชัน Experimental ในรูปแบบ androidx แล้ว เพื่อให้สอดคล้องกับ Kotlin โดยเราได้แทนที่ด้วย คำอธิบายประกอบ RequiresOptIn และอัปเดต Linter ที่ใช้ใน Java เพื่อ รองรับทั้งคำอธิบายประกอบ Kotlin ใหม่และตัวแปร androidx ใหม่ (I52495, b/151331381)
Camera-Camera2 เวอร์ชัน 1.0.0-beta11
14 ตุลาคม 2020
androidx.camera:camera-camera2:1.0.0-beta11
ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.0.0-beta11 มีคอมมิตเหล่านี้
ฟีเจอร์ใหม่
- รองรับ API ของ Android 11
CONTROL_ZOOM_RATIO
สำหรับการซูมในอุปกรณ์ Android 11 ขึ้นไปที่มีCONTROL_ZOOM_RATIO_RANGE
ที่ถูกต้อง (I62cc6)
การแก้ไขข้อบกพร่อง
- แก้ไขปัญหา NumberFormatException ที่เกิดขึ้นเมื่อรหัสกล้องเป็นรหัสกล้องที่ไม่ใช่จำนวนเต็ม (Ib2228)
- ปรับปรุงเวลาในการตอบสนองของการเริ่มต้น CameraX และ bindToLifecycle (I61dc5)
- การสร้าง UseCase ไม่จำเป็นต้องเริ่มต้น CameraX
ให้เสร็จสมบูรณ์ การกำหนดค่าเฉพาะการใช้งานทั้งหมดจะตั้งค่าใน
UseCase เมื่อแนบกับอินสแตนซ์กล้อง ซึ่งสำหรับ API สาธารณะคือ
ProcessCameraProvider.bindToLifecycle()
(Ia5411) <UseCase>.getTargetRotation()
จะแสดงผลSurface.ROTATION_0
หากเรียกใช้ก่อนที่จะแนบกับอินสแตนซ์กล้อง เว้นแต่จะมีการตั้งค่า targetRotation ใน Builder หรือ UseCase (I80fcd)
Camera-Core เวอร์ชัน 1.0.0-beta11
14 ตุลาคม 2020
androidx.camera:camera-core:1.0.0-beta11
ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.0.0-beta11 มีคอมมิตเหล่านี้
ฟีเจอร์ใหม่
- รองรับ API CONTROL_ZOOM_RATIO
ของ Android 11 สำหรับการซูมใน
อุปกรณ์ Android 11 ขึ้นไปที่มี CONTROL_ZOOM_RATIO_RANGE
ที่ถูกต้อง
(I62cc6)
การแก้ไขข้อบกพร่อง
- แก้ไขปัญหา NumberFormatException ที่เกิดขึ้นเมื่อรหัสกล้องเป็นรหัสกล้องที่ไม่ใช่จำนวนเต็ม (Ib2228)
- การสร้าง UseCase ไม่จำเป็นต้องเริ่มต้น CameraX
ให้เสร็จสมบูรณ์ การกำหนดค่าเฉพาะการใช้งานทั้งหมดจะตั้งค่าใน
UseCase เมื่อแนบกับอินสแตนซ์กล้อง ซึ่งสำหรับ API สาธารณะคือ
ProcessCameraProvider.bindToLifecycle()
(Ia5411) <UseCase>.getTargetRotation()
จะแสดงผลSurface.ROTATION_0
หากเรียกใช้ก่อนที่จะแนบกับอินสแตนซ์กล้อง เว้นแต่จะมีการตั้งค่า targetRotation ใน Builder หรือ UseCase (I80fcd)
Camera-Core เวอร์ชัน 1.0.0-beta10
23 กันยายน 2020
androidx.camera:camera-core:1.0.0-beta10
ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.0.0-beta10 มีคอมมิตเหล่านี้
การแก้ไขข้อบกพร่อง
- แก้ไขข้อบกพร่องในการตรวจสอบความถูกต้องของปลายทางการบันทึกไฟล์สำหรับการจับภาพ (I8c565, b/167697553)
Camera-Camera2 เวอร์ชัน 1.0.0-beta10
23 กันยายน 2020
androidx.camera:camera-camera2:1.0.0-beta10
ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.0.0-beta10 มีคอมมิตเหล่านี้
การแก้ไขข้อบกพร่อง
- เปิดตัวเพื่อรองรับ Camera-Core 1.0.0-beta10
Camera-Camera2 เวอร์ชัน 1.0.0-beta09
16 กันยายน 2020
androidx.camera:camera-camera2:1.0.0-beta09
ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.0.0-beta09 มีคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- Camera2CameraInfo จะรับอินสแตนซ์ CameraInfo เมื่อสร้างขึ้นเพื่อดึงข้อมูลที่เกี่ยวข้องกับ Camera2 แทนที่จะระบุเมธอดแบบคงที่ (I5b844)
การแก้ไขข้อบกพร่อง
- แก้ไขปัญหาอัตราส่วนภาพเป้าหมายในอุปกรณ์แท็บเล็ต ควรเลือกขนาด 16:9 เมื่อตั้งค่าสัดส่วนการแสดงผลเป้าหมายเป็น
AspectRatio.RATIO_16_9
(Ib7fcf, b/151969438) - ส่ง
InitializationException
เพื่อให้แอปจัดการ AssertionError ที่เกิดขึ้นเมื่อสร้าง CameraCharacteristics ได้อย่างราบรื่น (I89c8c, b/160524721) - เพิ่มอินเทอร์เฟซเวอร์ชันทดลองสำหรับ ExposureCompensation (If96c7)
Camera-Core เวอร์ชัน 1.0.0-beta09
16 กันยายน 2020
androidx.camera:camera-core:1.0.0-beta09
ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.0.0-beta09 มีคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- แก้ไขข้อบกพร่องที่วิวพอร์ตถูกทำเครื่องหมายเป็นไม่ใช่ Null ใน UseCaseGroup นักพัฒนาแอปควรสร้าง Viewport ได้โดยไม่ต้องตั้งค่า Viewport (Ie3d2e)
- เพิ่มอินเทอร์เฟซเวอร์ชันทดลองสำหรับ
ExposureCompensation
(If96c7) - อนุญาตการหมุนเป้าหมายโดยพลการสำหรับตัวอย่าง ระบบจะคำนวณและส่งคืนข้อมูลการแปลงไปยังผู้ใช้แบบเรียลไทม์ผ่าน
TranformationInfoListener
การเรียกกลับใหม่ (I21470)
การแก้ไขข้อบกพร่อง
- แก้ไขปัญหาที่แฟลชในอุปกรณ์บางเครื่องไม่ปิด ปัญหานี้เกิดขึ้นเมื่อตั้งค่าโหมดแฟลชเป็น
FLASH_MODE_ON
เพื่อถ่ายรูป และเปลี่ยนเป็นFLASH_MODE_OFF
เมื่อแฟลชทำงาน อาการคล้ายกับการเปิดใช้โหมดไฟฉาย (Ib4451, b/162568128) - บังคับให้ PreviewView ใช้ TextureView หากเปิดใช้เอฟเฟกต์ส่วนขยาย และการติดตั้งใช้งานไลบรารีของผู้ให้บริการต้องดำเนินการพิเศษบนพื้นผิวเอาต์พุต (I0c3cc)
- แก้ไขการรั่วไหลของกิจกรรม/Fragment เมื่อมีการส่งบริบทของกิจกรรม/Fragment ไปยัง
ProcessCameraProvider.getInstance(Context)
ปัญหาที่ทราบ
- เมื่อตั้งค่า ViewPort แล้ว สี่เหลี่ยมผืนผ้าครอบตัดของ ImageCapture อาจไม่ถูกต้องในอุปกรณ์ที่หมุนบัฟเฟอร์รูปภาพใน HAL ปัญหานี้จะได้รับการแก้ไขในการเปิดตัวรุ่นถัดไป
Camera-Camera2 เวอร์ชัน 1.0.0-beta08
19 สิงหาคม 2020
androidx.camera:camera-camera2:1.0.0-beta08
ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.0.0-beta08 มีคอมมิตเหล่านี้
การแก้ไขข้อบกพร่อง
- เพิ่มประสิทธิภาพ bindToLifecycle เพื่อให้ทำงานได้อย่างรวดเร็วในเทรดหลัก (I1d57e)
- DisplayOrientedMeteringPointFactory รับอินสแตนซ์ CameraInfo แทน CameraSelector เพื่อให้มีการแมปโดยตรงกับ กล้องที่โรงงานจะสร้างจุดให้ คลาสทั้งหมด ที่ใช้ DisplayOrientedMeteringPointFactory จะรับอินสแตนซ์ CameraInfo แทน CameraSelector ด้วย (I400c1)
- แก้ไขปัญหาการจัดกลุ่มขนาดสัดส่วนการแสดงผลความละเอียดอัตโนมัติที่ระบบเลือกขนาด 16:9 mod16 (864x480) เมื่อการตั้งค่าความละเอียดเป้าหมายเป็น 2016x1080 และมีขนาด 1920x1080 16:9 อื่นที่รองรับ (I53167, b/159363774)
- แก้ไขปัญหา CameraControl ที่ใช้งานไม่ได้เนื่องจาก Race Condition (I2279f, b/152333890, b/160714166)
Camera-Core เวอร์ชัน 1.0.0-beta08
19 สิงหาคม 2020
androidx.camera:camera-core:1.0.0-beta08
ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.0.0-beta08 มีคอมมิตเหล่านี้
การเปลี่ยนแปลง API
DisplayOrientedMeteringPointFactory
รับCameraInfo
อินสแตนซ์แทนCameraSelector
เพื่อให้มีการแมปโดยตรงกับ กล้องที่โรงงานจะสร้างจุดให้ ชั้นเรียนทั้งหมด ที่ใช้DisplayOrientedMeteringPointFactory
จะใช้CameraInfo
อินสแตนซ์แทนCameraSelector
(I400c1)
การแก้ไขข้อบกพร่อง
- สำหรับการจับภาพ ให้เขียนทับแฟล็กพลิกแนวนอนในข้อมูลเมตาตามทิศทางของกล้อง (I28499)
- การเริ่มต้นไม่ควรขัดข้องอีกต่อไปเมื่อใช้ Context
ที่ไม่ได้แสดงผลออบเจ็กต์ Application จาก
Context.getApplicationContext()
(I3d3c9, b/160817073)
Camera-Camera2 เวอร์ชัน 1.0.0-beta07
22 กรกฎาคม 2020
androidx.camera:camera-camera2:1.0.0-beta07
ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.0.0-beta07 มีคอมมิตเหล่านี้
การแก้ไขข้อบกพร่อง
- แก้ไขปัญหาที่การแสดงตัวอย่างยืดออกในอุปกรณ์รุ่นเดิมที่ใช้ Android 5.0 (I0c03a)
- ยกเว้นขนาดที่รองรับ JPEG บางขนาดซึ่งจะทำให้เกิดปัญหา WYSIWYG ในอุปกรณ์บางรุ่น (Ib5128)
Camera-Core เวอร์ชัน 1.0.0-beta07
22 กรกฎาคม 2020
androidx.camera:camera-core:1.0.0-beta07
ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.0.0-beta07 มีคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- รวม
FIT_CENTER
,FIT_START
และFIT_END
ให้เข้ากับสไตล์ของFIT
FIT
หมายความว่าสี่เหลี่ยมผืนผ้าครอบตัดที่ส่งคืนจะเป็นสี่เหลี่ยมผืนผ้าเซ็นเซอร์สูงสุดที่เป็นไปได้ (Ia73c3) - วิวพอร์ตจะกำหนดค่าสี่เหลี่ยมผืนผ้าครอบตัดของตัวอย่าง มีเพียงพื้นที่ที่ครอบคลุมโดยสี่เหลี่ยมผืนผ้าครอบตัดเท่านั้นที่ควรแสดงต่อผู้ใช้ปลายทาง (I142a4)
การแก้ไขข้อบกพร่อง
- แก้ไขปัญหาที่การแสดงตัวอย่างยืดออกในอุปกรณ์รุ่นเดิมที่ใช้ Android 5.0 (I0c03a)
- แก้ไขปัญหาข้อยกเว้น
ConcurrentModificationException
เมื่อยกเลิกการเชื่อมโยงกรณีการใช้งาน (I371c0)
Camera-Camera2 เวอร์ชัน 1.0.0-beta06
24 มิถุนายน 2020
androidx.camera:camera-camera2:1.0.0-beta06
ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.0.0-beta06 มีคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- เพิ่มอินเทอร์เฟซเวอร์ชันทดลองสำหรับการกรองกล้องตามรหัสกล้อง และ CameraCharacteristics (I28f61)
การแก้ไขข้อบกพร่อง
- แก้ไขปัญหาที่ startFocusAndMetering ไม่สามารถ โฟกัสใน Samsung Galaxy S7 ได้สำเร็จ (If3be7, b/159039233)
- แก้ไขปัญหาปิดกล้องไม่ได้หลังจากออกจากแอป (I7a7b3)
- แก้ไขการสลับกล้องซ้ำๆ ที่ทำให้ตัวอย่างหยุดทำงานเมื่อใช้การติดตั้งใช้งาน SurfaceView ของ PreviewView (I920ce)
CameraControl#startFocusAndMetering
จะล้มเหลวหากไม่มี MeteringPoint ที่ระบุใดๆ สร้างสี่เหลี่ยมผืนผ้าสำหรับการวัดที่ถูกต้องได้ (Id53ce)
Camera-Core เวอร์ชัน 1.0.0-beta06
24 มิถุนายน 2020
androidx.camera:camera-core:1.0.0-beta06
ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.0.0-beta06 มีคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- เพิ่มอินเทอร์เฟซเวอร์ชันทดลองสำหรับการกรองกล้องตามรหัสกล้อง และ CameraCharacteristics (I28f61)
การแก้ไขข้อบกพร่อง
- ตอนนี้กำหนดค่า CameraX ด้วย
ProcessCameraProvider#configureInstance()
ก่อนโทรได้แล้วProcessCameraProvider#getInstance()
ซึ่งช่วยให้ปรับแต่งCameraXConfig
ได้โดยไม่ต้องใช้CameraXConfig.Provider
ในคลาส Application ของแอป (Ia1a8d) CameraControl#startFocusAndMetering
จะล้มเหลวหากไม่มี MeteringPoint ที่ระบุใดๆ สร้างสี่เหลี่ยมผืนผ้าสำหรับการวัดที่ถูกต้องได้ (Id53ce)
Camera-Camera2 เวอร์ชัน 1.0.0-beta05
10 มิถุนายน 2020
androidx.camera:camera-camera2:1.0.0-beta05
ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.0.0-beta05 มีคอมมิตเหล่านี้
การแก้ไขข้อบกพร่อง
- แก้ไขข้อขัดข้องเมื่อเริ่มต้นแอปขณะเริ่มต้น CameraX ในขณะที่โทรศัพท์อยู่ในโหมดห้ามรบกวน
InitializationException
มีCameraUnavailableException
ที่จะตั้งค่าเป็นListenableFuture
ของผลการเริ่มต้นแทนที่จะทำให้แอปพลิเคชันขัดข้อง (I9909a, b/149413835) - แก้ไขข้อขัดข้องเมื่อโทรหา
startFocusAndMetering
ในอุปกรณ์ที่CONTROL_AF_STATE
เป็น Null (Ife55e, b/157084254)
Camera-Core เวอร์ชัน 1.0.0-beta05
10 มิถุนายน 2020
androidx.camera:camera-core:1.0.0-beta05
ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.0.0-beta05 มีคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- แก้ไขข้อขัดข้องเมื่อเริ่มต้นแอปขณะเริ่มต้น CameraX ในขณะที่โทรศัพท์อยู่ในโหมดห้ามรบกวน ระบบจะตั้งค่า
InitializationException
ที่มีCameraUnavailableException
เป็นListenableFuture
ของผลการเริ่มต้นแทนที่จะทำให้แอปพลิเคชันขัดข้อง (I9909a, b/149413835)
การแก้ไขข้อบกพร่อง
- อัปเดต Javadoc ของ
setTargetResolution
และsetTargetRotation
(Iae16f)
Camera-Camera2 เวอร์ชัน 1.0.0-beta04
27 พฤษภาคม 2020
androidx.camera:camera-camera2:1.0.0-beta04
ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.0.0-beta04 มีคอมมิตเหล่านี้
การแก้ไขข้อบกพร่อง
- อนุญาตให้แอปพลิเคชันที่อนุญาตตั้งค่าพารามิเตอร์คำขอจับภาพ Camera2 ผ่าน
Camera2Interop
โดยไม่ทำให้เกิดข้อขัดข้อง โปรดทราบว่าหากมีปัญหาเกิดขึ้นจากการลบล้างพารามิเตอร์ เราไม่รับประกันความเสถียรและลักษณะการทำงานเมื่อลบล้างพารามิเตอร์โดยใช้ Camera2Interop (Ibe5a1, b/149103700) - แก้ไขการเริ่มต้นอัตโนมัติเมื่อใช้แอปในอุปกรณ์ที่ใช้ภาษาจำลอง (I3bef3, b/154767663)
- แปลงบันทึกข้อผิดพลาดที่แปลงแล้วซึ่งเกี่ยวข้องกับ Use Case ที่แยกออกมาเป็นบันทึกการแก้ไขข้อบกพร่องใน Camera2CameraImpl (I1a565, b/154422490)
- แก้ไขปัญหาที่บางครั้งรูปภาพที่ถ่ายมืดเกินไปแม้ว่าจะเปิดแฟลชแล้วก็ตาม (I5d9fa, b/149729613)
- แก้ไขข้อบกพร่องที่บัฟเฟอร์ใน
ImageProxy
จากImageCapture
ไม่ได้กรอไปข้างหน้า (I0c455, b/153249512) - แก้ไขปัญหาที่การเชื่อมโยง ImageCapture เท่านั้น (1) ถ่ายภาพด้วย MAX_QUALITY ไม่สำเร็จ (2) สร้างคุณภาพของรูปภาพไม่ดีเนื่องจากการเปิดรับแสงอัตโนมัติไม่ทำงาน (I17782, b/145326998)
- ปรับปรุงความน่าเชื่อถือของการเปิดกล้องอีกครั้งเมื่อกระบวนการอื่นหรือเส้นทางโค้ดขโมยกล้องทำให้ CameraX ถูกตัดการเชื่อมต่อ (I1fbc3, b/153714651)
Camera-Core เวอร์ชัน 1.0.0-beta04
27 พฤษภาคม 2020
androidx.camera:camera-core:1.0.0-beta04
ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.0.0-beta04 มีคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- เพิ่ม API เวอร์ชันทดลอง
CameraXConfig.Builder#setSchedulerHandler()
สำหรับการตั้งค่าตัวแฮนเดิลที่สแต็กกล้อง CameraX ใช้ภายใน API ใหม่นี้พร้อมกับCameraXConfig.Builder#setCameraExecutor()
จะช่วยให้ควบคุมเธรดที่สแต็กกล้อง CameraX ใช้ได้อย่างเต็มที่ (I7bf32, b/121160431)
การแก้ไขข้อบกพร่อง
- แก้ไขข้อขัดข้องใน
ImageAnalysis
เมื่อมีการเข้าถึงImageProxy
หลังจากปิดImageReaderProxy
แล้ว นอกจากนี้ ยังทำให้ImageProxy
ทั้งหมดที่Analyzer
ได้รับต้องปิดก่อนที่ImageReaderProxy
จะปิด (I4b299, b/145956416, b/154155377, b/156357269) - นำพารามิเตอร์
CameraInfo
ออกจากPreviewView#createSurfaceProvider()
แล้ว ตอนนี้PreviewView
จะเรียกข้อมูลจากSurfaceRequest
ภายใน (If18f0, b/154652477) - แก้ไขการเริ่มต้นอัตโนมัติเมื่อใช้แอปในอุปกรณ์ที่ใช้ภาษาจำลอง (I3bef3, b/154767663)
- แก้ไขปัญหาที่บางครั้งรูปภาพที่ถ่ายมืดเกินไปแม้ว่าจะเปิดแฟลชแล้วก็ตาม (I5d9fa, b/149729613)
- แก้ไขปัญหาเกี่ยวกับ
ImageAnalysis
ที่การเรียกใช้ setAnalyzer/clearAnalyzer หลายครั้งส่งผลให้เครื่องมือวิเคราะห์ไม่ได้รับรูปภาพที่จะวิเคราะห์ (I6169f, b/151605317, b/153514544) - แก้ไขข้อบกพร่องที่บัฟเฟอร์ใน
ImageProxy
จากImageCapture
ไม่ได้กรอไปข้างหน้า (I0c455, b/153249512) - แก้ไขปัญหาที่ระบบไม่ได้เลือกกล้องตัวแรกในรายการที่รองรับจาก
CameraManager
มาใช้เสมอไป (I4c624, b/153418028) - แก้ไขข้อขัดข้องเป็นระยะๆ ที่เกิดจากการตั้งค่า
Preview.SurfaceProvider
ไม่ปล่อยพื้นผิวที่ขอไปก่อนหน้านี้“java.lang.IllegalStateException: Camera surface session should only fail with request cancellation”
(I8e4e7, b/155936225)
Camera-Camera2 เวอร์ชัน 1.0.0-beta03
15 เมษายน 2020
androidx.camera:camera-camera2:1.0.0-beta03
ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.0.0-beta03 มีคอมมิตเหล่านี้
การแก้ไขข้อบกพร่อง
- การแก้ไขเพื่อรองรับการเปิดตัว
camera-core
Camera-Core เวอร์ชัน 1.0.0-beta03
15 เมษายน 2020
androidx.camera:camera-core:1.0.0-beta03
ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.0.0-beta03 มีคอมมิตเหล่านี้
การแก้ไขข้อบกพร่อง
- แก้ไขการถดถอยจาก beta03 ที่การเรียก
bindToLifecycle()
โดยไม่มีUseCase
จะทำให้เกิดข้อยกเว้น ซึ่งทำให้ไม่สามารถเรียกข้อมูลCamera
ได้โดยไม่ต้องผูกUseCase
Camera-Camera2 เวอร์ชัน 1.0.0-beta02
1 เมษายน 2020
androidx.camera:camera-camera2:1.0.0-beta02
ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.0.0-beta02 มีคอมมิตเหล่านี้
การแก้ไขข้อบกพร่อง
- แก้ไข
ImageInfo.getRotationDegrees()
จากImageProxy
ที่สร้างโดยImageCapture
เพื่อให้ตรงกับค่าการหมุนของ EXIF Orientation (Id4281, b/150802561) - ไม่จำเป็นต้องเรียงลำดับการขึ้นต่อกันของ CameraX อย่างชัดเจนภายใน
build.gradle
อีกต่อไปเพื่อใช้การติดตั้งใช้งาน CameraX/Camera2 เริ่มต้น ในกรณีที่ต้องประกาศทรัพยากร Dependency ที่เข้มงวด ตอนนี้คุณสามารถรวมทรัพยากร Dependency ของ CameraX ทั้งหมดไว้ในไฟล์บิลด์ได้แล้ว (I46e88) - แก้ไข
IllegalArgumentException
ปัญหาที่เกิดขึ้นในอุปกรณ์ที่มีขนาดการแสดงผลเล็กกว่า 640x480 (Ife3f2, b/150506192) - แก้ไข
bindToLifecycle
เพื่อให้แก้ไข UseCase เฉพาะในกรณีที่ผูกสำเร็จเท่านั้น ก่อนหน้านี้เมื่อโทรหาbindToLifecycle
ระบบจะอัปเดต UseCase เพื่อทำการคำนวณความละเอียด ตอนนี้ไม่จำเป็นต้องอัปเดต UseCase เพื่อทำการคำนวณอีกต่อไป (I78d9e)
Camera-Core เวอร์ชัน 1.0.0-beta02
1 เมษายน 2020
androidx.camera:camera-core:1.0.0-beta02
ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.0.0-beta02 มีคอมมิตเหล่านี้
การแก้ไขข้อบกพร่อง
- แก้ไข
ImageInfo.getRotationDegrees()
จากImageProxy
ที่สร้างโดยImageCapture
เพื่อให้ตรงกับค่าการหมุนของ EXIF Orientation (Id4281, b/150802561) - แก้ไข
bindToLifecycle
เพื่อให้แก้ไข UseCase เฉพาะในกรณีที่ผูกสำเร็จเท่านั้น ก่อนหน้านี้เมื่อโทรหาbindToLifecycle
ระบบจะอัปเดต UseCase เพื่อทำการคำนวณความละเอียด ตอนนี้ไม่จำเป็นต้องอัปเดต UseCase เพื่อทำการคำนวณอีกต่อไป (I78d9e) - แก้ไขปัญหาที่ระบบไม่อัปเดตเซสชันการจับภาพของ
Preview
Use Case เมื่อพื้นผิวตัวอย่างเปลี่ยนไปหลังจากเรียกใช้Preview.setSurfaceProvider()
มากกว่า 1 ครั้ง
Camera-Camera2 เวอร์ชัน 1.0.0-beta01
26 กุมภาพันธ์ 2020
androidx.camera:camera-camera2:1.0.0-beta01
ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.0.0-beta01 มีคอมมิตเหล่านี้
การแก้ไขข้อบกพร่อง
- เปลี่ยนชื่อ
SurfaceRequest.setSurface(Surface)
เป็นSurfaceRequest.provideSurface(Surface)
และSurfaceRequest.setWillNotComplete()
เป็นSurfaceRequest.willNotProvideSurface()
(I224fe) - แก้ไขปัญหาสัดส่วนภาพของรูปภาพที่บันทึกไม่ถูกต้อง
หลังจากเปลี่ยนค่าการหมุนเป้าหมายโดยใช้
ImageCapture.setTargetRotation()
(I474ea, b/148763432) - แก้ไขการเริ่มต้นตัวแปรแอปที่เปิดใช้ ProGuard โดยการเก็บรักษา
แฟล็กที่ตั้งค่าผู้ให้บริการ
CameraXConfig
เริ่มต้น (I2d6c1)
Camera-Core เวอร์ชัน 1.0.0-beta01
26 กุมภาพันธ์ 2020
androidx.camera:camera-core:1.0.0-beta01
ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.0.0-beta01 มีคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- แทนที่
ListenableFuture
ในSurfaceRequest.provideSurface()
ด้วยExecutor
และCallback
ซึ่งจะช่วยลดความซับซ้อนของ API โดยไม่ต้องจัดการข้อยกเว้นในprovideSurface()
อีกต่อไป และบังคับใช้ว่าการเรียกกลับprovideSurface()
จะยกเลิกไม่ได้ เพื่อป้องกันไม่ให้อุปกรณ์รุ่นเก่าขัดข้องเนื่องจาก การปล่อยพื้นผิวเร็วเกินไป ตอนนี้ระบบใช้SurfaceRequest.Result
ออบเจ็กต์ เพื่อติดตามวิธีที่SurfaceRequest
ใช้Surface
ที่ระบุ (I7854b) - เปลี่ยนชื่อ
SurfaceRequest.setSurface(Surface)
เป็นSurfaceRequest.provideSurface(Surface)
และSurfaceRequest.setWillNotComplete()
เป็นSurfaceRequest.willNotProvideSurface()
(I224fe)
การแก้ไขข้อบกพร่อง
- แก้ไขปัญหาสัดส่วนภาพของรูปภาพที่บันทึกไม่ถูกต้อง
หลังจากเปลี่ยนค่าการหมุนเป้าหมายโดยใช้
ImageCapture.setTargetRotation()
(I474ea, b/148763432) - แก้ไขการเริ่มต้นตัวแปรแอปที่เปิดใช้ ProGuard โดยการเก็บรักษา
แฟล็กที่ตั้งค่าผู้ให้บริการ
CameraXConfig
เริ่มต้น (I2d6c1) - อัปเดตเอกสารประกอบสำหรับ API โหมดแฟลชเพื่อให้มีค่าที่เป็นไปได้ (I4a3ec)
Camera-Camera2 เวอร์ชัน 1.0.0-alpha10
10 กุมภาพันธ์ 2020
androidx.camera:camera-camera2:1.0.0-alpha10
ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.0.0-alpha10 มีคอมมิตเหล่านี้
การแก้ไขข้อบกพร่อง
- ปรับปรุงความเสถียรในอุปกรณ์
INFO_SUPPORTED_HARDWARE_LEVEL_LEGACY
โดยตรวจสอบว่าระบบจะเก็บSurface
ไว้เฉพาะในช่วงเวลาที่ Camera2 ใช้งานเท่านั้น (I9dac2) - แก้ไขปัญหาการแสดงตัวอย่างที่สว่างไม่เพียงพอในอุปกรณ์รุ่นเดิมด้วยการปรับ
CONTROL_AE_TARGET_FPS_RANGE
อย่างเหมาะสม (1224638)
Camera-Core เวอร์ชัน 1.0.0-alpha10
10 กุมภาพันธ์ 2020
androidx.camera:camera-core:1.0.0-alpha10
ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.0.0-alpha10 มีคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- อัปเดต
ImageCapture
เพื่ออนุญาตให้บันทึกรูปภาพไปยังUri
และOutputStream
รวมวิธีการtakePicture
ที่โอเวอร์โหลดไว้เป็นหนึ่งเดียว อัปเดตแอปทดสอบเพื่อใช้Uri
เป็นตัวอย่างที่ชัดเจน (Ia3bec) - เปลี่ยนชื่อ
Preview.PreviewSurfaceProvider
เป็นPreview.SurfaceProvider
แล้วSurfaceProvider
ไม่กำหนดให้นักพัฒนาแอปสร้างListenableFuture
ของตนเองอีกต่อไป และตอนนี้การระบุSurface
จะทำผ่านออบเจ็กต์SurfaceRequest
ใหม่ เราได้นำPreview.getPreviewSurfaceProvider()
ออกเนื่องจากอาจมีการนำไปใช้ในทางที่ผิดเมื่อจับคู่Preview
กับคลาสอื่นๆ เช่นPreviewView
(I20105) - เพิ่ม
getTargetRotation()
และgetTargetName()
ไปยังPreview
แล้ว (Iceee7) - เพิ่ม
getTargetRotation()
,getBackpressureStrategy()
และgetImageQueueDepth()
ในImageAnalysis
แล้ว (I9d6d9) - เพิ่ม
getTargetRotation()
และgetCaptureMode()
ในImageCapture()
(I5bc17) - ตอนนี้อาร์กิวเมนต์ที่ส่งใน
ImageCapture.OnImageSavedCallback.onError()
และImageCapture.OnImageCapturedCallback.onError()
ก่อนหน้านี้จะถูกแทนที่ด้วยอาร์กิวเมนต์เดียวImageCaptureException
ซึ่งยังคงมีข้อมูลทั้งหมดที่ส่งก่อนหน้านี้ - อาร์กิวเมนต์ไฟล์ที่ส่งใน
ImageCapture.OnImageSavedCallback.onImageSaved()
ก่อนหน้านี้ถูกนำออกแล้ว (I750d2) - ตอนนี้ระบบได้ทำเครื่องหมายชั้นเรียน
Preview
และImageCapture
ว่าเป็นชั้นเรียนสุดท้ายแล้ว (I2500b) - อัปเดต API ด้วยเมธอด
getZoomRatio()
,getMaxZoomRatio()
,getMinZoomRatio()
และgetLinearZoom()
ของการผสานCameraInfo
เข้ากับgetZoomState()
ซึ่งจะแสดงผลอินสแตนซ์ZoomState
(Ib19fe) - นำฟิลด์ API
OPTION_TARGET_CLASS
และOPTION_TARGET_NAME
ออกจากCameraXConfig
เนื่องจากมีไว้สำหรับใช้ในคลังภายในเท่านั้น นำตัวสร้างสำหรับCameraXConfig.Builder
ออกแล้ว (I96912) - นำข้อกำหนดที่แอปต้องขยาย
Application
ออกเพื่อ เริ่มต้น CameraX ตอนนี้ CameraX จะเริ่มต้นด้วยการกำหนดค่า Camera2 เริ่มต้นตราบใดที่มีอาร์ติแฟกต์camera-camera2
อยู่ในbuild.gradle
ของแอปพลิเคชัน (I58ff5) (b/146923574)
Camera-Camera2 เวอร์ชัน 1.0.0-alpha09
22 มกราคม 2020
androidx.camera:camera-camera2:1.0.0-alpha09
ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.0.0-alpha09 มีคอมมิตต่อไปนี้
การเปลี่ยนแปลง API
เพิ่มเส้นทางการทำงานร่วมกันของ Camera2 เพื่อดึงรหัสกล้อง Camera2 คุณสามารถดึงรหัสกล้องจาก
CameraInfo
โดยใช้Camera2CameraInfo.extractCameraId()
ตัวอย่างโค้ดต่อไปนี้แสดงวิธีใช้Camera camera = provider.bindToLifecycle(...); String cameraId = Camera2CameraInfo.extractCameraId(camera.getCameraInfo());
คลาส
Camera2CameraInfo
ต้องใช้ExperimentalCamera2Interop
markerClass
Camera-Core เวอร์ชัน 1.0.0-alpha09
22 มกราคม 2020
androidx.camera:camera-core:1.0.0-alpha09
ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.0.0-alpha09 มีคอมมิตต่อไปนี้
การเปลี่ยนแปลง API
- พารามิเตอร์
SurfaceOrientedMeteringPointFactory
useCaseForSurface
ได้รับการ เปลี่ยนชื่อเป็นuseCaseForAspectRatio
และมีการขยาย เอกสารอ้างอิง - เมธอด
FocusMeteringAction.Builder.from()
จะถูกแทนที่ด้วยตัวสร้างFocusMeteringAction.Builder()
- นำออกแล้ว
DisplayOrientedMeteringPointFactory(android.content.Context, androidx.camera.core.CameraSelector, float, float)
แอปพลิเคชันควรใช้ตัวสร้างที่ใช้พารามิเตอร์Display
และ ส่งการแสดงผลปัจจุบัน - การปรับปรุง Javadoc สำหรับ Focus API และ Metering API เกี่ยวกับ
MeteringMode
และ 3A Flags รวมถึงการใช้พารามิเตอร์Display
- ขยายเอกสารอ้างอิงสำหรับ
setZoomRatio
และsetLinearZoom
แก้ไขข้อบกพร่อง
- แก้ไขปัญหาเมื่อปิดแล้วเปิดกล้องอีกครั้ง ซึ่งส่งผลให้การตรวจสอบ "เงื่อนไขเบื้องต้น" ไม่สำเร็จ
- แก้ไข
ConcurrentModificationException
ที่อาจเกิดขึ้นเมื่อใช้ไฟฉาย และ API การซูม - แก้ไขปัญหาเพื่อให้เลือกความละเอียดที่ใกล้เคียงกับความละเอียดที่ขอมากขึ้นเมื่อมีขนาดมิติข้อมูล mod16
- ตอนนี้ API
startFocusMetering
และcancelFocusMetering
ทำงานตามที่ระบุไว้ โดยมีเวลาที่ถูกต้องและอาจแสดงข้อผิดพลาดเมื่อเกิดขึ้น - แก้ไขปัญหาเมื่อมีการขอความละเอียดเป้าหมายที่เฉพาะเจาะจงโดยมีสัดส่วนภาพของการครอบตัด ในอุปกรณ์ที่ไม่รองรับขนาดดังกล่าว ตอนนี้ระบบจะเลือกขนาดที่ไม่ครอบตัดซึ่งมีความละเอียดเพียงพอที่จะจำกัดคำขอเดิมเมื่อพร้อมใช้งาน
Camera-Camera2 เวอร์ชัน 1.0.0-alpha08
18 ธันวาคม 2019
androidx.camera:camera-camera2:1.0.0-alpha08
ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.0.0-alpha08 มีคอมมิตเหล่านี้
ปัญหาที่ทราบ
- ตัวเลือกคำขอจับภาพ Camera2 บางรายการจะใช้ไม่ได้เมื่อใช้การทำงานร่วมกันของ Camera2 หากตัวเลือกที่ขอไม่รองรับ เซสชันจะเริ่มไม่สำเร็จและอาจเกิดข้อผิดพลาดเช่นนี้
09-09 14:04:13.643 10117 26020 26036 E AndroidRuntime: java.lang.IllegalArgumentException: Unsupported session configuration combination
การแก้ไขข้อบกพร่อง
- แก้ไขปัญหาที่ทำให้เกิดหน้าจอสีดำในตัวอย่างหลังจากหมุนหรือสลับกล้องสำหรับ API ระดับ 21 และ 22
การเปลี่ยนแปลง API
- ทดลอง: เพิ่มเส้นทางการทำงานร่วมกันของ Camera2 สำหรับการแยก Camera ID
Camera-Core เวอร์ชัน 1.0.0-alpha08
18 ธันวาคม 2019
androidx.camera:camera-core:1.0.0-alpha08
ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.0.0-alpha08 มีคอมมิตเหล่านี้
ปัญหาที่ทราบ
- แอปที่ใช้
PreviewView
หรือCameraView
อาจแสดงตัวอย่างสัดส่วนภาพไม่ถูกต้อง ซึ่งจะเกิดขึ้นหลังจากหยุดชั่วคราวหรือกลับมาเล่นต่อในอุปกรณ์บางรุ่นที่เต็ม เช่น Pixel2
การแก้ไขข้อบกพร่อง
- อัปเดตเอกสารประกอบสำหรับ
FocusMeteringAction
และCameraControl
- ใช้งาน
TorchControl
สำหรับenableTorch()
และgetTorchState()
แล้ว
การเปลี่ยนแปลง API
- ซ่อน IntDefs และย้ายค่าคงที่ IntDef ออกจากคำจำกัดความ IntDef
- ย้าย
rotationDegrees
จากชั้นเรียนOnImageCaptureCallback
ไปยังImageInfo
- ย้าย
rotationDegrees
จากชั้นเรียนAnalyzer
ไปยังImageInfo
Camera-Camera2 เวอร์ชัน 1.0.0-alpha07
4 ธันวาคม 2019
androidx.camera:camera-camera2:1.0.0-alpha07
ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.0.0-alpha07 ของ camera-camera2 มีคอมมิตต่อไปนี้
Camera2Config
พร้อมใช้งานแล้วสำหรับการเริ่มต้นและกำหนดค่าการติดตั้งใช้งานที่อิงตาม Camera2 สำหรับ CameraX ดูรายละเอียดเพิ่มเติมเกี่ยวกับวิธีใช้ฟีเจอร์นี้ในการเริ่มต้นได้ในส่วน camera-core ของหมายเหตุประจำรุ่น- ตอนนี้ฟังก์ชันการทำงานของ Camera2 Interop มีสถานะเป็นเวอร์ชันทดลองและย้ายไปอยู่ในแพ็กเกจแยกต่างหาก
androidx.camera.camera2.interop.
Camera-Core เวอร์ชัน 1.0.0-alpha07
4 ธันวาคม 2019
androidx.camera:camera-core:1.0.0-alpha07
ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.0.0-alpha07 ของ camera-core มีคอมมิตต่อไปนี้
โปรดทราบว่ารุ่นอัลฟ่านี้มีการเปลี่ยนแปลงที่สำคัญบางอย่างเนื่องจากเรากำลังเตรียมพร้อมสำหรับเวอร์ชันเบต้า เราขอแนะนำให้คุณตรวจสอบการเปลี่ยนแปลงและแชร์ความคิดเห็นเกี่ยวกับกลุ่ม Google ของ CameraX สำหรับนักพัฒนาแอปที่ใช้ CameraX ในแอปที่อยู่ใน Play Store เราขอแนะนำให้รอการเปิดตัวเวอร์ชันเบต้าอย่างเป็นทางการก่อนที่จะอัปเกรดไลบรารีภายในแอปพลิเคชัน
การเปลี่ยนแปลง API
สำคัญ: การเริ่มต้น CameraX มีการเปลี่ยนแปลง แอปพลิเคชันควรใช้
CameraXConfig.Provider
และใช้Camera2Config
เริ่มต้นที่androidx.camera.camera2
จัดหาให้ การใช้งานทั่วไปมีดังนี้import androidx.camera.camera2.Camera2Config import androidx.camera.core.CameraXConfig public class MyCameraXApplication : Application(), CameraXConfig.Provider { override fun getCameraXConfig(): CameraXConfig { return Camera2Config.defaultConfig(this) } }
ระบบได้นำคลาส CameraX ออกแล้ว ตอนนี้คุณสามารถเข้าถึง
bindToLifecycle()
,unbind()
,unbindAll()
,isBound()
และhasCamera()
ที่ก่อนหน้านี้ได้จากคลาส CameraX ผ่านProcessCameraProvider
แล้วอินสแตนซ์ต่อกระบวนการของ
ProcessCameraProvider
จะได้รับแบบไม่พร้อมกันโดยใช้เมธอดแบบคงที่ProcessCameraProvider.getInstance()
ซึ่งจะแสดงผล ListenFuture ที่ให้ProcessCameraProvider
เมื่อเสร็จสมบูรณ์ โดยจะแสดงในonCreate()
สำหรับการใช้งานทั่วไป คุณสามารถโทรหาgetInstance()
ในภายหลังในวงจรของกิจกรรมเพื่อเลื่อนเวลาในการตอบสนองของการเริ่มต้นไปยังเวลาที่ต่อมา (เช่น เมื่อการกระทําของผู้ใช้เปิด UI ของกล้อง)import androidx.camera.lifecycle.ProcessCameraProvider import com.google.common.util.concurrent.ListenableFuture class MainActivity : AppCompatActivity() { private lateinit var cameraProviderFuture : ListenableFuture<ProcessCameraProvider> override fun onCreate(savedInstanceState: Bundle?) { cameraProviderFuture = ProcessCameraProvider.getInstance(this); }
คุณเพิ่มผู้ฟังลงใน
ListenableFuture
ที่getInstance()
ส่งคืนได้ วิธีนี้ช่วยให้ดึงข้อมูลผู้ให้บริการกล้องจากFuture
ได้โดยไม่บล็อกในFuture.get()
cameraProviderFuture.addListener(Runnable { val cameraProvider = cameraProviderFuture.get() cameraProvider.bindToLifecycle(...) }, ContextCompat.getMainExecutor(this))
ตอนนี้การเลือกกล้องจะทำโดยตัวเลือกกล้องแทนที่จะเป็นต่อกรณีการใช้งาน
val cameraSelector = CameraSelector.Builder().requireLensFacing(LensFacing.BACK).build()
CameraProvider.bindToLifecycle
จะได้รับเจ้าของวงจร ตัวเลือกกล้อง และกรณีการใช้งาน ซึ่งจะเชื่อมโยงกับเจ้าของวงจรที่ระบุและทำงานสำหรับกล้องที่เลือกcameraProvider.bindToLifecycle(this as LifecycleOwner, cameraSelector, preview, imageAnalysis)
ระบบจะนำคลาสกรณีการใช้งาน "Config" ออก แต่ให้สร้างกรณีการใช้งานโดยตรงและตั้งค่าตัวเลือกในเครื่องมือสร้างกรณีการใช้งานแต่ละรายการแทน เช่น
preview = Preview.Builder().setTargetAspectRatio(AspectRatio.RATIO_16_9).build()
เราได้อัปเดต Use Case ของการแสดงตัวอย่างเพื่อให้ยอมรับ Surface ที่แอปพลิเคชันสร้างและจัดการ เพื่อให้เป็นไปตามแนวทางปฏิบัติแนะนำของ Android เราขอแนะนำให้ใช้
PreviewView
มุมมองคลาสที่ระบุไว้ในแพ็กเกจมุมมองกล้องpreview.setPreviewSurfaceProvider(previewView.previewSurfaceProvider)
ดูเอกสารประกอบเกี่ยวกับการแนบพื้นผิวที่แอปจัดการ ในกรณีเหล่านี้ แอปจะจัดการวงจรของแพลตฟอร์ม
สำคัญ: การติดตั้งใช้งานเมธอด
ImageAnalysis
Analyzer ต้องเรียกใช้image.close()
ในรูปภาพที่ได้รับเมื่อใช้เสร็จแล้ว มิฉะนั้น คุณอาจไม่ได้รับรูปภาพใหม่หรือกล้องอาจหยุดทำงาน ทั้งนี้ขึ้นอยู่กับการตั้งค่าแรงดันย้อนกลับ ดูรายละเอียดได้ในเอกสารอ้างอิงImageAnalysis ImageReaderMode
เปลี่ยนเป็นกลยุทธ์การควบคุมการรับส่งข้อมูลintdef
แล้วImageProxy.getImage()
มีการทำเครื่องหมายว่าเป็นการทดลอง แอปพลิเคชันควรใส่คำอธิบายประกอบการใช้งาน เช่น ผ่าน@androidx.camera.core.ExperimentalGetImage
เราได้นำข้อกำหนดในการใส่คำอธิบายประกอบ
UIThread
สำหรับAnalyzer
ออกแล้วเพิ่มฟังก์ชัน
ImageAnalysis.clearAnalyzer()
สำหรับนำเครื่องมือวิเคราะห์ออกเราได้เปลี่ยนชื่อผู้ฟังที่มีมากกว่า 1 วิธีเป็น "Callback" ดังนี้
ImageCapture.OnImageCapturedListener
เปลี่ยนชื่อเป็นImageCapture.OnImageCapturedCallback
แล้วImageCapture.OnImageSavedListener
เปลี่ยนชื่อเป็นImageCapture.OnImageSavedCallback
แล้วVideoCapture.OnVideoSavedListener
เปลี่ยนชื่อเป็นVideoCapture.OnVideoSavedCallback
แล้ว
เปลี่ยน Enum เป็น IntDef แล้ว
มีการเพิ่มตัวควบคุมการซูมดังนี้
CameraControl.setLinearZoom()
CameraControl.setZoomRatio()
CameraInfo.getLinearZoom()
CameraInfo.getMaxZoomRatio()
CameraInfo.getZoomRatio()
เพิ่ม
CameraInfo.hasFlashUnit()
เพื่อตรวจสอบว่ามีฮาร์ดแวร์แฟลช/ไฟฉายหรือไม่นำ
CameraInfo.isFlashAvailable()
ออกแล้ว ไฟฉายจะลบล้างฟังก์ชันการทำงานของแฟลช ดูรายละเอียดเพิ่มเติมได้ในเอกสารอ้างอิงฟิลด์
ImageCapture.Metadata
จะแทนที่ด้วยตัวช่วยเข้าถึง get/set/isstartFocusMetering
และcancelFocusMetering
จะแสดงผลListenableFutures
ซึ่งแสดงถึงการดำเนินการแบบอะซิงโครนัสของการเรียกMeteringPoints
ตอนนี้ทำหน้าที่เป็นแฮนเดิลในการวัดการใช้งาน และผลิตโดยโรงงาน แอปควรใช้โรงงานที่มีอยู่แทนโรงงานที่กำหนดเอง
ปัญหาที่แก้ไขแล้ว
- แก้ไขปัญหาเมื่อถ่ายรูปขณะกลับมาทำงานต่อ (หลังจากหยุดชั่วคราวและมีรูปภาพที่รอการประมวลผล)
- ปัญหาที่ทราบ:
CameraControl.enableTorch()
ใช้งานได้ แต่ListenableFuture<Void>
ที่แสดงผลจะเป็นcomplete(success)
อนาคตที่ใกล้ที่สุดเสมอ แม้ว่าจะไม่มีแฟลชก็ตาม เวอร์ชันในอนาคตจะแก้ไขปัญหานี้ให้เป็นลักษณะการทำงานสุดท้าย นั่นคือ เมื่อไม่มีหน่วยแฟลชenableTorch(true)
จะล้มเหลวทันที (จะไม่ส่งคำขอไปยังCaptureSession
) และTorchState
จะยังคงปิดอยู่ - ปัญหาที่ทราบ:
startFocusAndMetering
และcancelFocusAndMetering
เริ่มและยกเลิกการวัดแสงโฟกัส แต่จะแสดงผลcompleted (success)
Future ทันทีซึ่งไม่ได้แสดงลักษณะการทำงานตามที่ระบุไว้ในเอกสารFocusMeteringResult
จากListenableFuture<FocusMeteringResult> CameraControl.startFocusAndMetering()
เป็นผลการค้นหาปลอมซึ่งisFocusSuccessful()
และเป็น "เท็จ" เสมอ ซึ่งแตกต่างจากลักษณะการทำงานที่ตั้งใจไว้และระบุไว้ในเอกสาร - ปัญหาที่ทราบ: เรากำลังพัฒนาโรงงานจุดวัดสำหรับการใช้งานกับ
PreviewView
เหตุการณ์การแตะ ในตอนนี้ แอปที่เชื่อมต่อกับแพลตฟอร์มที่จัดการเองสามารถใช้โรงงานจุดวัดที่มีอยู่ได้ และฟังก์ชันการทำงานแบบไม่ต้องสัมผัสจะใช้ไม่ได้กับPreviewView
Camera-Camera2 และ Camera-Core เวอร์ชัน 1.0.0-alpha06
9 ตุลาคม 2019
androidx.camera:camera-camera2:1.0.0-alpha06
และ androidx.camera:camera-core:1.0.0-alpha06
เปิดตัวแล้ว คอมมิตที่รวมอยู่ใน camera-camera2:1.0.0-alpha06
และคอมมิตที่รวมอยู่ใน camera-core:1.0.0-alpha06
ฟีเจอร์ใหม่
การเปลี่ยนแปลงในการตั้งค่าสัดส่วนภาพ
setTargetAspectRatioMode()
ได้รับการเพิ่มและยอมรับอาร์กิวเมนต์ enum ซึ่งจะตั้งค่าโหมดสัดส่วนภาพด้วยตัวเลือกRATIO_4_3
หรือRATIO_16_9
แทนที่จะเป็นสัดส่วนภาพที่กำหนดเอง ซึ่งจะสะท้อนให้เห็นได้ชัดเจนยิ่งขึ้นว่ากล้องจะให้สัดส่วนภาพบางอย่างเท่านั้น ไม่ใช่สัดส่วนภาพใดก็ได้- ปัจจุบันมีเพียงสัดส่วน 16:9 และ 4:3 เท่านั้น ในกรณีของอัตราส่วน 1:1 มีเพียงอุปกรณ์บางรุ่นเท่านั้นที่ใช้ฟีเจอร์นี้จากกล้องได้ และใช้ได้ที่ความละเอียดจำกัดเท่านั้น แอปพลิเคชันที่ออกแบบอินเทอร์เฟซหรือการประมวลผลแบบ 1:1 ควรใช้ตัวเลือก 16:9 หรือ 4:3 ที่ยืดหยุ่นกว่า และครอบตัดจอแสดงผลหรือประมวลผลภูมิภาคย่อย
- สัดส่วนภาพเหล่านี้ได้รับการปรับให้ใช้พื้นที่เซ็นเซอร์สูงสุด
getTargetAspectRatio()
ได้รับการเพิ่มลงใน API การกำหนดค่า Use Case ซึ่งจะแสดงสัดส่วนภาพที่เอาต์พุตของ Use Case กำหนดเป้าหมายไว้- วิธีการ
setTargetAspectRatio(Rational aspectRatio)
ได้เปลี่ยนสำหรับ ImageCapture เป็นsetTargetAspectRatioCustom(Rational aspectRatio)
เมื่อตั้งค่าแล้ว เอาต์พุต ImageCapture จะครอบตัดตามนั้น
Executor APIs
- ฟังก์ชันต่อไปนี้ยอมรับพารามิเตอร์ Executor ซึ่งช่วยให้แอปควบคุมได้ว่าฟังก์ชันจะทำงานบน Executor ใด
Preview.setOnPreviewOutputUpdateListener()
API หากไม่มีตัวดำเนินการสำหรับฟังก์ชันนั้น ฟังก์ชันจะทำงานในเทรดหลักPreview.setOnPreviewOutputUpdateListener
FocusMeteringAction.Builder.setAutoFocusCallback
ImageAnalysis.setAnalyzer
ImageCapture.takePicture
CameraView.takePicture
CameraView.startRecording
VideoCapture.startRecording
เพิ่ม CameraInfo พร้อม API ตรวจสอบว่ามีแฟลชและ API การหมุนเซ็นเซอร์
เพิ่ม
CameraInfo
และเมธอดgetCameraInfo
ซึ่งช่วยให้แอปตรวจสอบได้ว่ามีเลนส์ที่หันไปทาง CameraInfo หรือไม่ และมีแฟลชในกล้องนั้นหรือไม่ เช่นtry { CameraInfo cameraInfo = CameraX.getCameraInfo(currentCameraLensFacing); LiveData<Boolean> isFlashAvailable = cameraInfo.isFlashAvailable(); flashToggle.setVisibility(isFlashAvailable.getValue() ? View.VISIBLE : View.INVISIBLE); } catch (CameraInfoUnavailableException e) { Log.w(TAG, "Cannot get flash available information", e); flashToggle.setVisibility(View.VISIBLE); }
เพิ่ม
CameraInfo.getSensorRotationDegrees()
แล้ว โดยจะระบุการวางแนวเซ็นเซอร์ของกล้องที่สัมพันธ์กับการวางแนวตามธรรมชาติของอุปกรณ์ หรือเพื่อความสะดวก ให้สัมพันธ์กับการวางแนวที่อธิบายโดยการหมุนพื้นผิว (ซึ่งอธิบายการวางแนวที่สัมพันธ์กับการวางแนวตามธรรมชาติ)
การเปลี่ยนแปลง API และการแก้ไขข้อบกพร่อง
- สัดส่วนภาพ: สำหรับ Use Case แต่ละรายการ แอปพลิเคชันควรเรียกใช้เพียง
setTargetResolution()
หรือsetTargetAspectRatio()
อย่างใดอย่างหนึ่งเท่านั้น การเรียกใช้ทั้ง 2 รายการในตัวสร้างเดียวกันจะทำให้เกิดข้อผิดพลาด- โดยทั่วไป เราขอแนะนำให้ใช้
setTargetAspectRatio()
ตามการออกแบบ UI ของแอปพลิเคชัน ความละเอียดที่เฉพาะเจาะจงจะขึ้นอยู่กับกรณีการใช้งาน เช่น การแสดงตัวอย่างจะอยู่ใกล้กับความละเอียดของหน้าจอ และการจับภาพจะให้ภาพนิ่งความละเอียดสูง ดูข้อมูลเพิ่มเติมได้ที่ตารางความละเอียดอัตโนมัติ - ใช้
setTargetResolution()
สำหรับกรณีที่เฉพาะเจาะจงมากขึ้น เช่น เมื่อต้องใช้ความละเอียดขั้นต่ำ (เพื่อประหยัดการคำนวณ) หรือความละเอียดสูงสุด (เพื่อประมวลผลรายละเอียด)
- โดยทั่วไป เราขอแนะนำให้ใช้
- Executor API: นำการเรียก
setCallbackHandler()
ออกจาก API การกำหนดค่ากรณีการใช้งาน แต่แอปพลิเคชันสามารถตั้งค่า Executor เป็นพารามิเตอร์ใน API อื่นๆ ที่ตั้งค่าการเรียกกลับได้ - อัปเดตคำอธิบายประกอบค่า Null สำหรับฟังก์ชันต่างๆ
- แก้ไขปัญหาที่ทำให้เกิดข้อผิดพลาด
java.lang.IllegalStateException at Camera$StateCallback.onError
เมื่อเปิดกล้อง - แก้ไขปัญหาที่ระบบจะเลือกความละเอียดที่มีขนาดเล็กเกินไป (น้อยกว่า 640x480) เมื่อแอปขอความละเอียดที่ใหญ่ขึ้นหรือความละเอียดเริ่มต้น ซึ่งส่งผลให้รูปภาพตัวอย่างเป็นบล็อกหรือเบลอ แอปพลิเคชันที่ต้องการความละเอียดที่เล็กลงโดยเฉพาะสามารถขอความละเอียดดังกล่าวได้อย่างชัดเจน
- แก้ไขปัญหาที่กล้องแสดงหน้าจอสีดำ (เริ่มกล้องไม่สำเร็จ) หลังจากกลับจาก Intent ที่เปิดแอปพลิเคชันกล้องอื่น
- แก้ไขข้อบกพร่องที่ทำให้เกิดข้อผิดพลาดต่อไปนี้เมื่อเริ่มหรือหยุดแอปซ้ำๆ
java.lang.IllegalArgumentException: CaptureRequest contains unconfigured Input/Output Surface!
- แก้ไขข้อผิดพลาดต่อไปนี้ที่เกิดขึ้นเมื่อปิดใช้ ImageAnalysis
java.lang.IllegalStateException: maxImages (4) has already been acquired, call #close before acquiring more.
- เพิ่มการทดสอบเพิ่มเติมสำหรับโฟลว์การยกเลิกการเชื่อมต่อกล้อง
- ปรับปรุงความเสถียรของระบบทดสอบเมื่อทำการทดสอบกล้องแบบต่อเนื่อง
Camera-Camera2 และ Camera-Core เวอร์ชัน 1.0.0-alpha05
5 กันยายน 2019
androidx.camera:camera-camera2:1.0.0-alpha05
และ androidx.camera:camera-core:1.0.0-alpha05
เปิดตัวแล้ว โดยการเปลี่ยนแปลงที่รวมอยู่ใน camera-camera2:1.0.0-alpha05 และการเปลี่ยนแปลงที่รวมอยู่ใน camera-core:1.0.0-alpha05
การเปลี่ยนแปลง API: เปลี่ยนชื่อตัวแปรข้อผิดพลาดของกรณีการใช้งาน
- เปลี่ยนชื่อ
ImageCapture.UseCaseError
เป็นImageCapture.ImageCaptureError
- เปลี่ยนชื่อ
VideoCapture.UseCaseError
เป็นVideoCapture.VideoCaptureError
- เปลี่ยนชื่อ
เพิ่ม
CameraControl
API พร้อม API แตะเพื่อโฟกัสเพิ่ม API เพื่อรับ
CameraControl
จาก CameraX สำหรับกล้องที่เลือกตามด้านของเลนส์CameraX.getCameraControl(LensFacing lensFacing)
เพิ่ม
MeteringPointFactory
,MeteringPoint
,MeteringMode
และFocusMeteringAction
เพื่อเรียกใช้การแตะเพื่อโฟกัสMeteringPointFactory factory = new SensorOrientedMeteringPointFactory(width, height); MeteringPoint point = factory.createPoint(x, y); FocusMeteringAction action = FocusMeteringAction.Builder.from(point, MeteringMode.AF_ONLY) .addPoint(point2, MeteringMode.AE_ONLY) // could have many .setAutoFocusCallback(new OnAutoFocusListener(){ public void onFocusCompleted(boolean isSuccess) { } }) // auto calling cancelFocusAndMetering in 5 sec. .setAutoCancelDuration(5, TimeUnit.Second) .build();
เพิ่ม API สำหรับ
CameraControl
เพื่อเริ่มและยกเลิกการวัดแสงโฟกัสgetCameraControl(lensFacing).startFocusAndMetering(action);
getCameraControl(lensFacing).cancelFocusAndMetering();
เพิ่ม API สำหรับโรงงานจุดวัดที่ช่วยในการแปลพิกัดการแตะเป็นพิกัดเซ็นเซอร์ตามคลาสของมุมมอง
MeteringPointFactory factory = new TextureViewMeteringPointFactory(textureView);
MeteringPointFactory factory = new DisplayOrientedMeteringPointFactory(context, lensFacing, viewWidth, viewHeight);
บังคับให้เรียกใช้เมธอดต่อไปนี้ในเธรดหลัก (UI) โดยจะส่ง
IllegalStateException
เมื่อไม่ได้เรียกใช้ เวอร์ชันในอนาคตจะอนุญาตให้ใช้งานใน เธรดอื่นๆ และตรวจสอบการทำให้เป็นอนุกรมCameraX.bindToLifecycle()
CameraX.unbind()
CameraX.unbindAll()
ImageAnalysis.setAnalyzer()
ImageAnalysis.getAnalyzer()
ImageAnalysis.removeAnalyzer()
Preview.removePreviewOutputListener()
Preview.getOnPreviewOutputUpdateListener()
Preview.setOnPreviewOutputUpdateListener()
ตอนนี้การตั้งค่าการกำหนดค่าต่างๆ ยอมรับพารามิเตอร์ Null แล้ว และ Getter ที่เกี่ยวข้องอาจแสดงผลเป็น Null
แก้ไขปัญหาเมื่อทดสอบในโปรแกรมจำลองที่ไม่รองรับการตั้งค่า AF/AE/AWB
แก้ไขข้อบกพร่องที่ทำให้เกิดข้อขัดข้องเมื่อหมุนขณะวิเคราะห์รูปภาพ
แก้ไขข้อบกพร่องที่การแสดงตัวอย่างเป็นสีดำเมื่อเริ่มต้น (ไม่มีข้อมูลกล้อง) หลังจากหมุนหรือสลับระหว่างกล้องหน้าและกล้องหลัง
นำการทดสอบสำหรับกรณีการใช้งานการวิเคราะห์รูปภาพพร้อมกันหลายรายการออก แอปพลิเคชันควรแนบเฉพาะกรณีการใช้งานการวิเคราะห์รูปภาพเดียวเพื่อให้มั่นใจว่าใช้งานร่วมกันได้
เพิ่มการทดสอบ Robolectric เริ่มต้นสำหรับกล้องปลอมในชุดทดสอบกล้อง (WIP)
นำการทดสอบ Camera2Inititalizer ออกเนื่องจากความครอบคลุมไม่ชัดเจน/ทำให้เข้าใจผิด
Camera-Camera2 และ Camera-Core เวอร์ชัน 1.0.0-alpha04
7 สิงหาคม 2019
androidx.camera:camera-camera2:1.0.0-alpha04
และ androidx.camera:camera-core:1.0.0-alpha04
เปิดตัวแล้ว เวอร์ชัน 1.0.0-alpha04 มีคอมมิตเหล่านี้
ฟีเจอร์ใหม่
การเปลี่ยนแปลงการเลือกอัตราส่วนและมติ
เป้าหมายของ CameraX คือการเริ่มต้นเซสชันกล้องให้สำเร็จ ซึ่งหมายความว่า CameraX จะประนีประนอมเรื่องความละเอียด/สัดส่วนภาพตามความสามารถของอุปกรณ์ เพื่อเริ่มเซสชันการจับภาพเป็นเป้าหมายแรก ดังนั้นคำขอที่แน่นอนอาจไม่ได้รับการตอบสนอง ซึ่งอาจเกิดจากสาเหตุดังนี้
- อุปกรณ์ที่ไม่รองรับความละเอียดที่ขอ
- ปัญหาความเข้ากันได้ เช่น ในอุปกรณ์รุ่นเดิมที่ต้องใช้ความละเอียดบางอย่างเพื่อให้ทำงานได้อย่างถูกต้อง
- ในอุปกรณ์บางรุ่น บางรูปแบบจะใช้ได้เฉพาะในสัดส่วนภาพบางอย่างเท่านั้น
- ค่ากำหนดสำหรับ "nearest mod16" สำหรับการเข้ารหัส JPEG หรือวิดีโอ ดู
CameraCharacteristics#SCALER_STREAM_CONFIGURATION_MAP
แม้ว่า CameraX จะสร้างและจัดการเซสชัน แต่คุณควรตรวจสอบขนาดรูปภาพที่ส่งคืนในเอาต์พุตของ Use Case ในโค้ดและปรับตามนั้นเสมอ
เราได้ทำการเปลี่ยนแปลงบางอย่างสำหรับการตั้งค่าความละเอียดและสัดส่วนภาพ เพื่อให้ API มีความชัดเจนมากขึ้น ดังนี้
- ตอนนี้ระบบจะถือว่า Use Case ของการแสดงตัวอย่างมีสัดส่วนการแสดงผลเริ่มต้นเป็น 4:3 เมื่อไม่ได้ตั้งค่าใดๆ
- เมื่อ CameraX พิจารณาการเปลี่ยนแปลงความละเอียดและสัดส่วนการแสดงผลที่ขอภายในตามความสามารถของอุปกรณ์ ระบบจะพยายามรักษาสัดส่วนการแสดงผลเดิมไว้ก่อน (ตามที่กำหนดโดยการเรียก
setTargetAspectRatio
หรือsetTargetResolution
) - ระบบจะถือว่าความละเอียดเวอร์ชัน "Nearest mod16" มีสัดส่วนภาพเดียวกัน
โหมดการวิเคราะห์รูปภาพแบบไม่บล็อก
- ตอนนี้ลักษณะการทำงานของ
ImageReaderMode.ACQUIRE_LATEST_IMAGE
จะไม่บล็อกแล้ว โดยจะดึงรูปภาพล่าสุดในคิว แต่จะทิ้งรูปภาพที่ไม่ได้ใช้ไปเรื่อยๆ เพื่อให้ไปป์ไลน์ของกล้องไม่ถูกบล็อก - โดยเครื่องมือวิเคราะห์จะเก็บรูปภาพเดียวไว้ได้โดยไม่มีกำหนดเวลาโดยไม่ทำให้ไปป์ไลน์หยุดทำงาน
- หากแอปพลิเคชันมีตัวดำเนินการที่บล็อกอยู่ กรณีการใช้งาน ImageAnalysis จะบล็อก
- ตัวดำเนินการเริ่มต้นที่ตั้งค่าไว้ภายในจะทำงานเป็นตัวดำเนินการแบบไม่บล็อก
การแก้ไขข้อบกพร่อง
- แก้ไขปัญหาการหมดเวลาขณะรอการรวม 3A เมื่อถ่ายภาพในอุปกรณ์ที่ไม่มีการโฟกัสอัตโนมัติ การเปิดรับแสงอัตโนมัติ และการปรับสมดุลสีขาวอัตโนมัติ
- แก้ไขปัญหาเมื่อถ่ายภาพอย่างรวดเร็วด้วย ImageCapture แก้ไขข้อผิดพลาด:
java.lang.IllegalStateException: maxImages (2) has already been acquired
- แก้ไขปัญหาเมื่อไม่ได้เรียกใช้
setLensFacing
สำหรับ Use Case ซึ่งส่งผลให้เกิดjava.lang.IllegalArgumentException: Unable to get camera ID for use case
- แก้ไขปัญหาที่อุปกรณ์ LEGACY กำหนดให้ใช้สัดส่วนการแสดงผลที่เฉพาะเจาะจงเป็นความละเอียด JPEG สูงสุด
- แก้ไขปัญหาเมื่อเรียกใช้แอปในเบื้องหลังขณะที่กล้องกำลังเปิด
- แก้ไขปัญหาใน API < 25 โดยนำข้อผิดพลาด
checkAndUpdateEglState: invalid current EGLDisplay
ออก - แก้ไขปัญหาเมื่อยกเลิกการเชื่อมโยงตัวอย่างหลังจากเปิดใช้และเริ่มส่วนขยาย
- ตอนนี้อาร์ติแฟกต์สำหรับมุมมองกล้องและส่วนขยายกล้องเผยแพร่เป็นเวอร์ชันอัลฟ่าแล้ว
Camera-Camera2 และ Camera-Core เวอร์ชัน 1.0.0-alpha03
2 กรกฎาคม 2019
androidx.camera:camera-core:1.0.0-alpha03
และ androidx.camera:camera-camera2:1.0.0-alpha03
เปิดตัวแล้ว เวอร์ชัน 1.0.0-alpha03 มีคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- เพิ่มคำชี้แจง Javadoc สำหรับ "เป้าหมาย" ในการเรียกการกำหนดค่า setTarget
Camera-Core
- แก้ไขข้อขัดข้องของพื้นผิวอินพุต/เอาต์พุตที่ไม่ได้กำหนดค่าเมื่อเปิด/ปิดหรือผูก/ยกเลิกการผูกอย่างรวดเร็ว
- เปลี่ยนไปใช้การใช้งานฟิวเจอร์สใหม่
- ทดสอบการแก้ไขเพื่อการทดสอบที่แข็งแกร่งยิ่งขึ้น
- ตอนนี้การทดสอบการผสานรวมหลักจะแสดงเวลาที่ถ่ายรูปภาพ
- พัฒนาคลาสความเข้ากันได้ภายในสำหรับ Executor
- การจับภาพแอปทดสอบเวลาจะรอให้การจับภาพก่อนหน้าเสร็จสมบูรณ์และปรับปรุงความเสถียร
ส่วนขยาย
- เพิ่มการตรวจสอบการควบคุมเวอร์ชัน
- การทดสอบเพิ่มเติม - การเรียกกลับของเหตุการณ์ส่วนขยาย
- การปรับปรุงรูปภาพและข้อมูลเมตาที่สอดคล้องกันภายใน
- การแก้ไขการสลับโหมดในแอปทดสอบ
Camera-Camera2 และ Camera-Core เวอร์ชัน 1.0.0-alpha02
5 มิถุนายน 2019
androidx.camera:camera-core:1.0.0-alpha02
และ androidx.camera:camera-camera2:1.0.0-alpha02
เปิดตัวแล้ว เวอร์ชัน 1.0.0-alpha02 มีคอมมิตเหล่านี้
แก้ไขข้อบกพร่อง
- แก้ไขปัญหาการหารด้วย 0 เมื่อใช้โปรแกรมจำลอง
- แก้ไขข้อผิดพลาด NullPointerException/Surface Abandoned ที่เกิดขึ้นในอุปกรณ์บางเครื่องเมื่อถ่ายรูปอย่างรวดเร็วขณะยกเลิกการเชื่อมโยงและเชื่อมโยงใหม่ในกรณีการใช้งานอย่างรวดเร็ว
- แก้ไขปัญหาภายในเพื่อให้แน่ใจว่าการอัปเดตคำขอจับภาพจะมีผลกับทุกแพลตฟอร์มอย่างสอดคล้องกัน
- การปรับปรุงความเสถียรเมื่อรีสตาร์ท Use Case ในอินสแตนซ์แอปใหม่
- การเปลี่ยนแปลงสถาปัตยกรรมภายในเพื่อเตรียมพร้อมรองรับ Executor ใน API
- คำชี้แจง Javadoc เพิ่มเติมเกี่ยวกับคลาส CameraX และการจัดการวงจร
- เพิ่มการทดสอบแบบมีเครื่องควบคุมสำหรับแอปทดสอบประสิทธิภาพ Antelope
- ไม่จำเป็นต้องใช้ "-keepattributes Signature" ในการกำหนดค่า Proguard ของแอป
Camera-Camera2 และ Camera-Core 1.0.0-alpha01
7 พฤษภาคม 2019
androidx.camera:camera-core:1.0.0-alpha01
และ
androidx.camera:camera-camera2:1.0.0-alpha01
เปิดตัวแล้ว เวอร์ชัน 1.0.0-alpha01 มีคอมมิตเหล่านี้
Camera-Lifecycle เวอร์ชัน 1.0.0-beta11
14 ตุลาคม 2020
androidx.camera:camera-lifecycle:1.0.0-beta11
ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.0.0-beta11 มีคอมมิตเหล่านี้
การแก้ไขข้อบกพร่อง
<UseCase>.getTargetRotation()
จะแสดงผลSurface.ROTATION_0
หากเรียกใช้ก่อนที่จะแนบกับอินสแตนซ์กล้อง เว้นแต่จะมีการตั้งค่า targetRotation ใน Builder หรือ UseCase (I80fcd)
Camera-Lifecycle เวอร์ชัน 1.0.0-beta10
23 กันยายน 2020
androidx.camera:camera-lifecycle:1.0.0-beta10
ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.0.0-beta10 มีคอมมิตเหล่านี้
การแก้ไขข้อบกพร่อง
- เปิดตัวเพื่อรองรับ Camera-Core 1.0.0-beta10
Camera-Lifecycle เวอร์ชัน 1.0.0-beta09
16 กันยายน 2020
androidx.camera:camera-lifecycle:1.0.0-beta09
ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.0.0-beta09 มีคอมมิตเหล่านี้
Camera-Lifecycle เวอร์ชัน 1.0.0-beta08
19 สิงหาคม 2020
androidx.camera:camera-lifecycle:1.0.0-beta08
ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.0.0-beta08 มีคอมมิตเหล่านี้
การแก้ไขข้อบกพร่อง
- การเริ่มต้นไม่ควรขัดข้องอีกต่อไปเมื่อใช้ Context
ที่ไม่ได้แสดงผลออบเจ็กต์ Application จาก
Context.getApplicationContext()
(I3d3c9, b/160817073)
Camera-Lifecycle เวอร์ชัน 1.0.0-beta07
22 กรกฎาคม 2020
androidx.camera:camera-lifecycle:1.0.0-beta07
ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.0.0-beta07 มีคอมมิตเหล่านี้
Camera-Lifecycle เวอร์ชัน 1.0.0-beta06
24 มิถุนายน 2020
androidx.camera:camera-lifecycle:1.0.0-beta06
ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.0.0-beta06 มีคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- ตอนนี้คุณกำหนดค่า CameraX ด้วย ProcessCameraProvider#configureInstance() ได้แล้วก่อนที่จะเรียกใช้ ProcessCameraProvider#getInstance() ซึ่งจะช่วยให้ปรับแต่ง CameraXConfig ได้โดยไม่ต้องใช้ CameraXConfig.Provider ในคลาส Application ของแอป (Ia1a8d)
Camera-Lifecycle เวอร์ชัน 1.0.0-beta05
10 มิถุนายน 2020
androidx.camera:camera-lifecycle:1.0.0-beta05
ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.0.0-beta05 มีคอมมิตเหล่านี้
การแก้ไขข้อบกพร่อง
- แก้ไขข้อขัดข้องเมื่อเริ่มต้นแอปขณะเริ่มต้น CameraX ในขณะที่โทรศัพท์อยู่ในโหมดห้ามรบกวน ระบบจะตั้งค่า
InitializationException
ที่มีCameraUnavailableException
เป็นListenableFuture
ของผลการเริ่มต้นแทนที่จะทำให้แอปพลิเคชันขัดข้อง (I9909a, b/149413835)
Camera-Lifecycle เวอร์ชัน 1.0.0-beta04
27 พฤษภาคม 2020
androidx.camera:camera-lifecycle:1.0.0-beta04
ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.0.0-beta04 มีคอมมิตเหล่านี้
Camera-Lifecycle เวอร์ชัน 1.0.0-beta03
15 เมษายน 2020
androidx.camera:camera-lifecycle:1.0.0-beta03
ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.0.0-beta03 มีคอมมิตเหล่านี้
การแก้ไขข้อบกพร่อง
- แก้ไขการถดถอยจาก beta03 ที่การเรียก
bindToLifecycle()
โดยไม่มีUseCase
จะทำให้เกิดข้อยกเว้น ซึ่งทำให้ไม่สามารถเรียกข้อมูลCamera
ได้โดยไม่ต้องผูกUseCase
- การแก้ไขเพื่อรองรับการเปิดตัว
camera-core
Camera-Lifecycle เวอร์ชัน 1.0.0-beta01
26 กุมภาพันธ์ 2020
androidx.camera:camera-lifecycle:1.0.0-beta01
ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.0.0-beta01 มีคอมมิตเหล่านี้
การแก้ไขข้อบกพร่อง
- แก้ไขเอกสารเพื่อระบุว่าเมื่อได้รับ
ProcessCameraProvider
ในระหว่างการเริ่มต้น ระบบจะใช้การกำหนดค่าเริ่มต้น และApplication
จะขยายหรือไม่ก็ได้ (I5e395)
Camera-Lifecycle เวอร์ชัน 1.0.0-beta02
1 เมษายน 2020
androidx.camera:camera-lifecycle:1.0.0-beta02
ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.0.0-beta02 มีคอมมิตเหล่านี้
การแก้ไขข้อบกพร่อง
- อัปเดตเพื่อรองรับการแก้ไขข้อบกพร่องในอาร์ติแฟกต์
camera-camera2:1.0.0-beta02
และcamera-core:1.0.0-beta02
Camera-Lifecycle เวอร์ชัน 1.0.0-alpha10
10 กุมภาพันธ์ 2020
androidx.camera:camera-lifecycle:1.0.0-alpha10
ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.0.0-alpha10 มีคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- เพิ่มคำอธิบายประกอบ
@MainThread
ในเมธอด BindToLifecycle, unbind และ unbindAll (I990d2)
Camera-Lifecycle เวอร์ชัน 1.0.0-alpha03
22 มกราคม 2020
androidx.camera:camera-lifecycle:1.0.0-alpha03
ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.0.0-alpha03 มีคอมมิตเหล่านี้
อัปเดต
- การแก้ไขและการอัปเดตต่างๆ เพื่อรองรับการเปลี่ยนแปลงของ Camera Core และ Camera2
Camera-Lifecycle เวอร์ชัน 1.0.0-alpha02
18 ธันวาคม 2019
androidx.camera:camera-lifecycle:1.0.0-alpha02
ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.0.0-alpha02 มีคอมมิตเหล่านี้
การเปลี่ยนแปลงการขึ้นต่อกัน
- อัปเดตเพื่อใช้
androidx.camera:camera-core:1.0.0-alpha08
Camera-Lifecycle เวอร์ชัน 1.0.0-alpha01
4 ธันวาคม 2019
androidx.camera:camera-lifecycle:1.0.0-alpha01
ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.0.0-alpha01 ของ camera-lifecycle มีคอมมิตต่อไปนี้
หมายเหตุเกี่ยวกับ API
- ระบบจะเพิ่มอาร์ติแฟกต์วงจรของกล้อง ซึ่งมี
LifeCycleCameraProvider
อินเทอร์เฟซ และการติดตั้งใช้งานที่เรียกว่าProcessCameraProvider
ซึ่งมีฟังก์ชันหลายอย่างของคลาส CameraX ก่อนหน้าในส่วนหลัก และรับได้ผ่านเมธอดgetInstance()
- แอปควรมีไลบรารีวงจรกล้องเพื่อใช้ CameraX
- ดูหมายเหตุในส่วน camera-core เพื่อดูวิธีเริ่มต้น CameraX โดยใช้
ProcessCameraProvider
ส่วนขยายกล้องและมุมมองกล้องเวอร์ชัน 1.0.0
เวอร์ชัน 1.0.0-alpha32
15 ธันวาคม 2021
androidx.camera:camera-extensions:1.0.0-alpha32
และ androidx.camera:camera-view:1.0.0-alpha32
เปิดตัวแล้ว เวอร์ชัน 1.0.0-alpha32 มีคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- นำคำอธิบายประกอบ
@RequiresApi(21)
ที่ไม่จำเป็นออกจากคลาส/อินเทอร์เฟซด้านใน (I8e286, b/204917951) - อัปเดตไฟล์ API สำหรับอาร์ติแฟกต์ส่วนขยายกล้อง (If683a, b/161377155)
การแก้ไขข้อบกพร่อง
- ไม่อนุญาตให้แอปเปิดใช้โหมดส่วนขยายเมื่อเชื่อมโยง
VideoCapture
ส่วนขยาย CameraX รองรับเฉพาะImageCapture
และPreview
ระบบยังไม่รองรับVideoCapture
หากแอปเชื่อมโยงVideoCapture
และเปิดใช้โหมดส่วนขยายใดๆ ระบบจะแสดงIllegalArgumentException
(I0d87b) CameraSelector#filter
จะไม่แสดงIllegalArgumentException
อีกต่อไปเมื่อชุดผลลัพธ์ว่างเปล่า (I27804)- เปลี่ยนชื่อ
ExtensionsManager#getInstance
API เป็นgetInstanceAsync
เนื่องจากจะแสดงผลListenableFuture
คำต่อท้าย Async ของชื่อฟังก์ชันจะแสดงอย่างชัดเจนว่าเป็นฟังก์ชันแบบไม่พร้อมกัน (I279d2) - นำพารามิเตอร์ความละเอียดออกจาก
ExtensionsManager#getEstimatedCaptureLatencyRange
API เนื่องจากผู้ใช้ไม่ทราบว่าขนาดใดบ้างที่รองรับสำหรับกรณีการใช้งานImageCapture
และไม่สามารถแยกแยะได้ว่าข้อมูลเวลาในการตอบสนองที่แสดงเป็นขนาดเอาต์พุตการจับภาพสูงสุดหรือพารามิเตอร์ความละเอียดของอินพุต (I74bb2) - ย้ายพารามิเตอร์
CameraProvider
ของฟังก์ชันExtensionsManager
ไปยัง APIgetInstance()
เพื่อให้ผู้ใช้ไม่ต้องป้อนพารามิเตอร์CameraProvider
ทุกครั้งเมื่อเรียกใช้ฟังก์ชันExtensionsManager
(Ic7e48)
เวอร์ชัน 1.0.0-alpha31
17 พฤศจิกายน 2021
androidx.camera:camera-extensions:1.0.0-alpha31
และ androidx.camera:camera-view:1.0.0-alpha31
เปิดตัวแล้ว เวอร์ชัน 1.0.0-alpha31 มีคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- เพิ่ม CameraSelector#filter ลงใน API สาธารณะเพื่อกรองรายการ CameraInfo ตาม CameraSelector (I105d0)
การแก้ไขข้อบกพร่อง
- แก้ไขข้อขัดข้องเมื่อเปลี่ยนโหมดส่วนขยายอย่างรวดเร็วในอุปกรณ์บางเครื่อง (Iebbef)
เวอร์ชัน 1.0.0-alpha30
13 ตุลาคม 2021
androidx.camera:camera-extensions:1.0.0-alpha30
และ androidx.camera:camera-view:1.0.0-alpha30
เปิดตัวแล้ว เวอร์ชัน 1.0.0-alpha30 มีคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- เพิ่มคำอธิบายประกอบ @RequiresApi(21) ลงในคลาส CameraX ทั้งหมด และนำ minSdkVersion ออกจาก AndroidManifest.xml ซึ่งจะช่วยให้ผสานรวม camera-core เข้ากับแอปพลิเคชันที่มี minSdkVersion น้อยกว่า 21 ได้อย่างง่ายดาย แต่ต้องการใช้เส้นทางโค้ดแบบมีเงื่อนไข ที่อิงตาม API 21 ขึ้นไป สำหรับการใช้งานใดๆ ที่มี minSdkVersion 21 ขึ้นไป การเปลี่ยนแปลงนี้ไม่จำเป็นต้องดำเนินการใดๆ (Ie7f2e, b/200599470)
การแก้ไขข้อบกพร่อง
- แก้ไขปัญหา AbstractMethodError ซึ่งเกิดขึ้นเมื่อเปิดใช้ ProGuard (Iae468, b/201177844)
เวอร์ชัน 1.0.0-alpha29
29 กันยายน 2021
androidx.camera:camera-extensions:1.0.0-alpha29
และ androidx.camera:camera-view:1.0.0-alpha29
เปิดตัวแล้ว เวอร์ชัน 1.0.0-alpha29 มีคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- ตอนนี้เราได้นำคำอธิบายประกอบ ExperimentalUseCaseGroup ออกแล้วเนื่องจาก API ไม่ใช่เวอร์ชันทดลองอีกต่อไป (I01ef5)
- นำ
RotationProvider#removeAllListeners()
ออก โปรดใช้RotationProvider#removeListener(...)
แทน (Id9d4a) - อัปเดตคลาส RotationReceiver: เปลี่ยน set/clear Listener เป็น add/remove/removeAll, นำรูปแบบ setListener ที่ใช้เทรดหลักโดยค่าเริ่มต้นออก และเพิ่มคำอธิบายประกอบของเมธอด (Ib1669)
การแก้ไขข้อบกพร่อง
- เปลี่ยนชื่อ ExtensionMode#BEAUTY เป็น FACE_RETOUCH เพื่อแสดงสิ่งที่โหมดส่วนขยายทำได้อย่างถูกต้อง (I61f54, b/198515274)
- แก้ไขปัญหาที่กล้องปิดโดยไม่คาดคิดเมื่อใช้ CameraController และ PreviewView หลายรายการในกิจกรรมเดียว (Ibfd18, b/197539358)
เวอร์ชัน 1.0.0-alpha28
18 สิงหาคม 2021
androidx.camera:camera-extensions:1.0.0-alpha28
และ androidx.camera:camera-view:1.0.0-alpha28
เปิดตัวแล้ว เวอร์ชัน 1.0.0-alpha28 มีคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- ตอนนี้เราได้นำคำอธิบายประกอบ ExperimentalUseCaseGroupLifecycle ออกแล้วเนื่องจาก API ไม่ใช่เวอร์ชันทดลองอีกต่อไป (I17b85)
- ปรับโครงสร้าง RotationListener ใหม่และเปลี่ยนชื่อเป็น RotationProvider และยังคงให้บริการฟีเจอร์เดิมด้วย API ที่แตกต่างกันเล็กน้อย (Idffc5)
- เปลี่ยนชื่อ TAP_TO_FOCUS_UNSUCCESSFUL เป็น TAP_TO_FOCUS_NOT_FOCUSED และ TAP_TO_FOCUS_SUCCESSFUL เป็น TAP_TO_FOCUS_FOCUSED ทำให้ OutputSize เป็นค่าสุดท้าย (I099fa)
การแก้ไขข้อบกพร่อง
- นำคลาส
<EffectName><UseCase>Extender
ที่เลิกใช้งานแล้ว, ExtensionsErrorListener และ API ของ ExtensionsManager ที่เกี่ยวข้องออก (I3b8c3)
เวอร์ชัน 1.0.0-alpha27
21 กรกฎาคม 2021
androidx.camera:camera-extensions:1.0.0-alpha27
และ androidx.camera:camera-view:1.0.0-alpha27
เปิดตัวแล้ว เวอร์ชัน 1.0.0-alpha27 มีคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- เลื่อนระดับ Viewport API จากเวอร์ชันทดลอง นำคำอธิบายประกอบเวอร์ชันทดลองของ API ออก (I717ea)
- เปลี่ยนชื่อ
CoordinateTransform#getTransform
เป็นCoordinateTransform#transform
และอัปเดต JavaDoc (I864ae)
การแก้ไขข้อบกพร่อง
- แก้ไขปัญหาการยืดโหมด
PreviewView PERFORMANCE
เมื่อใช้ร่วมกับ Compose UI (Ie1137, b/183864890)
เวอร์ชัน 1.0.0-alpha26
30 มิถุนายน 2021
androidx.camera:camera-extensions:1.0.0-alpha26
และ androidx.camera:camera-view:1.0.0-alpha26
เปิดตัวแล้ว เวอร์ชัน 1.0.0-alpha26 มีคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- เพิ่มเมธอดใหม่
CameraController#getTapToFocusState()
ที่แสดงผลลัพธ์การแตะเพื่อโฟกัสล่าสุด (Iaccb0) - เพิ่มฟีเจอร์หลักของกล้องลงใน CameraController: ตัวรับ/ตัวตั้งค่าสำหรับสัดส่วนภาพเป้าหมาย ความละเอียดเป้าหมาย โหมดการจับภาพ CameraControl และตัวดำเนินการที่กำหนดเอง (Iea8f2)
- เพิ่มคลาส RotationReceiver ที่รับการเปลี่ยนแปลงการหมุนของ Surface ใช้เพื่อตั้งค่าการหมุนเป้าหมายเมื่ออุปกรณ์อยู่ในโหมดแนวตั้ง/แนวนอนแบบคงที่ได้ (Ib278f)
- เปิดเผย API สาธารณะ getEstimatedCaptureLatencyRange ใหม่ในคลาส ExtensionsManager (I6a8ec)
- เลิกใช้งาน ExtensionsErrorListener แล้ว ปัจจุบันอินเทอร์เฟซนี้ใช้เพื่อตรวจสอบว่ามี Preview หรือ ImageCapture หรือไม่เมื่อเปิดใช้โหมดส่วนขยาย CameraX จะเพิ่ม Preview หรือ ImageCapture พิเศษโดยอัตโนมัติเพื่อให้ฟังก์ชันส่วนขยายทำงานได้ดี หลังจากนั้น ระบบจะไม่รายงานข้อผิดพลาดผ่านอินเทอร์เฟซนี้ (I47d9e)
- เปิดเผย API สาธารณะใหม่ของ ExtensionsManager getInstance, isExtensionAvailable และ getExtensionEnabledCameraSelector รวมถึงเลิกใช้งานคลาส
<EffectName><UseCase>Extender
เก่าและ API ที่เกี่ยวข้อง (I329e6)
เวอร์ชัน 1.0.0-alpha25
2 มิถุนายน 2021
androidx.camera:camera-extensions:1.0.0-alpha25
และ androidx.camera:camera-view:1.0.0-alpha25
เปิดตัวแล้ว เวอร์ชัน 1.0.0-alpha25 มีคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- ตอนนี้ ExperimentalCameraFilter API ได้พ้นระยะทดลอง และกลายเป็น API อย่างเป็นทางการแล้ว โดยสามารถใช้ได้โดยไม่ต้องมี OptIn ที่มีการอธิบายประกอบ (I4bc94)
- เพิ่มยูทิลิตีที่แปลงพิกัดระหว่างกรณีการใช้งาน ตัวอย่างการใช้งาน: แปลงพิกัดที่ตรวจพบในกรณีการใช้งาน ImageAnalysis และไฮไลต์ออบเจ็กต์ที่ตรวจพบในตัวอย่าง (I63ab1, b/137515129)
- นำ
CameraView
ออกแล้วCameraView
ถูกแทนที่ด้วยCameraController
แล้ว โปรดดูวิธีการย้ายข้อมูลในคำแนะนำในการย้ายข้อมูล (Id5005)
การแก้ไขข้อบกพร่อง
- แทนที่
ExperimentalUseCaseGroupLifecycle
ด้วยExperimentalUseCaseGroup
แล้ว (I3b2ef, b/159033688)
เวอร์ชัน 1.0.0-alpha24
21 เมษายน 2021
androidx.camera:camera-extensions:1.0.0-alpha24
และ androidx.camera:camera-view:1.0.0-alpha24
เปิดตัวแล้ว เวอร์ชัน 1.0.0-alpha24 มีคอมมิตต่อไปนี้
การแก้ไขข้อบกพร่อง
- แทนที่คำอธิบายประกอบ
@Experimental
ด้วย@RequiresOptIn
ใน API เวอร์ชันทดลอง หากต้องการเรียกใช้ API ที่เป็นเวอร์ชันทดลอง ให้ใช้androidx.annotation.OptIn
แทนandroidx.annotation.experimental.UseExperimental
ที่เลิกใช้งานแล้ว (Iff226) - แก้ไขปัญหาการยืด PreviewView ใน Samsung J5 Prime (Ib10b6)
ส่วนขยายกล้องและดูเวอร์ชัน 1.0.0-alpha23
24 มีนาคม 2021
androidx.camera:camera-extensions:1.0.0-alpha23
และ androidx.camera:camera-view:1.0.0-alpha23
เปิดตัวแล้ว เวอร์ชัน 1.0.0-alpha23 มีคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- เราจะเลิกใช้งาน CameraView โปรดใช้
LifecycleCameraController
แทน ดูคำแนะนำในการย้ายข้อมูล (Idac2c) - เพิ่มคำอธิบายประกอบ FloatRange ให้กับ setLinearZoom() (I69971)
การแก้ไขข้อบกพร่อง
- ปักหมุดการอ้างอิงมุมมองกล้องเพื่อใช้สิ่งประดิษฐ์ 1.0.0 การขึ้นอยู่กับ camera-view จะไม่ทำให้การแก้ปัญหาการขึ้นต่อกันของ Gradle อัปเกรด camera-core, camera-camera2 และ camera-lifecycle เป็นอาร์ติแฟกต์ 1.1.0 ล่าสุดโดยอัตโนมัติอีกต่อไป แม้ว่า camera-view จะยังคงเข้ากันได้กับอาร์ติแฟกต์เหล่านั้นหากตั้งค่าไว้อย่างชัดเจนให้ใช้ 1.1.0 (Ic8fa1, b/181599852)
- แก้ไขการแสดงตัวอย่างที่ยืดใน PreviewView ของ Samsung A3 (Iacb30, b/180121821)
- แก้ไขปัญหาที่ตั้งค่าตัวเลือกกล้องไม่ได้ก่อนที่จะเริ่มต้นกล้อง (Ic8bd0)
ส่วนขยายกล้องและดูเวอร์ชัน 1.0.0-alpha22
24 กุมภาพันธ์ 2021
androidx.camera:camera-extensions:1.0.0-alpha22
และ androidx.camera:camera-view:1.0.0-alpha22
เปิดตัวแล้ว เวอร์ชัน 1.0.0-alpha22 มีคอมมิตต่อไปนี้
การเปลี่ยนแปลง API
- เพิ่มตัวรับ CameraInfo ลงใน CameraController (Ib8138, b/178251727)
การแก้ไขข้อบกพร่อง
- แก้ไข ExtensionsErrorListener เพื่อรายงานข้อผิดพลาดเมื่อมีการเชื่อมโยงเฉพาะ Preview หรือ ImageCapture (I5ae39)
ส่วนขยายกล้องและดูเวอร์ชัน 1.0.0-alpha21
27 มกราคม 2021
androidx.camera:camera-extensions:1.0.0-alpha21
และ androidx.camera:camera-view:1.0.0-alpha21
เปิดตัวแล้ว เวอร์ชัน 1.0.0-alpha21 มีคอมมิตเหล่านี้
เปิดตัวเพื่อรองรับอาร์ติแฟกต์ไลบรารีกล้องอื่นๆ
ส่วนขยายกล้องและดูเวอร์ชัน 1.0.0-alpha20
16 ธันวาคม 2020
androidx.camera:camera-extensions:1.0.0-alpha20
และ androidx.camera:camera-view:1.0.0-alpha20
เปิดตัวแล้ว เวอร์ชัน 1.0.0-alpha20 มีคอมมิตเหล่านี้
เปิดตัวเพื่อรองรับอาร์ติแฟกต์ไลบรารีกล้องอื่นๆ
ส่วนขยายกล้องและมุมมองกล้องเวอร์ชัน 1.0.0-alpha19
11 พฤศจิกายน 2020
androidx.camera:camera-extensions:1.0.0-alpha19
และ androidx.camera:camera-view:1.0.0-alpha19
เปิดตัวแล้ว เวอร์ชัน 1.0.0-alpha19 มีคอมมิตเหล่านี้
การแก้ไขข้อบกพร่อง
- เราได้เปิดตัวคำอธิบายประกอบ
@ExperimentalVideo
ในมุมมองกล้อง คำอธิบายประกอบนี้จะทำเครื่องหมาย API ที่แสดงฟังก์ชันวิดีโอเวอร์ชันทดลอง ซึ่งอาจมีการเปลี่ยนแปลงเมื่อฟีเจอร์ได้รับการพัฒนาอย่างเต็มรูปแบบ เมธอดใดก็ตามที่ใช้ API เหล่านี้ควรใช้คำอธิบายประกอบ@UseExperimental
โดยมีExperimentalVideo
เป็นmarkerClass
(I6d729)
ส่วนขยายกล้อง เวอร์ชัน 1.0.0-alpha18
14 ตุลาคม 2020
androidx.camera:camera-extensions:1.0.0-alpha18
ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.0.0-alpha18 มีคอมมิตเหล่านี้
การแก้ไขข้อบกพร่อง
- ปรับปรุงเวลาในการตอบสนองของการเริ่มต้น CameraX และ bindToLifecycle (I61dc5)
<UseCase>.getTargetRotation()
จะแสดงผลSurface.ROTATION_0
หากเรียกใช้ก่อนที่จะแนบกับอินสแตนซ์กล้อง เว้นแต่จะมีการตั้งค่า targetRotation ใน Builder หรือ UseCase (I80fcd)
Camera-View เวอร์ชัน 1.0.0-alpha18
14 ตุลาคม 2020
androidx.camera:camera-view:1.0.0-alpha18
ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.0.0-alpha18 มีคอมมิตเหล่านี้
เปิดตัวเพื่อรองรับอาร์ติแฟกต์ไลบรารีกล้องอื่นๆ
ส่วนขยายกล้อง เวอร์ชัน 1.0.0-alpha17
23 กันยายน 2020
androidx.camera:camera-extensions:1.0.0-alpha17
ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.0.0-alpha17 มีคอมมิตเหล่านี้
การแก้ไขข้อบกพร่อง
- เปิดตัวเพื่อรองรับ Camera-Core 1.0.0-beta10
Camera-View เวอร์ชัน 1.0.0-alpha17
23 กันยายน 2020
androidx.camera:camera-view:1.0.0-alpha17
ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.0.0-alpha17 มีคอมมิตเหล่านี้
การแก้ไขข้อบกพร่อง
- เปิดตัวเพื่อรองรับ Camera-Core 1.0.0-beta10
ส่วนขยายกล้อง เวอร์ชัน 1.0.0-alpha16
16 กันยายน 2020
androidx.camera:camera-extensions:1.0.0-alpha16
ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.0.0-alpha16 มีคอมมิตเหล่านี้
การแก้ไขข้อบกพร่อง
- เพิ่มเมธอดใน
ExtensionsManager
เพื่อรับออบเจ็กต์Extensions
ซึ่งใช้เพื่อเปิดใช้และค้นหาส่วนขยายในอินสแตนซ์ของกล้อง (I4fb7e)
Camera-View เวอร์ชัน 1.0.0-alpha16
16 กันยายน 2020
androidx.camera:camera-view:1.0.0-alpha16
ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.0.0-alpha16 มีคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- นำ
PreviewView#setDeviceRotationForRemoteDisplayMode()
และPreviewView#getDeviceRotationForRemoteDisplayMode()
ออกแล้ว ทั้ง 2 วิธีนี้ใช้สําหรับการปรับแต่งการหมุนตัวอย่างเมื่อต้องการหมุนที่ไม่ใช่การหมุนจอแสดงผล เช่น จอแสดงผลระยะไกล หากต้องการจัดการการหมุนเวียนตัวอย่างที่ไม่ใช่โฆษณา Display ในตอนนี้ ให้ตั้งค่าการหมุนเวียนที่ต้องการด้วยPreview#setTargetRotation()
และPreviewView#getViewPort(targetRotation)
ที่เพิ่มเข้ามาใหม่ (Ib62cc) - เปลี่ยนชื่อ
createSurfaceProvider()
เป็นgetSurfaceProvider()
แล้ว เมธอดจะแสดงอินสแตนซ์เดียวกันของ Preview.SurfaceProvider เสมอ (Iff83c)
การแก้ไขข้อบกพร่อง
- บังคับให้ PreviewView ใช้ TextureView หากเปิดใช้เอฟเฟกต์ส่วนขยาย และการติดตั้งใช้งานไลบรารีของผู้ให้บริการต้องดำเนินการพิเศษบนพื้นผิวเอาต์พุต (I0c3cc)
- อนุญาตการหมุนเป้าหมายโดยพลการสำหรับตัวอย่าง ระบบจะคำนวณและส่งคืนข้อมูลการแปลงไปยังผู้ใช้แบบเรียลไทม์ผ่าน
TranformationInfoListener
การเรียกกลับใหม่ (I21470)
ปัญหาที่ทราบ
- ใน PreviewView ระบบจะไม่เรียกใช้
OnClickListener#onClick()
เมื่อผู้ใช้ปลายทางคลิก PreviewView PreviewView#onTouchEvent() ใช้เหตุการณ์การแตะอย่างไม่ถูกต้อง ปัญหานี้จะได้รับการแก้ไขในการเผยแพร่ครั้งถัดไป - MeteringPoint ที่ได้จาก
PreviewView#getMeteringPointFactory()
อาจไม่ถูกต้องหากใช้ ViewPort กับ PreviewView
ส่วนขยายกล้อง เวอร์ชัน 1.0.0-alpha15
19 สิงหาคม 2020
androidx.camera:camera-extensions:1.0.0-alpha15
ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.0.0-alpha15 มีคอมมิตต่อไปนี้
การแก้ไขข้อบกพร่อง
- ตอนนี้เมธอด
ExtensionsManager.init()
จะใช้ Context เป็นพารามิเตอร์แทนที่จะมี 0 อาร์กิวเมนต์ (Ife754) การเริ่มต้นไม่ควรขัดข้องอีกต่อไปเมื่อใช้ Context ที่ไม่แสดงผลออบเจ็กต์ Application จาก
Context.getApplicationContext()
(I3d3c9, b/160817073)Camera-View เวอร์ชัน 1.0.0-alpha15
19 สิงหาคม 2020
androidx.camera:camera-view:1.0.0-alpha15
ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.0.0-alpha15 มีคอมมิตต่อไปนี้
การแก้ไขข้อบกพร่อง
DisplayOrientedMeteringPointFactory
รับCameraInfo
อินสแตนซ์แทนCameraSelector
เพื่อให้มีการแมปโดยตรงกับ กล้องที่โรงงานจะสร้างจุดให้ ชั้นเรียนทั้งหมด ที่ใช้DisplayOrientedMeteringPointFactory
จะใช้CameraInfo
อินสแตนซ์แทนCameraSelector
(I400c1)- นำ
TextureViewMeteringPointFactory
ออกแล้วPreviewView
มี API สาธารณะ (createMeteringPointFactory()
) สำหรับสร้างโรงงานจุดวัดโดยไม่คำนึงถึงว่าใช้TextureView
หรือSurfaceView
(Ide693) - เปลี่ยนชื่อโหมดการติดตั้งใช้งาน
SURFACE_VIEW
/TEXTURE_VIEW
ของ PreviewView เป็นPERFORMANCE
/COMPATIBLE
โดยPERFORMANCE
คือโหมดSURFACE_VIEW
เดิม และCOMPATIBLE
คือโหมดTEXTURE_VIEW
เดิม (I0edc2) - สำหรับการจับภาพ ให้เขียนทับแฟล็กพลิกแนวนอนในข้อมูลเมตาตามทิศทางของกล้อง (I28499)
ส่วนขยายกล้อง เวอร์ชัน 1.0.0-alpha14
22 กรกฎาคม 2020
androidx.camera:camera-extensions:1.0.0-alpha14
ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.0.0-alpha14 มีคอมมิตต่อไปนี้
Camera-View เวอร์ชัน 1.0.0-alpha14
22 กรกฎาคม 2020
androidx.camera:camera-view:1.0.0-alpha14
ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.0.0-alpha14 มีคอมมิตต่อไปนี้
ส่วนขยายกล้อง เวอร์ชัน 1.0.0-alpha13
24 มิถุนายน 2020
androidx.camera:camera-extensions:1.0.0-alpha13
ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.0.0-alpha13 มีคอมมิตต่อไปนี้
การแก้ไขข้อบกพร่อง
- เพิ่มอินเทอร์เฟซเวอร์ชันทดลองสำหรับการกรองกล้องตามรหัสกล้อง และ CameraCharacteristics (I28f61)
Camera-View เวอร์ชัน 1.0.0-alpha13
24 มิถุนายน 2020
androidx.camera:camera-view:1.0.0-alpha13
ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.0.0-alpha13 มีคอมมิตต่อไปนี้
การแก้ไขข้อบกพร่อง
- CameraView จะไม่ขัดข้องอีกต่อไปเมื่อมี IllegalArgumentException เมื่อเชื่อมโยงกับ LifecycleOwner ที่มี Lifecycle เปลี่ยนเป็นสถานะ DESTROYED หลังจากเชื่อมโยงไม่นาน Binding Lifecycles ในสถานะ DESTROYED จะไม่พยายามเปิดกล้อง (I7c2b8)
- ตอนนี้คุณสามารถดู PreviewView StreamState ผ่าน CameraView.getPreviewStreamState() (I21a2b) ได้แล้ว
ส่วนขยายกล้อง เวอร์ชัน 1.0.0-alpha12
10 มิถุนายน 2020
androidx.camera:camera-extensions:1.0.0-alpha12
ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.0.0-alpha12 มีคอมมิตต่อไปนี้
การแก้ไขข้อบกพร่อง
- แก้ไขข้อขัดข้องเมื่อเริ่มต้นแอปขณะเริ่มต้น CameraX ในขณะที่โทรศัพท์อยู่ในโหมดห้ามรบกวน ระบบจะตั้งค่า
InitializationException
ที่มีCameraUnavailableException
เป็นListenableFuture
ของผลการเริ่มต้นแทนที่จะทำให้แอปพลิเคชันขัดข้อง (I9909a, b/149413835)
Camera-View เวอร์ชัน 1.0.0-alpha12
10 มิถุนายน 2020
androidx.camera:camera-view:1.0.0-alpha12
ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.0.0-alpha12 มีคอมมิตต่อไปนี้
การแก้ไขข้อบกพร่อง
- เพิ่ม
PreviewView#getBitmap()
API ซึ่งจะแสดงการแทนเนื้อหาเป็นบิตแมปที่แสดงบนพื้นผิวตัวอย่าง (I9b500, b/157659818)
ส่วนขยายกล้อง เวอร์ชัน 1.0.0-alpha11
27 พฤษภาคม 2020
androidx.camera:camera-extensions:1.0.0-alpha11
ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.0.0-alpha11 มีคอมมิตเหล่านี้
Camera-View เวอร์ชัน 1.0.0-alpha12
10 มิถุนายน 2020
androidx.camera:camera-view:1.0.0-alpha12
ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.0.0-alpha12 มีคอมมิตต่อไปนี้
ฟีเจอร์ใหม่
การเปลี่ยนแปลง API
การแก้ไขข้อบกพร่อง
- เพิ่ม
PreviewView#getBitmap()
API ซึ่งจะแสดงการแทนเนื้อหาเป็นบิตแมปที่แสดงบนพื้นผิวตัวอย่าง (I9b500, b/157659818)
Camera-View เวอร์ชัน 1.0.0-alpha11
27 พฤษภาคม 2020
androidx.camera:camera-view:1.0.0-alpha11
ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.0.0-alpha11 มีคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- เพิ่ม
PreviewView#getPreviewStreamState
API ซึ่ง อนุญาตให้แอปสังเกตได้ว่ามีการสตรีมตัวอย่างหรือไม่ เมื่อ PreviewView อยู่ในโหมด TEXTURE_VIEW สถานะ STREAMING จะรับประกันว่ารูปภาพตัวอย่างจะมองเห็นได้ด้วย (Ic0906, b/154652477) - เพิ่ม
PreviewView#setDeviceRotationForRemoteDisplayMode()
API เพื่อให้การหมุนอุปกรณ์สำหรับการคำนวณการเปลี่ยนรูป หากแอปพลิเคชันทำงานในโหมดจอแสดงผลระยะไกล (I59b95, b/153514525)
การแก้ไขข้อบกพร่อง
- แก้ไขปัญหาการบิดเบี้ยวของตัวอย่างใน
FULL/LIMITED/LEVEL_3
ที่ใช้ Android 7.0 และต่ำกว่า บังคับใช้โหมดImplementationMode#TEXTURE_VIEW
เมื่อ Android เป็นเวอร์ชัน 7.0 หรือต่ำกว่า (I83e30, b/155085307) - นำพารามิเตอร์
CameraInfo
ออกจากPreviewView#createSurfaceProvider()
แล้ว ตอนนี้PreviewView
จะเรียกข้อมูลจากSurfaceRequest
ภายใน (If18f0, b/154652477) - แก้ไขสัดส่วนการแสดงผลเริ่มต้นของ VideoCapture ให้เป็น 16:9 ใน CameraView (Ie6a7b, b/153237864)
- แก้ไข
PreviewView
ปัญหาหน้าจอสีดำเมื่อปัดออกPreview
Fragment แล้วปัดกลับเข้าไปใน ViewPager2 นอกจากนี้ยังแก้ไขปัญหาเมื่อremoveView(previewview)
แล้วaddView(previewView)
ด้วย (Iab555, b/149877652, b/147354615) - อัปเดต
CameraView#takePicture()
API เพื่ออนุญาตให้บันทึกรูปภาพไปยังUri
และOutputStream
อัปเดตแอปทดสอบเพื่อใช้Uri
เป็นตัวอย่างที่ชัดเจน (Ia2459, b/153607583) - คุณตั้งค่าประเภทการปรับขนาดของ PreviewView จากเลย์เอาต์ XML ได้โดยการตั้งค่าแอตทริบิวต์
ScaleType
(I08565, b/153015659) - นำ
CameraView.ScaleType
ออกแล้ว แต่ให้ใช้PreviewView.ScaleType
เพื่อตั้งค่า/รับประเภทการปรับขนาดด้วย CameraView แทน (Ia8974, b/153014831) - กำหนดสีพื้นหลังให้กับ
PreviewView
โดยค่าเริ่มต้นหากยังไม่มี ซึ่งจะป้องกันไม่ให้เนื้อหาที่อยู่เบื้องหลังปรากฏก่อนที่สตรีมตัวอย่างจะเริ่ม (I09fad)
ส่วนขยายกล้อง เวอร์ชัน 1.0.0-alpha10
15 เมษายน 2020
androidx.camera:camera-extensions:1.0.0-alpha10
ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.0.0-alpha10 มีคอมมิตเหล่านี้
การแก้ไขข้อบกพร่อง
- การแก้ไขเพื่อรองรับการเปิดตัว Camera-Core
Camera-View เวอร์ชัน 1.0.0-alpha10
15 เมษายน 2020
androidx.camera:camera-view:1.0.0-alpha010
ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.0.0-alpha010 มีคอมมิตต่อไปนี้
การแก้ไขข้อบกพร่อง
- แก้ไขปัญหาที่ทราบก่อนหน้านี้ซึ่งการใช้งาน SurfaceView ของ
PreviewView
ทำงานได้ไม่ดีในอุปกรณ์บางรุ่น และทำให้แอปขัดข้องหลังจากกลับมาแสดงตัวอย่าง (I5ed6b)
ส่วนขยายกล้อง เวอร์ชัน 1.0.0-alpha09
1 เมษายน 2020
androidx.camera:camera-extensions:1.0.0-alpha09
ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.0.0-alpha09 มีคอมมิตต่อไปนี้
การแก้ไขข้อบกพร่อง
- อัปเดตเพื่อรองรับการแก้ไขข้อบกพร่องในอาร์ติแฟกต์
camera-camera2:1.0.0-beta02
,camera-core:1.0.0-beta02
และcamera-lifecycle:1.0.0-beta02
Camera-View เวอร์ชัน 1.0.0-alpha09
1 เมษายน 2020
androidx.camera:camera-view:1.0.0-alpha09
เปิดตัว เวอร์ชัน 1.0.0-alpha09 มีคอมมิตต่อไปนี้
ปัญหาที่ทราบ
- การใช้
ImplementationMode.SURFACE_VIEW
กับPreviewView
อาจทำงานได้ไม่ดีในอุปกรณ์บางรุ่น เนื่องจากSurfaceView
ที่ใช้สำหรับแสดงตัวอย่างจะทำให้พื้นผิวของSurfaceView
ไม่ถูกต้องเมื่อหยุดวงจรของหน้าต่างที่SurfaceView
อยู่ เมื่อรีสตาร์ท ระบบจะเปิดกล้องอีกครั้งและอาจพยายามแสดงตัวอย่างต่อก่อนที่พื้นผิวของSurfaceView
จะถูกต้องอีกครั้ง ในตอนนี้ คุณควรใช้ImplementationMode.TEXTURE_VIEW
การเปลี่ยนแปลง API
- เปลี่ยนชื่อ
PreviewView.setImplementationMode()
เป็นPreviewView.setPreferredImplementationMode()
แล้ว - เปลี่ยนชื่อ
PreviewView.getImplementationMode()
เป็นPreviewView.getPreferredImplementationMode()
แล้ว - แทนที่
PreviewView.getSurfaceProvider()
ด้วยPreviewView.createSurfaceProvider(CameraInfo)
ซึ่งใช้อินสแตนซ์CameraInfo
ที่อนุญาตให้เป็น Null เพื่อเพิ่มประสิทธิภาพการแสดงตัวอย่างโดยใช้ImplementationMode.SURFACE_VIEW
ทุกครั้งที่เป็นไปได้ หากส่งอินสแตนซ์เป็น Null หรือตั้งค่าโหมดการติดตั้งใช้งานที่ต้องการเป็นImplementationMode.TEXTURE_VIEW
ระบบจะใช้ImplementationMode.TEXTURE_VIEW
ภายใน ตัวอย่างโค้ดต่อไปนี้แสดงวิธีใช้กรณีการใช้งานการแสดงตัวอย่างที่เคยใช้กับ PreviewView
preview.setSurfaceProvider(previewView.previewSurfaceProvider) cameraProvider.bindToLifecycle(lifecycleOwner, cameraSelector, preview)
ตอนนี้คุณเขียนได้ดังนี้
val camera = cameraProvider.bindToLifecycle(lifecycleOwner, cameraSelector, preview) previewView.preferredImplementationMode = ImplementationMode.TEXTURE_VIEW preview.setSurfaceProvider(previewView.createSurfaceProvider(camera.cameraInfo))
เพิ่มคำอธิบายประกอบ
@UiThread
ลงในPreviewView.getSurfaceProvider()
แล้ว ซึ่งหมายความว่าต้องเรียกใช้จากเทรดหลัก (I192f3)เพิ่ม
PreviewView.setScaleType()
ซึ่งช่วยให้ตั้งค่าประเภทการปรับขนาดของตัวอย่างได้ โดยจะยอมรับค่าใดค่าหนึ่งในPreviewView.ScaleType
และค่าเริ่มต้นคือPreviewView.ScaleType.FILL_CENTER
เพิ่ม
PreviewView.getScaleType()
แล้วนำการรองรับการตั้งค่าโหมดการติดตั้งใช้งานสำหรับ
PreviewView
ในเลย์เอาต์ XML โดยใช้แอตทริบิวต์implementationMode
ออกแล้วเพิ่ม
createMeteringPointFactory()
API ไปยัง PreviewView เพื่อรองรับการแปลง (x, y) ในPreviewView
เป็นMeteringPoint
(Ib36d7)
การแก้ไขข้อบกพร่อง
- แก้ไขกรณีที่แสดงตัวอย่างไม่ถูกต้องหลังจากขนาดของ
PreviewView
เปลี่ยนไป (I71101)
ส่วนขยายกล้อง เวอร์ชัน 1.0.0-alpha08
26 กุมภาพันธ์ 2020
androidx.camera:camera-extensions:1.0.0-alpha08
ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.0.0-alpha08 มีคอมมิตต่อไปนี้
Camera-View เวอร์ชัน 1.0.0-alpha08
26 กุมภาพันธ์ 2020
androidx.camera:camera-view:1.0.0-alpha08
ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.0.0-alpha08 มีคอมมิตต่อไปนี้
การแก้ไขข้อบกพร่อง
- แทนที่
ListenableFuture
ในSurfaceRequest.provideSurface()
ด้วยExecutor
และCallback
ซึ่งจะช่วยลดความซับซ้อนของ API โดยไม่ต้องจัดการข้อยกเว้นในprovideSurface()
อีกต่อไป และบังคับใช้ว่าการเรียกกลับprovideSurface()
จะยกเลิกไม่ได้ เพื่อป้องกันไม่ให้อุปกรณ์รุ่นเก่าขัดข้องเนื่องจาก การปล่อยพื้นผิวเร็วเกินไป ตอนนี้ระบบใช้SurfaceRequest.Result
ออบเจ็กต์ เพื่อติดตามวิธีที่SurfaceRequest
ใช้Surface
ที่ระบุ (I7854b) - เปลี่ยนชื่อ
SurfaceRequest.setSurface(Surface)
เป็นSurfaceRequest.provideSurface(Surface)
และSurfaceRequest.setWillNotComplete()
เป็นSurfaceRequest.willNotProvideSurface()
(I224fe) - แก้ไขการเริ่มต้นตัวแปรแอปที่เปิดใช้ ProGuard โดยการเก็บรักษา
แฟล็กที่ตั้งค่าผู้ให้บริการ
CameraXConfig
เริ่มต้น (I2d6c1)
Camera-Extensions เวอร์ชัน 1.0.0-alpha07
10 กุมภาพันธ์ 2020
androidx.camera:camera-extensions:1.0.0-alpha07
ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.0.0-alpha07 มีคอมมิตเหล่านี้
การแก้ไขข้อบกพร่อง
- ตอนนี้อาร์กิวเมนต์ที่ส่งใน
ImageCapture.OnImageSavedCallback.onError()
และImageCapture.OnImageCapturedCallback.onError()
ก่อนหน้านี้จะถูกแทนที่ด้วยอาร์กิวเมนต์เดียวImageCaptureException
ซึ่งยังคงมีข้อมูลทั้งหมดที่ส่งก่อนหน้านี้ - อาร์กิวเมนต์ไฟล์ที่ส่งใน
ImageCapture.OnImageSavedCallback.onImageSaved()
ก่อนหน้านี้ถูกนำออกแล้ว (I750d2)
Camera-View เวอร์ชัน 1.0.0-alpha07
10 กุมภาพันธ์ 2020
androidx.camera:camera-view:1.0.0-alpha07
ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.0.0-alpha07 มีคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- ตอนนี้การติดตั้งใช้งาน
TextureView
ของPreviewView
จะตั้งค่าขนาดของTextureView
เป็นขนาดเอาต์พุตของเซ็นเซอร์กล้องก่อนที่จะปรับขนาดให้พอดีกับPreviewView
ระดับบน หากต้องการให้ตัวอย่างกล้องครอบคลุมทั้งส่วนของ UI (ทั้งหน้าจอ เช่น) คุณไม่ควรตั้งค่าPreviewView
เป็นค่าคงที่ หรือให้ครอบคลุมเนื้อหา (โดยใช้แอตทริบิวต์ "wrap_content
" เป็นต้น) ซึ่งอาจส่งผลให้ตัวอย่างกล้องครอบคลุมเฉพาะส่วนของPreviewView
(หากขนาดเอาต์พุตของเซ็นเซอร์กล้องมีขนาดเล็กกว่า) แต่คุณควรตั้งค่าPreviewView
ให้มีขนาดใหญ่เท่ากับองค์ประกอบหลัก (เช่น ใช้แอตทริบิวต์ "match_parent
") (1204869)
การแก้ไขข้อบกพร่อง
- อัปเดต
ImageCapture
เพื่ออนุญาตให้บันทึกรูปภาพไปยังUri
และOutputStream
รวมวิธีการtakePicture
ที่โอเวอร์โหลดไว้เป็นหนึ่งเดียว อัปเดตแอปทดสอบเพื่อใช้Uri
เป็นตัวอย่างที่ชัดเจน (Ia3bec) - เปลี่ยนชื่อ
Preview.PreviewSurfaceProvider
เป็นPreview.SurfaceProvider
แล้วSurfaceProvider
ไม่กำหนดให้นักพัฒนาแอปสร้างListenableFuture
ของตนเองอีกต่อไป และตอนนี้การระบุSurface
จะทำผ่านออบเจ็กต์SurfaceRequest
ใหม่ เราได้นำPreview.getPreviewSurfaceProvider()
ออกเนื่องจากอาจมีการนำไปใช้ในทางที่ผิดเมื่อจับคู่Preview
กับคลาสอื่นๆ เช่นPreviewView
(I20105) - ตอนนี้อาร์กิวเมนต์ที่ส่งใน
ImageCapture.OnImageSavedCallback.onError()
และImageCapture.OnImageCapturedCallback.onError()
ก่อนหน้านี้จะถูกแทนที่ด้วยอาร์กิวเมนต์เดียวImageCaptureException
ซึ่งยังคงมีข้อมูลทั้งหมดที่ส่งก่อนหน้านี้ - อาร์กิวเมนต์ไฟล์ที่ส่งใน
ImageCapture.OnImageSavedCallback.onImageSaved()
ก่อนหน้านี้ถูกนำออกแล้ว (I750d2) - อัปเดต API ด้วยเมธอด
getZoomRatio()
,getMaxZoomRatio()
,getMinZoomRatio()
และgetLinearZoom()
ของCameraInfo
ที่ผสานรวมเข้ากับgetZoomState()
ซึ่งจะแสดงผลอินสแตนซ์ZoomState
(Ib19fe)
ส่วนขยายกล้อง เวอร์ชัน 1.0.0-alpha06
22 มกราคม 2020
androidx.camera:camera-extensions:1.0.0-alpha06
ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.0.0-alpha06 มีคอมมิตเหล่านี้
อัปเดต
- การแก้ไขและการอัปเดตต่างๆ เพื่อรองรับการเปลี่ยนแปลงของ Camera Core และ Camera2
Camera-View เวอร์ชัน 1.0.0-alpha06
22 มกราคม 2020
androidx.camera:camera-view:1.0.0-alpha06
ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.0.0-alpha06 มีคอมมิตเหล่านี้
อัปเดต
- การแก้ไขและการอัปเดตต่างๆ เพื่อรองรับการเปลี่ยนแปลงของ Camera Core และ Camera2
ส่วนขยายกล้อง เวอร์ชัน 1.0.0-alpha05
18 ธันวาคม 2019
androidx.camera:camera-extensions:1.0.0-alpha05
ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.0.0-alpha05 มีคอมมิตเหล่านี้
การแก้ไขข้อบกพร่อง
- อัปเดตให้ตรงกับ API หลักของกล้องภายใน
Camera-View เวอร์ชัน 1.0.0-alpha05
18 ธันวาคม 2019
androidx.camera:camera-view:1.0.0-alpha05
ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.0.0-alpha05 มีคอมมิตเหล่านี้
ปัญหาที่ทราบ
- สัดส่วนภาพอาจไม่ถูกต้องเมื่อใช้ PreviewView (b/146215202)
ฟีเจอร์ใหม่
- ใช้คลาสใหม่ที่ชื่อ
PreviewView.TextureViewImplementation
ซึ่งซิงค์วงจรของ SurfaceTexture กับการใช้พื้นผิวของ TextureView โดยกล้อง
ส่วนขยายกล้อง เวอร์ชัน 1.0.0-alpha04
4 ธันวาคม 2019
androidx.camera:camera-extensions:1.0.0-alpha04
ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.0.0-alpha04 ของ camera-extensions มีคอมมิตเหล่านี้
การเปลี่ยนแปลง API
ปัจจุบันการตรวจสอบความพร้อมใช้งานและการเปิดใช้ส่วนขยายจะใช้
CameraSelector
เป็นพารามิเตอร์อินพุต โดยต้องเป็นCameraSelector
เดียวกันกับที่ใช้ผูกกรณีการใช้งานval cameraSelector = CameraSelector.DEFAULT_BACK_CAMERA val builder = ImageCapture.Builder() val bokehImageCaptureExtender = BokehImageCaptureExtender.create(builder) if (bokehImageCaptureExtender.isExtensionAvailable(cameraSelector)) { bokehImageCaptureExtender.enableExtension(cameraSelector) } val imageCapture = builder.build() mCameraProvider?.bindToLifecycle(this, cameraSelector, imageCapture)
คุณต้องเริ่มต้นส่วนขยายก่อนจึงจะใช้คลังส่วนขยายได้
val availability = ExtensionsManager.init() Futures.addCallback<ExtensionsManager.ExtensionsAvailability>( availability, object : FutureCallback<ExtensionsManager.ExtensionsAvailability> { override fun onSuccess(availability: ExtensionsManager.ExtensionsAvailability?) { // Ready to make extensions calls } override fun onFailure(throwable: Throwable) { // Extensions could not be initialized } }, Executors.newSingleThreadExecutor() )
Camera-View เวอร์ชัน 1.0.0-alpha04
4 ธันวาคม 2019
androidx.camera:camera-view:1.0.0-alpha04
ได้รับการเผยแพร่แล้ว กล้องเวอร์ชัน 1.0.0-alpha04 มีคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- มี
PreviewView
คลาสให้เพื่อแสดงเอาต์พุตจาก Use Case ของการแสดงตัวอย่างในแอปพลิเคชันได้อย่างง่ายดาย PreviewView
สามารถรวมไว้ในเลย์เอาต์ได้<androidx.camera.view.PreviewView android:id="@+id/preview_view" … />
PreviewView
มีPreviewSurfaceProvider
เพื่อเชื่อมต่อกรณีการใช้งานเวอร์ชันพรีวิวได้อย่างง่ายดายpreview.setPreviewSurfaceProvider(previewView.previewSurfaceProvider)
ตอนนี้ "
ZoomLevel
" เปลี่ยนเป็น "ZoomRatio
" ในการตั้งชื่อ API แล้วพารามิเตอร์ของเมธอดบางรายการมีการเปลี่ยนแปลงค่า Null
ส่วนขยายกล้องและมุมมองกล้อง เวอร์ชัน 1.0.0-alpha03
9 ตุลาคม 2019
androidx.camera:camera-extensions:1.0.0-alpha03
และ androidx.camera:camera-view:1.0.0-alpha03
เปิดตัวแล้ว คอมมิตที่รวมอยู่ใน camera-extensions:1.0.0-alpha03
และคอมมิตที่รวมอยู่ใน camera-view:1.0.0-alpha03
ฟีเจอร์ใหม่
- เพิ่มตัวเริ่มต้นบริบทสำหรับส่วนขยาย เพิ่มเวอร์ชันส่วนขยายเป็น 1.1.0
ส่วนขยายกล้องและมุมมองกล้อง เวอร์ชัน 1.0.0-alpha02
5 กันยายน 2019
androidx.camera:camera-extensions:1.0.0-alpha02
และ
androidx.camera:camera-view:1.0.0-alpha02
เปิดตัวแล้ว โดยมี
คอมมิตที่รวมอยู่ใน camera-extensions:1.0.0-alpha02
และคอมมิตที่รวมอยู่ใน
camera-view:1.0.0-alpha02
- เพิ่มการทดสอบเพื่อยืนยันว่า
PreviewImageProcessorImpl
ได้ติดตั้งใช้งาน การประทับเวลาอย่างถูกต้อง - แก้ไข
ExtensionTest
การทดสอบล้มเหลวใน Nexus 5 (API ระดับ 21) และตรวจสอบว่าตัวอย่าง พร้อมใช้งาน
ส่วนขยายกล้องและมุมมองกล้อง เวอร์ชัน 1.0.0-alpha01
7 สิงหาคม 2019
androidx.camera:camera-extensions:1.0.0-alpha01
และ
androidx.camera:camera-view:1.0.0-alpha01
เปิดตัวแล้ว
โดยมีการเปลี่ยนแปลงที่รวมอยู่ใน camera-extensions:1.0.0-alpha01
และการเปลี่ยนแปลงที่รวมอยู่ใน
camera-view:1.0.0-alpha01
- ไลบรารีใหม่สำหรับส่วนขยายกล้องในอนาคตเพื่อเข้าถึงเอฟเฟ็กต์ในอุปกรณ์ที่รองรับ ไลบรารีนี้ยังอยู่ระหว่างการพัฒนา
- คลาส Camera View ใหม่ ไลบรารีนี้ยังอยู่ระหว่างการพัฒนา