กล้องถ่ายรูป X
androidx.camera.camera2
androidx.camera.core
androidx.camera.extensions
androidx.camera.lifecycle
androidx.camera.view
androidx.camera.video
androidx.camera.mlkit.vision{androidx.camera.mlkit.vision
{1camera.camera.view}
ตารางนี้จะแสดงรายการอาร์ติแฟกต์ทั้งหมดในกลุ่ม androidx.camera
อาร์ติแฟกต์ | รุ่นที่เสถียร | ตัวเลือกถอนการอ้างสิทธิ์ | รุ่นเบต้า | เวอร์ชันอัลฟ่า |
---|---|---|---|---|
camera-camera2 | 1.4.0 | - | - | 1.5.0-alpha03 |
camera-core | 1.4.0 | - | - | 1.5.0-alpha03 |
camera-compose | - | - | - | 1.5.0-alpha03 |
camera-effects | 1.4.0 | - | - | 1.5.0-alpha03 |
ส่วนขยายกล้อง | 1.4.0 | - | - | 1.5.0-alpha03 |
camera-feature-combination-query | - | - | - | 1.5.0-alpha03 |
Camera-feature-combination-query-play-services | - | - | - | 1.5.0-alpha03 |
camera-lifecycle | 1.4.0 | - | - | 1.5.0-alpha03 |
camera-mlkit-vision | 1.4.0 | - | - | 1.5.0-alpha03 |
camera-view | 1.4.0 | - | - | 1.5.0-alpha03 |
camera-viewfinder | - | - | 1.3.0-beta02 | 1.4.0-alpha07 |
camera-video | 1.4.0 | - | - | 1.5.0-alpha03 |
การทดสอบอุปกรณ์
เราทดสอบ 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-alpha03" // 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-alpha03" // 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 ให้ดียิ่งขึ้น โปรดแจ้งให้เราทราบหากพบปัญหาใหม่หรือมีแนวคิดในการปรับปรุงคลังนี้ โปรดดูปัญหาที่มีอยู่ในคลังนี้ก่อนสร้างปัญหาใหม่ คุณสามารถเพิ่มการโหวตให้กับปัญหาที่มีอยู่ได้โดยคลิกปุ่มดาว
ดูข้อมูลเพิ่มเติมได้ในเอกสารประกอบเกี่ยวกับเครื่องมือติดตามปัญหา
ช่องมองภาพของกล้อง Compose เวอร์ชัน 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 มีการคอมมิตเหล่านี้
ฟีเจอร์ใหม่
- ไลบรารีใหม่ ไลบรารีนี้เปิดตัว Compose ในตัวช่องมองภาพแบบ Composable ซึ่งใช้ได้กับ CameraX และ Camera2 ช่องมองภาพแบบประกอบได้รองรับสัดส่วนภาพที่แตกต่างกันและการจัดการกิจกรรมการสัมผัส
ช่องมองภาพกล้องเวอร์ชัน 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
- เปลี่ยนชื่อ
ImplementationMode
ของViewfinder
ให้แสดงถึงการใช้งานพื้นฐานได้ดียิ่งขึ้น และเพิ่มค่าคงที่แบบคงที่สำหรับTransformationInfo.sourceRotation
(Ic6149) - เพิ่ม
ZoomGestureDetector.ZoomEvent
เพื่อรวมสถานะของท่าทางสัมผัสการซูม (I84cdf)
เวอร์ชันกล้อง 1.5
เวอร์ชัน 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 ซึ่งเป็นรูปแบบ Adobe DNG และOUTPUT_FORMAT_RAW_JPEG
จับภาพ RAW และ JPEG พร้อมกันImageCapture#takePicture
API ใหม่ใช้เพื่อจับภาพพร้อมกันและต้องระบุOutputFileOptions
2 รายการ โดยรายการแรกมีไว้สำหรับรูปภาพ RAW และรายการที่ 2 มีไว้สำหรับรูปภาพ JPEG (Ib0f3d)
การแก้ไขข้อบกพร่อง
- แก้ไขปัญหาการพรีวิวและวิดีโอที่แสงน้อยในอุปกรณ์ TCL เมื่อเปิดใช้
VideoCapture
(Id7a64) - แก้ไขปัญหาที่การเรียกใช้
startFocusMetering
ด้วยPreviewView.getMeteringPointFactory
ไม่ได้รับพิกัดเซ็นเซอร์ที่ถูกต้องเมื่อเปิดใช้เอฟเฟกต์หรือเมื่อมีการเชื่อมโยง Use Case 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
นี่เป็น
CameraManager#getCameraDeviceSetup#isSessionConfigurationSupported
API ของ camera2 เวอร์ชันที่เข้ากันได้ซึ่งมีข้อมูลเพิ่มเติมจากบริการ Google Play
การแก้ไขข้อบกพร่อง
- แก้ไขปัญหาอัตราเฟรมเป้าหมาย
Preview/VideoCapture
รายการในอุปกรณ์ระดับเดิม อัตราเฟรมเป้าหมายที่ตั้งค่าผ่าน APIsetTargetFrameRate
หรือCamera2Interop
จะถูกเขียนทับเป็นค่าที่AeFpsRangeLegacyQuirk
ระบุไว้เสมอ ในการแก้ไขนี้จะทำให้ไลบรารี CameraX เป็นไปตามค่าที่ตั้งไว้ผ่าน API ของsetTargetFrameRate
หรือCamera2Interop
(Ie2d32) - เพิ่มฟังก์ชันแฟลช/ไฟฉาย/3A สำหรับการจับภาพด้วย
CameraEffect
ตอนนี้รูปภาพที่จับภาพด้วยCameraEffect
ควรมีการประมวลผลก่อนและหลังการจับภาพ (เช่น การทำงานของแฟลช การรวม 3A ฯลฯ เมื่อมี) เหมือนกับรูปภาพที่จับภาพโดยไม่มีCameraEffect
(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 มีการคอมมิตเหล่านี้
การเปลี่ยนแปลง 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.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: การควบคุมใหม่สำหรับการกำหนดค่าการจับภาพวิดีโอ
- ตัวอย่างการลดการสั่นไหว: ค้นหาความสามารถของอุปกรณ์และเปิดใช้การลดการสั่นไหว
- วิดีโอเพื่อเพิ่มประสิทธิภาพ: ควบคุมคุณภาพและเข้าถึงความละเอียดที่สูงขึ้นได้ละเอียดยิ่งขึ้น
- การผสานรวมส่วนขยาย CameraX: การผสานรวมที่ราบรื่นกับฟีเจอร์
VideoCapture
และImageCapture
ใหม่ - Shutter Sound API: ตรวจสอบข้อกำหนดด้านเสียงชัตเตอร์ระดับภูมิภาคได้อย่างง่ายดาย
- แฟลชหน้าจอ: ปรับปรุงรูปภาพในสภาวะแสงน้อยสำหรับกล้องหน้า
- Camera Extensions Metadata API: API ที่รองรับการปรับความแรงของส่วนขยายและรับการแจ้งเตือนเกี่ยวกับโหมดส่วนขยายปัจจุบันใน
ExtensionMode#AUTO
ดูการแก้ไขข้อบกพร่องเพิ่มเติมได้ในประกาศเกี่ยวกับเบต้าและ RC
เวอร์ชัน 1.4.0-rc04
16 ตุลาคม 2024
ปล่อย androidx.camera:camera-*:1.4.0-rc04
แล้ว เวอร์ชัน 1.4.0-rc04 มีการคอมมิตเหล่านี้
การแก้ไขข้อบกพร่อง
- แก้ไขปัญหาที่การเรียกใช้
startFocusMetering
ด้วยPreviewView.getMeteringPointFactory
ไม่ได้รับพิกัดเซ็นเซอร์ที่ถูกต้องเมื่อเปิดใช้เอฟเฟกต์หรือเมื่อมีการเชื่อมโยง Use Case 4 รายการ (การแชร์สตรีม) (I916c5, b/345993685)
เวอร์ชัน 1.4.0-rc03
2 ตุลาคม 2024
androidx.camera:camera-*:1.4.0-rc03
ได้รับการปล่อยแล้ว เวอร์ชัน 1.4.0-rc03 มีการคอมมิตเหล่านี้
การแก้ไขข้อบกพร่อง
- เพิ่มฟังก์ชันของ Flash/ไฟฉาย/3A สำหรับการจับภาพด้วย
CameraEffect
ตอนนี้รูปภาพที่จับภาพด้วยCameraEffect
ควรมีการประมวลผลก่อนและหลังการจับภาพ (เช่น การทำงานของแฟลช การรวม 3A ฯลฯ เมื่อมี) เหมือนกับรูปภาพที่จับภาพโดยไม่มีCameraEffect
(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
เวอร์ชันทดลองเพื่อระบุข้อมูลกล้องที่เฉพาะเจาะจงโดยไม่ต้องมีการเชื่อมโยง Use Case กับกล้อง (I550d1)
การเปลี่ยนแปลง API
- เพิ่ม API
PreviewView.getScreenFlash
และPreviewView.setScreenFlashOverlayColor
สำหรับกรณีที่ไม่ได้เพิ่มScreenFlashView
อย่างชัดเจน (I43945)
การแก้ไขข้อบกพร่อง
- แก้ไขปัญหาการเปิดรับแสงและสีของภาพเมื่อจับภาพโดยเปิดใช้แฟลชในที่แสงน้อยโดยมีการเชื่อมโยง Use Case ของ 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
- คล้ายกับ
VideoCapture
ให้เพิ่มsetMirrorMode
สำหรับ Use Case ของเวอร์ชันตัวอย่าง โดยจะรองรับการเปิดและปิดโหมดมิเรอร์สำหรับสตรีมตัวอย่างผ่าน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-idiomatic (I920be)
การเปลี่ยนแปลง API
- เพิ่ม API รูปแบบเอาต์พุตไปยัง
ImageCapture
และเพิ่มเมธอดgetSupportedOutputFormats
ไปยังImageCaptureCapabilities
เพื่อค้นหาความสามารถของอุปกรณ์ ค่ารูปแบบเอาต์พุตเริ่มต้นคือOUTPUT_FORMAT_JPEG
ซึ่งจะจับภาพ SDR ในรูปแบบ JPEG เมื่ออุปกรณ์รองรับ Ultra HDR และตั้งค่ารูปแบบเอาต์พุตเป็นOUTPUT_FORMAT_JPEG_ULTRA_HDR
แล้ว CameraX จะจับภาพ Ultra HDR ที่บีบอัดโดยใช้รูปแบบรูปภาพ JPEG/R รูปแบบนี้เข้ากันได้กับรูปแบบ SDR JPEG และรองรับการแสดงผลเนื้อหาแบบ 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 สำหรับ Use Case ของตัวอย่าง: ตอนนี้คุณตั้งค่าช่วงไดนามิกใน Use Case ของตัวอย่างได้โดยไม่เกี่ยวข้องกับ Use Case ของวิดีโอ ซึ่งจะอนุญาตให้ใช้ช่วงไดนามิก HDR เช่น HLG10 สำหรับตัวอย่างเพลงเท่านั้น นอกจากนี้ API ใหม่ยังพร้อมใช้งานในCameraInfo
เพื่อค้นหาว่ากล้องแต่ละรุ่นรองรับช่วงไดนามิกใด
การเปลี่ยนแปลง API
- เปลี่ยนชื่อ
ScreenFlashUiCompleter
เป็นScreenFlashListener
และย้ายScreenFlashUiCompleter#getExpirationTimeMillis
ไปยังพารามิเตอร์expirationTimeMillis
ของScreenFlash#apply
แล้ว (I13944) - เพิ่ม API ใหม่เพื่ออนุญาตให้ตั้งค่าช่วงไดนามิกใน Use Case ของตัวอย่าง และเพื่อค้นหาช่วงไดนามิกที่กล้องแต่ละรุ่นรองรับ วิธีนี้ช่วยให้ช่วงไดนามิก 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)
การแก้ไขข้อบกพร่อง
- แก้ไขปัญหาการรั่วไหลของหน่วยความจำที่ส่งผลให้ระบบไม่ปล่อยกิจกรรมหรือข้อมูลโค้ดเมื่อเปิดใช้ส่วนขยาย (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
เพื่อรับการแจ้งเตือนความคืบหน้าหลังดูและประมวลผล หากรองรับ (I5cd88) - API สำหรับคำนวณการเปลี่ยนรูปแบบพิกัดจากเซ็นเซอร์ไปยังบัฟเฟอร์ปัจจุบัน โดยมี Flag ที่ระบุว่าพื้นผิวมีข้อมูลการวางแนวกล้องหรือไม่ (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) - เพิ่ม getter/setter รูปแบบเอาต์พุต
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
เป็นวิธีเลือกความละเอียดที่ครอบคลุมมากขึ้นและสอดคล้องกับ camera-core 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
และ Preview ได้เมื่อเปิดใช้โหมดส่วนขยายบางโหมดในอุปกรณ์บางรุ่น การแก้ไขนี้จะแสดงผลลัพธ์ที่ถูกต้องเมื่อแอปค้นหาความพร้อมจำหน่าย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
ที่ตรงกับ UseCaseImageAnalysis
เพื่อแก้ปัญหานี้ (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
4 ตัว:Preview
+ImageCapture
+ImageAnalysis
+VideoCapture
- Google Pixel 7: ประมาณ 430 ถึง 60 มิลลิวินาที
- Samsung Galaxy S23 Ultra: ประมาณ 540 ถึง 45 มิลลิวินาที
- Samsung A53 5G: ประมาณ 115-70 ms
UseCases
3 ตัว:Preview
+ImageCapture
+ImageAnalysis
- Google Pixel 7: ประมาณ 9-7 มิลลิวินาที
- Samsung Galaxy S23 Ultra: ประมาณ 6-5 มิลลิวินาที
- Samsung A53 5G: ประมาณ 32-12 ms
เพิ่ม 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
และ Preview ได้เมื่อเปิดใช้โหมดส่วนขยายบางโหมดในอุปกรณ์บางรุ่น การแก้ไขจะแสดงค่าที่ถูกต้องเมื่อแอปค้นหาความพร้อมใช้งานของ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
ซึ่งแอปจะกำหนดได้ว่าสามารถเชื่อมโยง Use CaseImageAnalysis
ร่วมกับพรีวิวและ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
เพื่อให้ตั้งค่าและเรียกดูอัตราเฟรมเป้าหมายสำหรับกรณีการใช้งานเวอร์ชันตัวอย่างได้ (If4f22) - ตอนนี้
VideoRecordEvent.Finalize
จะเสร็จสมบูรณ์พร้อมรหัสข้อผิดพลาดERROR_RECORDING_GARBAGE_COLLECTED
เมื่อออบเจ็กต์Recording
หยุดทำงานเนื่องจากการเก็บขยะ (Iba974)
การแก้ไขข้อบกพร่อง
- แก้ไข
NullPointerException
เมื่อขนาดเอาต์พุตที่แคชไว้ในStreamConfigurationMapCompat
เป็นค่าว่าง (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
mirroring API ช่วยให้คุณจัดแนวกับตัวอย่างภาพจากกล้องได้เมื่อใช้กล้องหน้า มีMirrorMode
3 รายการ ได้แก่OFF
,ON
และON_FRONT_ONLY
หากต้องการปรับให้ตรงกับตัวอย่างภาพจากกล้อง เราขอแนะนำให้ใช้ON_FRONT_ONLY
ซึ่งหมายความว่าระบบจะไม่เปิดใช้การมิเรอร์สำหรับกล้องหลัง แต่เปิดใช้สำหรับกล้องหน้า
การเปลี่ยนแปลง API
- เปิดเผย API ใหม่ของ
ResolutionSelector
แอปพลิเคชันสามารถระบุสัดส่วนภาพและกลยุทธ์ความละเอียดได้ด้วยกฎการสำรองหรือตัวกรองความละเอียดที่กำหนดเอง เพื่อให้ได้ผลลัพธ์ที่ต้องการ แอปพลิเคชันสามารถระบุ 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)
- สร้าง
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()
ไม่ใช่ค่า Null เพิ่ม#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
จะมีผลกับ Use Case ของVideoCapture
และจะมีผลต่อสตรีมที่แชร์เป้าหมายPREVIEW|VIDEO_CAPTURE
ก่อนที่จะคัดลอกไปยังสตรีมตัวอย่างและสตรีมVideoCapture
(Iee6f3)
การแก้ไขข้อบกพร่อง
- จากกล้อง
1.2.2
: แก้ไขปัญหาที่ส่วนขยาย CameraX ไม่ทำงานอย่างถูกต้องเมื่อเปิดใช้ ProGuard ในอุปกรณ์บางรุ่น เช่น Pixel (I90aa2) - แก้ไขข้อบกพร่อง
PreviewView
ที่ว่าหากแอปจัดการการวางแนวหน้าจอเอง การแสดงตัวอย่างอาจบิดเบี้ยวเมื่อหมุน ซึ่งจะเกิดขึ้นในอุปกรณ์บางรุ่นเท่านั้น ซึ่งทำซ้ำได้ใน Pixel a4, 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 ที่ไม่รองรับก่อนหน้านี้ด้วยการแชร์สตรีมเดียวไปยัง Use Case หลายรายการ
- ก่อนหน้านี้ เมื่อมีการเชื่อมโยง "Preview, VideoCapture, ImageAnalysis" ในฮาร์ดแวร์กล้องระดับ FULL และต่ำกว่า หรือเชื่อมโยง "Preview, VideoCapture, ImageCapture" ในฮาร์ดแวร์ระดับ LEGACY ทาง CameraX จะแสดงข้อผิดพลาด
IllegalArgumentException
- ลักษณะการทำงานใหม่คือ การเชื่อมโยงจะทํางานโดยไม่แสดงข้อยกเว้น แต่จะใช้ OpenGL เพื่อคัดลอกสตรีมที่ใช้ร่วมกันไปยังทั้งการแสดงตัวอย่างและ 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
ผู้ให้บริการแพลตฟอร์มสามารถแจ้งได้ว่าแพลตฟอร์มที่ระบุก่อนหน้านี้ไม่ถูกต้องแล้ว (Idc649) - เพิ่ม
ImageProcessor
API อินเทอร์เฟซนี้มีไว้สําหรับแทรกเอฟเฟกต์หลังการประมวลผลลงในไปป์ไลน์ImageCapture
(I575c6) - เพิ่ม API
Recorder.Builder.setAspectRatio()
ซึ่งสามารถใช้ร่วมกับQualitySelector
เพื่อรองรับความละเอียดของวิดีโอได้มากขึ้น (I8a082) - เพิ่ม
Recorder.Builder#setTargetVideoEncodingBitRate
เพื่อตั้งค่าการเข้ารหัสวิดีโอเป้าหมายBitRate
และRecorder#getTargetVideoEncodingBitRate
เพื่อรับอัตราบิตการเข้ารหัสวิดีโอเป้าหมาย (I5984d)
การแก้ไขข้อบกพร่อง
- แก้ไข
ImageCapture
ไม่สำเร็จเมื่อไม่มีหน่วยแฟลชและโหมดแฟลชเปิดอยู่ (I9e8b4, b/263391112) - แก้ไขปัญหาการเขียนข้อมูลตำแหน่ง Exif ในอุปกรณ์ Samsung Android 12 บางรุ่นทำให้รูปภาพ JPEG เสียหาย (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
ออกซึ่งไม่ได้ใช้อีกต่อไปหลังจากใช้ Video Capture API ใหม่ (I38cd8) - ใช้ API การจับภาพวิดีโอใหม่ ระบบจะใช้เมธอด
getVideoCaptureTargetQuality
และsetVideoCaptureTargetQuality
แทนgetVideoCaptureTargetSize
และsetVideoCaptureTargetSize
เนื่องจากระบบไม่รองรับsetTargetResolution
อีกต่อไป (I2a1d5)
การแก้ไขข้อบกพร่อง
- นำ
core.VideoCapture
API ที่เลิกใช้งานแล้วออก (I531e0) - แก้ไขปัญหาที่ระบบไม่เรียกใช้ Callback
onError
เมื่อถ่ายภาพโดยไม่มีสิทธิ์ใช้พื้นที่เก็บข้อมูล (I936db, b/244807669) - ปรับปรุงคุณภาพและความน่าเชื่อถือของส่วนขยายกล้อง ระบบจะปิดใช้ส่วนขยายกล้องในอุปกรณ์ Motorola ที่ใช้ส่วนขยายกล้องเวอร์ชัน 1.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)
- แก้ไขปัญหาหน้าจอสีดำการติดตั้งใช้งาน
SurfaceView
PreviewView
รายการใน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 มีคอมมิตเหล่านี้
แก้ไขข้อบกพร่อง
- แก้ไขปัญหาการเขียนข้อมูลตำแหน่ง Exif ในอุปกรณ์ Samsung Android 12 บางรุ่นทำให้รูปภาพ JPEG เสียหาย (b/263289024)
เวอร์ชัน 1.2.0
7 ธันวาคม 2022
androidx.camera:camera-*:1.2.0
ได้รับการปล่อยแล้ว เวอร์ชัน 1.2.0 มีคอมมิตเหล่านี้
การเปลี่ยนแปลงที่สําคัญตั้งแต่เวอร์ชัน 1.1.0
- ไลบรารีใหม่ camera-mlkit-vision ผสานรวม CameraX เข้ากับฟีเจอร์มากมายของ MLKit ได้อย่างง่ายดาย รวมถึงการสแกนบาร์โค้ด การตรวจจับใบหน้า การตรวจจับข้อความ ฯลฯ เพิ่ม
MLKitAnalyzer
เป็น API ใหม่ - API การทดสอบใหม่สำหรับเวลาในการตอบสนองของชัตเตอร์เป็น 0 เพิ่มประสิทธิภาพไปป์ไลน์การจับภาพเพื่อให้เวลาในการตอบสนองดีขึ้นโดยยังคงคุณภาพรูปภาพที่ดี เมื่อตั้งค่าโหมดการจับภาพเป็น
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 - แก้ไขปัญหาการแสดงตัวอย่างเป็นสีดําที่เกิดขึ้นเมื่อเปิดใช้ส่วนขยายโบเก้ในอุปกรณ์ 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 กับฟีเจอร์ MLKit หลายอย่างได้อย่างง่ายดาย ซึ่งรวมถึงการสแกนบาร์โค้ด การตรวจจับใบหน้า การตรวจจับข้อความ ฯลฯ โปรดดูโค้ดตัวอย่างที่นี่ - Zero-Shutter Lag 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)
แก้ไขข้อบกพร่อง
- เพิ่มการหมดเวลาเริ่มต้นของโฟกัสอัตโนมัติ 5000ms ซึ่งจะทําให้ส่วน AF เสร็จสมบูรณ์ด้วย
isFocusSuccessful
false หากไม่ยกเลิกFocusMeteringAction
และส่วน AF ไม่ได้บรรจบกันภายในระยะเวลาดังกล่าว (Ibc2e3) - แก้ไขปัญหาการถ่ายภาพด้วยตัวอย่างการเลิกเชื่อมโยง (I1d3a2, b/235119898)
- เปิดใช้การใช้งานตัวขยายขั้นสูงและอัปเดตเวอร์ชันอินเทอร์เฟซส่วนขยายที่รองรับของ 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
ที่แก้ไขแล้วจะปิดแฟลชในอุปกรณ์ที่รายงาน (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
- ไลบรารีมุมมอง ส่วนขยาย และการจับภาพวิดีโอลงจอดเป็น 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
ลงใน Public 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
) เมื่อโหมดแฟลชเป็นอัตโนมัติหรือเปิดอยู่เสมอในสภาพแวดล้อมที่มีแสงน้อย
เวอร์ชัน 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 เวอร์ชันแรกสำหรับ camera-video, camera-view และ camera-extension
การแก้ไขข้อบกพร่อง
- แก้ไขปัญหาที่ไม่มีการปล่อยตัวแปลงรหัสวิดีโอเมื่อยกเลิกการเชื่อมโยง
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)
การมีส่วนร่วมจากภายนอก
- อัปเดต :compose:ui:ui-test api (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)- ตอนนี้เราใช้วิธีการเฮuristic ที่ชาญฉลาดมากขึ้นเพื่อเลือกการตั้งค่าโปรแกรมเปลี่ยนไฟล์ตามโปรไฟล์ที่ OEM ระบุ (Iaeef0)
- ตัวอย่างแบบคงที่จะมีเส้นสีที่ซ้อนกันหลังจากเริ่มบันทึกวิดีโอ UHD ใน Pixel 1 (I833c6, b/205340278)
เวอร์ชัน 1.1.0-alpha11
17 พฤศจิกายน 2021
androidx.camera:camera-*:1.1.0-alpha11
ได้รับการปล่อยแล้ว เวอร์ชัน 1.1.0-alpha11 มีคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- เพิ่ม CameraSelector#filter ลงใน Public 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#setJpeg Quality ใหม่เพื่ออนุญาตให้เปลี่ยนคุณภาพการบีบอัดรูปภาพ 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 มีการคอมมิตเหล่านี้
ฟีเจอร์ใหม่
- เพิ่ม setOutputImageFormat API สำหรับการกำหนดค่าการวิเคราะห์รูปภาพ ผู้ใช้สามารถเลือก 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 อุปกรณ์ระดับจำกัดขึ้นไปรองรับความละเอียดขนาด RECORD สำหรับ ImageAnalysis เมื่อมีการเชื่อมโยงกับ Preview และ ImageCapture ข้อดีข้อเสียคือความละเอียดที่เลือกสำหรับ ImageCapture จะต้องเป็นความละเอียด RECORD ด้วย หากต้องการเลือกความละเอียดขนาด RECORD สำหรับ ImageAnalysis อย่างถูกต้อง ควรตั้งค่าความละเอียดเป้าหมายขนาด RECORD ทั้งใน ImageCapture และ ImageAnalysis ซึ่งบ่งชี้ว่าแอปพลิเคชันเข้าใจข้อเสียเปรียบอย่างชัดเจนและต้องการ ImageAnalysis ที่มีความละเอียดมากกว่าแทนที่ ImageCapture จะมีความละเอียดสูงสุด ดูคำจำกัดความของ RECORD, MAXIMUM และรายละเอียดเพิ่มเติมได้ที่ https://developer.android.com/reference/android/hardware/camera2/CameraDevice#regular-capture ขนาด RECORD หมายถึงความละเอียดในการบันทึกสูงสุดที่อุปกรณ์กล้องรองรับตามที่ CamcorderProfile กำหนด ขนาด MAXIMUM หมายถึงความละเอียดเอาต์พุตสูงสุดของอุปกรณ์กล้องสำหรับรูปแบบหรือเป้าหมายนั้นจาก 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)
- เปิดเผย getResolutionInfo API เพื่อแสดงข้อมูลความละเอียดสำหรับ 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 เก็บกิจกรรมหรือข้อมูลโค้ดไว้ (I7b4b8)
- แทนที่คำอธิบายประกอบ
@Experimental
ด้วย@RequiresOptIn
สำหรับ API เวอร์ชันทดลอง สำหรับการเรียก API ทดลอง ให้ใช้androidx.annotation.OptIn
แทนandroidx.annotation.experimental.UseExperimental
ที่เลิกใช้งานแล้ว (Iff226) - การจับภาพแบบคงที่ซึ่งเปิดแฟลช/อัตโนมัติจะถ่ายภาพที่ซีดบน 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)
- แก้ไขการแสดงตัวอย่างที่ยืดของ Samsung A3 ใน PreviewView (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 แย่งกล้องจากโปรแกรมรับส่งข้อมูลกล้องอื่นๆ เมื่อแอปของ 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)
Camera-Camera2, Camera-Core และ Camera-Lifecycle เวอร์ชัน 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)
Camera-Camera2, Camera-Core และ Camera-Lifecycle เวอร์ชัน 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)
Camera-Camera2, Camera-Core และ Camera-Lifecycle เวอร์ชัน 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 รองรับการแสดงตัวอย่าง การจับภาพ และการวิเคราะห์
- 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 มีการคอมมิตเหล่านี้
แก้ไขข้อบกพร่อง
- การจับภาพคงที่โดยใช้แฟลช "เปิด/อัตโนมัติ" จะถ่ายภาพสีจางบน 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) - เราได้เลิกใช้งานตัวแปร androidx ของคำอธิบายประกอบเวอร์ชันทดลองเพื่อให้สอดคล้องกับ Kotlin เราได้แทนที่แอตทริบิวต์นี้ด้วยแอตทริบิวต์ RequiresOptIn และอัปเดตโปรแกรมตรวจสอบโค้ดที่ทำงานกับ 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 มีการคอมมิตเหล่านี้
ฟีเจอร์ใหม่
- รองรับ Android 11
CONTROL_ZOOM_RATIO
API สําหรับการซูมในอุปกรณ์ Android 11 ขึ้นไปซึ่งมีCONTROL_ZOOM_RATIO_RANGE
ที่ถูกต้อง (I62cc6)
การแก้ไขข้อบกพร่อง
- แก้ไขปัญหา NumberFormatException ที่เกิดขึ้นเมื่อรหัสกล้องไม่ใช่รหัสกล้องที่เป็นจำนวนเต็ม (Ib2228)
- ปรับปรุงเวลาในการตอบสนองของการสร้างค่าเริ่มต้นและ bindToLifecycle (I61dc5) ของ CameraX
- การสร้าง UseCases ไม่จําเป็นต้องการเริ่มต้น CameraX ให้เสร็จสมบูรณ์ การกำหนดค่าเฉพาะการติดตั้งใช้งานทั้งหมดจะตั้งค่าใน UseCase เมื่อแนบกับอินสแตนซ์ Camera ซึ่งสำหรับ API สาธารณะคือ
ProcessCameraProvider.bindToLifecycle()
(Ia5411) <UseCase>.getTargetRotation()
จะแสดงผลเป็นSurface.ROTATION_0
หากเรียกใช้ก่อนที่จะแนบกับอินสแตนซ์ Camera เว้นแต่จะมีการตั้งค่า targetRotation ใน Builder หรือ UseCase (I80fcd)
Camera-Core เวอร์ชัน 1.0.0-beta11
14 ตุลาคม 2020
androidx.camera:camera-core:1.0.0-beta11
ได้รับการปล่อยแล้ว เวอร์ชัน 1.0.0-beta11 มีการคอมมิตเหล่านี้
ฟีเจอร์ใหม่
- รองรับ Android 11 CONTROL_ZOOM_RATIO
API สำหรับการซูมในอุปกรณ์ Android 11 ขึ้นไปซึ่งมี CONTROL_ZOOM_RATIO_RANGE
ที่ถูกต้อง (I62cc6)
การแก้ไขข้อบกพร่อง
- แก้ไขปัญหา NumberFormatException เกิดขึ้นเมื่อรหัสกล้องเป็นรหัสกล้องที่ไม่ใช่จำนวนเต็ม (Ib2228)
- การสร้าง UseCase ไม่จำเป็นต้องเริ่มต้นใช้งาน CameraX ให้เสร็จสมบูรณ์ การกำหนดค่าเฉพาะการติดตั้งใช้งานทั้งหมดจะตั้งค่าใน UseCase เมื่อแนบกับอินสแตนซ์ Camera ซึ่งสำหรับ API สาธารณะคือ
ProcessCameraProvider.bindToLifecycle()
(Ia5411) <UseCase>.getTargetRotation()
จะแสดงผลเป็นSurface.ROTATION_0
หากเรียกใช้ก่อนที่จะแนบกับอินสแตนซ์ Camera เว้นแต่จะมีการตั้งค่า 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
- แก้ไขข้อบกพร่องที่มีการทำเครื่องหมายวิวพอร์ตว่าไม่ใช่ค่าว่างใน UseCaseGroup นักพัฒนาแอปควรสร้างวิวพอร์ตได้โดยไม่ต้องตั้งค่าวิวพอร์ต (Ie3d2e)
- เพิ่มอินเทอร์เฟซทดลองสำหรับ
ExposureCompensation
(If96c7) - อนุญาตการหมุนเวียนเป้าหมายที่กำหนดเองสำหรับการแสดงตัวอย่าง ระบบจะคํานวณข้อมูลการเปลี่ยนรูปแบบและแสดงผลต่อผู้ใช้ทันทีผ่าน
TranformationInfoListener
callback ใหม่ (I21470)
แก้ไขข้อบกพร่อง
- แก้ไขปัญหาที่แฟลชในอุปกรณ์บางเครื่องปิดไม่ได้ ซึ่งเกิดขึ้นเมื่อตั้งค่าโหมดแฟลชเป็น
FLASH_MODE_ON
เพื่อถ่ายภาพ และเปลี่ยนเป็นFLASH_MODE_OFF
เมื่อแฟลชทำงาน อาการนี้เหมือนกับเปิดใช้โหมดไฟฉาย (Ib4451, b/162568128) - บังคับให้ PreviewView ใช้ TextureView หากเปิดใช้เอฟเฟกต์ส่วนขยาย และการใช้งานไลบรารีของผู้ให้บริการต้องทำกระบวนการพิเศษบนพื้นผิวเอาต์พุต (I0c3cc)
- แก้ไขการรั่วไหลของกิจกรรม/ส่วนย่อยเมื่อส่งบริบทกิจกรรม/ส่วนย่อยไปยัง
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 ที่กล้องไม่สามารถทำงานได้จากสภาวะการแข่งขัน (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)
การแก้ไขข้อบกพร่อง
- สำหรับการจับภาพ ให้เขียนทับ Flag พลิกแนวนอนในข้อมูลเมตาตามทิศทางของกล้อง (I28499)
- การเริ่มต้นจะไม่ขัดข้องอีกต่อไปเมื่อใช้ Context ที่ไม่ให้ค่าออบเจ็กต์แอปพลิเคชันจาก
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
หมายความว่า Rect ครอบตัดที่แสดงผลจะเป็น Rect เซ็นเซอร์ที่ใหญ่ที่สุดที่เป็นไปได้ (Ia73c3) - วิวพอร์ตจะกำหนดค่าสี่เหลี่ยมผืนผ้าครอบตัดของตัวอย่าง ผู้ใช้ปลายทางควรเห็นเฉพาะพื้นที่ที่สี่เหลี่ยมผืนผ้าครอบตัดครอบคลุม (I142a4)
การแก้ไขข้อบกพร่อง
- แก้ไขปัญหาที่ภาพตัวอย่างยืดออกในอุปกรณ์รุ่นเดิมของ Android 5.0 (I0c03a)
- แก้ไขข้อยกเว้น
ConcurrentModificationException
เมื่อยกเลิกการเชื่อมโยง Use Case (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)
- แก้ไขการสลับกล้องซ้ำๆ ทำให้การแสดงตัวอย่างหยุดชะงักเมื่อใช้การใช้งาน PreviewView ของ SurfaceView (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
ในคลาสแอปพลิเคชันของแอป (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
เป็นค่าว่าง (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
นอกจากนี้Analyzer
จะต้องปิดImageProxy
ทั้งหมดที่ได้รับก่อน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
เป็น 0 จะทำให้เกิดข้อยกเว้น ซึ่งจะช่วยป้องกันไม่ให้ดึงข้อมูล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 (Id4281, b/150802561) - คุณไม่จำเป็นต้องจัดเรียงอย่างชัดแจ้งของ Dependency ของ 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 (Id4281, b/150802561) - แก้ไข
bindToLifecycle
เพื่อให้แก้ไข UseCase ต่อเมื่อเชื่อมโยงสําเร็จเท่านั้น ก่อนหน้านี้เมื่อเรียกใช้bindToLifecycle
เพื่อคํานวณความละเอียด ระบบจะอัปเดต UseCase ตอนนี้ไม่จําเป็นต้องอัปเดต UseCase เพื่อทําการคํานวณอีกต่อไป (I78d9e) - แก้ไขปัญหาที่เซสชันการจับภาพของกรณีการใช้งาน
Preview
ไม่ได้รับการอัปเดตเมื่อพื้นผิวตัวอย่างเปลี่ยนไปหลังจากเรียก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 โดยการคง Flag ที่กำหนดผู้ให้บริการ
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 โดยการคง Flag ที่กำหนดผู้ให้บริการ
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
เครื่องโดยทำให้มั่นใจว่ากล้อง 2 จะเก็บSurface
ไว้ตามระยะเวลาที่ใช้งานเท่านั้น (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) - ตอนนี้อาร์กิวเมนต์
ImageCaptureException
รายการเดียวได้เข้ามาแทนที่อาร์กิวเมนต์ImageCapture.OnImageSavedCallback.onError()
และImageCapture.OnImageCapturedCallback.onError()
ก่อนหน้านี้แล้ว ซึ่งยังคงมีข้อมูลทั้งหมดที่ส่งก่อนหน้านี้ - ระบบได้นำอาร์กิวเมนต์ไฟล์ที่ส่งผ่านใน
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 สําหรับ API ของโฟกัสและการวัดแสงเกี่ยวกับ Flag
MeteringMode
และ 3A รวมถึงการใช้พารามิเตอร์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-Core เวอร์ชัน 1.0.0-alpha08
18 ธันวาคม 2019
androidx.camera:camera-core:1.0.0-alpha08
ได้รับการปล่อยแล้ว เวอร์ชัน 1.0.0-alpha08 มีการคอมมิตเหล่านี้
ปัญหาที่ทราบ
- แอปที่ใช้
PreviewView
หรือCameraView
อาจมีตัวอย่างสัดส่วนภาพที่ไม่ถูกต้อง ซึ่งจะเกิดขึ้นหลังจากที่หยุดชั่วคราวหรือเล่นต่อในอุปกรณ์ FULL บางรุ่น เช่น Pixel2
การแก้ไขข้อบกพร่อง
- อัปเดตเอกสารประกอบสำหรับ
FocusMeteringAction
และCameraControl
- ติดตั้งใช้งาน
TorchControl
สําหรับenableTorch()
และgetTorchState()
แล้ว
การเปลี่ยนแปลง API
- ซ่อน IntDef และย้ายค่าคงที่ 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 ดูรายละเอียดเพิ่มเติมเกี่ยวกับวิธีใช้สิ่งนี้ในการเริ่มต้นได้ที่ส่วนกล้องหลักของบันทึกประจำรุ่น- ตอนนี้เราได้ทำเครื่องหมายฟังก์ชันการทำงานร่วมกันของ camera2 ว่าเป็นแบบทดลองและย้ายไปยังแพ็กเกจแยกต่างหากแล้ว
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()
ซึ่งจะแสดงผลลัพธ์เป็น Future ที่ฟังได้ ซึ่งจะให้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); }
คุณสามารถเพิ่ม Listener ลงใน
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" ของ Use Case ออก แต่ให้สร้าง Use Case โดยตรงโดยตั้งค่าตัวเลือกในเครื่องมือสร้าง Use Case แต่ละรายการ เช่น
preview = Preview.Builder().setTargetAspectRatio(AspectRatio.RATIO_16_9).build()
เราได้อัปเดต Use Case ของตัวอย่างเพลงให้ยอมรับแพลตฟอร์มที่สร้างขึ้นและจัดการโดยแอปพลิเคชันเพื่อให้เป็นไปตามแนวทางปฏิบัติแนะนำของ Android เราขอแนะนําอย่างยิ่งให้ใช้คลาสมุมมอง
PreviewView
ที่ให้มากับแพ็กเกจมุมมองกล้องpreview.setPreviewSurfaceProvider(previewView.previewSurfaceProvider)
ดูเอกสารประกอบเกี่ยวกับการแนบแพลตฟอร์มที่จัดการโดยแอป ในกรณีเหล่านี้ แอปจะจัดการวงจรการใช้งานของแพลตฟอร์ม
สำคัญ: การใช้งานเมธอด
ImageAnalysis
Analyzer ต้องเรียกimage.close()
ในรูปภาพที่รับเมื่อใช้เสร็จแล้ว ไม่เช่นนั้น คุณอาจรับรูปภาพใหม่หรือกล้องอาจหยุดทำงาน ขึ้นอยู่กับการตั้งค่าแรงกดดันกลับ โปรดดูรายละเอียดในเอกสารอ้างอิงเปลี่ยน
ImageAnalysis ImageReaderMode
เป็นกลยุทธ์แรงดันย้อนกลับintdef
แล้วมีการทำเครื่องหมาย
ImageProxy.getImage()
ว่าเป็นการทดสอบ แอปพลิเคชันควรกำกับเนื้อหาการใช้งาน เช่น ผ่าน@androidx.camera.core.ExperimentalGetImage
นำข้อกำหนดคำอธิบายประกอบ
UIThread
สำหรับAnalyzer
ออกแล้วเพิ่มฟังก์ชัน
ImageAnalysis.clearAnalyzer()
เพื่อนำเครื่องมือวิเคราะห์ออกเปลี่ยนชื่อ Listeners ที่มีเมธอดมากกว่า 1 รายการเป็น Callback แล้ว
ImageCapture.OnImageCapturedListener
เปลี่ยนชื่อเป็นImageCapture.OnImageCapturedCallback
แล้วImageCapture.OnImageSavedListener
เปลี่ยนชื่อเป็นImageCapture.OnImageSavedCallback
แล้วVideoCapture.OnVideoSavedListener
เปลี่ยนชื่อเป็นVideoCapture.OnVideoSavedCallback
แล้ว
เปลี่ยน Enums เป็น IntDef แล้ว
เราได้เพิ่มตัวควบคุมการซูมต่อไปนี้
CameraControl.setLinearZoom()
CameraControl.setZoomRatio()
CameraInfo.getLinearZoom()
CameraInfo.getMaxZoomRatio()
CameraInfo.getZoomRatio()
เพิ่ม
CameraInfo.hasFlashUnit()
เพื่อระบุว่ามีฮาร์ดแวร์แฟลช/ไฟฉายหรือไม่นำ
CameraInfo.isFlashAvailable()
ออกแล้ว ไฟฉายจะลบล้างฟังก์ชันการทำงานของแฟลช ดูรายละเอียดเพิ่มเติมได้ในเอกสารอ้างอิงช่อง
ImageCapture.Metadata
ถูกแทนที่ด้วยตัวเข้าถึง get/set/isตอนนี้
startFocusMetering
และcancelFocusMetering
จะแสดงผลเป็นListenableFutures
ซึ่งแสดงถึงการดำเนินการแบบอะซิงโครนัสของการเรียกMeteringPoints
ทำงานเป็นแฮนเดิลสําหรับการวัดผลและผลิตโดยโรงงาน แอปควรใช้โรงงานที่มีอยู่แทนโรงงานที่กำหนดเอง
ปัญหาที่แก้ไขแล้ว
- แก้ปัญหาเมื่อถ่ายภาพเมื่อกลับมาทำงานต่อ (หลังจากการหยุดชั่วคราวก่อนหน้านี้มีการถ่ายภาพที่รอดำเนินการให้เสร็จสมบูรณ์)
- ปัญหาที่ทราบ:
CameraControl.enableTorch()
ใช้งานได้ แต่ListenableFuture<Void>
ที่แสดงผลจะเป็นcomplete(success)
ในอนาคตโดยทันที แม้ว่าจะไม่มีหน่วยแฟลชก็ตาม เวอร์ชันในอนาคตจะแก้ไขลักษณะการทำงานนี้ให้เป็นลักษณะการทำงานสุดท้าย: เมื่อไม่มีหน่วยแฟลชenableTorch(true)
จะดำเนินการไม่สำเร็จทันที (จะไม่ส่งคำขอไปยังCaptureSession
) และTorchState
จะยังคงปิดอยู่ - ปัญหาที่ทราบ:
startFocusAndMetering
และcancelFocusAndMetering
เริ่มและยกเลิกการวัดแสงแบบโฟกัส แต่แสดงผลcompleted (success)
ในอนาคตทันที ซึ่งไม่ได้แสดงถึงลักษณะการทำงานที่บันทึกไว้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()
ไปยัง Use Case Config API แล้ว โดยจะแสดงสัดส่วนภาพเป้าหมายเอาต์พุตของ Use Case - มีการเปลี่ยนแปลงเมธอด
setTargetAspectRatio(Rational aspectRatio)
สำหรับ ImageCapture เป็นsetTargetAspectRatioCustom(Rational aspectRatio)
เมื่อตั้งค่าแล้ว เอาต์พุต ImageCapture จะครอบตัดตามนั้น
Executor API
- ฟังก์ชันต่อไปนี้ยอมรับพารามิเตอร์ตัวดำเนินการ ซึ่งช่วยให้แอปควบคุมตัวดำเนินการที่ฟังก์ชันจะทำงานได้
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 และการแก้ไขข้อบกพร่อง
- สัดส่วนภาพ: สําหรับแต่ละกรณีการใช้งาน แอปพลิเคชันควรเรียกใช้
setTargetResolution()
หรือsetTargetAspectRatio()
เพียงรายการเดียว การเรียกใช้ทั้ง 2 รายการในตัวสร้างเดียวกันจะแสดงข้อผิดพลาด- โดยทั่วไปแล้ว ขอแนะนำให้ใช้
setTargetAspectRatio()
โดยอิงตามการออกแบบ UI ของแอปพลิเคชัน การแก้ปัญหาที่เฉพาะเจาะจงจะขึ้นอยู่กับกรณีการใช้งาน ตัวอย่างเช่น การแสดงตัวอย่างมีความละเอียดใกล้เคียงกับหน้าจอ และการจับภาพจะทำให้มีภาพนิ่งที่มีความละเอียดสูง ดูข้อมูลเพิ่มเติมในตารางการแก้ปัญหาอัตโนมัติ - ใช้
setTargetResolution()
สำหรับกรณีที่เจาะจงมากขึ้น เช่น เมื่อต้องมีความละเอียดขั้นต่ำ (เพื่อบันทึกการคำนวณ) หรือความละเอียดสูงสุด (สำหรับรายละเอียดการประมวลผล)
- โดยทั่วไปแล้ว ขอแนะนำให้ใช้
- Executor API: นำการเรียก
setCallbackHandler()
ออกจาก API การกำหนดค่า Use Case แล้ว แต่แอปพลิเคชันสามารถตั้งค่าผู้ดำเนินการเป็นพารามิเตอร์ใน 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-กล้องถ่ายรูป2 และ 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: เปลี่ยนชื่อตัวแปรข้อผิดพลาดของ Use Case ดังนี้
ImageCapture.UseCaseError
เปลี่ยนชื่อเป็นImageCapture.ImageCaptureError
แล้วVideoCapture.UseCaseError
เปลี่ยนชื่อเป็นVideoCapture.VideoCaptureError
แล้ว
เพิ่ม
CameraControl
API กับ API แบบ Tap-to-Focus แล้วเพิ่ม 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 สําหรับ Factories ของจุดวัดผลที่จะช่วยแปลพิกัดการแตะเป็นพิกัดเซ็นเซอร์ตามคลาสมุมมอง
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 และ Get ที่เกี่ยวข้องอาจแสดงผลเป็น Null
แก้ไขปัญหาเมื่อทดสอบบนโปรแกรมจำลองที่ไม่รองรับการตั้งค่า AF/AE/AWB
แก้ไขข้อบกพร่องข้อขัดข้องเกี่ยวกับการหมุนขณะวิเคราะห์รูปภาพ
แก้ไขข้อบกพร่องที่การแสดงตัวอย่างปรากฏเป็นสีดำเมื่อเริ่มต้น (ไม่มีข้อมูลกล้อง) หลังจากการหมุนหรือสลับระหว่างกล้องหน้าและกล้องหลัง
นำการทดสอบสำหรับการวิเคราะห์รูปภาพหลายรายการพร้อมกันออก แอปพลิเคชันควรแนบกรณีการใช้งานการวิเคราะห์รูปภาพเพียงรายการเดียวเพื่อให้มั่นใจว่าเข้ากันได้
เพิ่มการทดสอบ Robolectric เบื้องต้นสำหรับกล้องจำลองในชุดทดสอบกล้อง (อยู่ระหว่างดำเนินการ)
นำการทดสอบ 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 จะลดความละเอียด/สัดส่วนภาพตามความสามารถของอุปกรณ์เพื่อเริ่มเซสชันการจับภาพเป็นเป้าหมายแรก และอาจไม่ดำเนินการตามคำขอที่แน่นอน ซึ่งอาจเกิดจากสาเหตุต่อไปนี้
- อุปกรณ์ที่ไม่รองรับความละเอียดที่ขอ
- ปัญหาความเข้ากันได้ เช่น ในอุปกรณ์รุ่นเดิมที่ต้องใช้ความละเอียดบางระดับเพื่อให้ทำงานได้อย่างถูกต้อง
- ในอุปกรณ์บางรุ่น รูปแบบบางอย่างจะใช้ได้เฉพาะในอัตราส่วนภาพบางอัตราเท่านั้น
- ค่ากำหนดสำหรับ "mod16 ที่ใกล้ที่สุด" สำหรับการเข้ารหัส JPEG หรือวิดีโอ ดู
CameraCharacteristics#SCALER_STREAM_CONFIGURATION_MAP
แม้ว่า CameraX จะสร้างและจัดการเซสชัน แต่คุณก็ควรตรวจสอบขนาดรูปภาพที่แสดงผลในเอาต์พุต Use Case ในโค้ดของคุณเสมอ และทำการปรับแต่งให้เหมาะสม
เราได้ทําการเปลี่ยนแปลงบางอย่างเกี่ยวกับการตั้งค่าความละเอียดและสัดส่วนภาพ โดยมีจุดประสงค์เพื่อทําให้ API ชัดเจนยิ่งขึ้น ดังนี้
- ตอนนี้ระบบจะถือว่า Use Case ของตัวอย่างเพลงมีสัดส่วนการแสดงผลเริ่มต้นเป็น 4:3 เมื่อไม่ได้ตั้งค่าไว้
- เมื่อ CameraX พิจารณาการเปลี่ยนแปลงความละเอียดและอัตราส่วนการแสดงผลที่ขอภายในตามความสามารถของอุปกรณ์ ระบบจะพยายามรักษาสัดส่วนการแสดงผลเดิมไว้ก่อน (ตามที่ระบุไว้ในการเรียกใช้
setTargetAspectRatio
หรือsetTargetResolution
) - ระบบจะถือว่าความละเอียดเวอร์ชัน "Nearest mod16" เป็นสัดส่วนภาพเดียวกัน
โหมดไม่บล็อก ImageAnalysis
- ลักษณะการทํางานของ
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
- แก้ไขข้อบกพร่องที่อุปกรณ์รุ่นเดิมกำหนดให้ใช้สัดส่วนภาพที่เจาะจงเป็นความละเอียด JPEG สูงสุด
- แก้ไขปัญหาเมื่อแอปทำงานอยู่เบื้องหลังขณะที่กล้องเปิดอยู่
- แก้ไขปัญหาใน API < 25 ซึ่งนำข้อผิดพลาด
checkAndUpdateEglState: invalid current EGLDisplay
ออก - แก้ปัญหาเมื่อยกเลิกการเชื่อมโยงตัวอย่างหลังจากเปิดใช้และเริ่มส่วนขยาย
- ตอนนี้ชิ้นงานบิลด์สำหรับมุมมองกล้องและส่วนขยายกล้องจะเผยแพร่เป็นเวอร์ชันอัลฟ่า
Camera-กล้องถ่ายรูป2 และ 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 สำหรับ "target" ในคําเรียกการกําหนดค่า setTarget
Camera-Core
- แก้ไขข้อขัดข้องของอินพุต/เอาต์พุตที่ยังไม่ได้กําหนดค่าเมื่อเปิด/ปิดหรือเชื่อมโยง/ยกเลิกการเชื่อมโยงอย่างรวดเร็ว
- เปลี่ยนไปใช้การใช้งาน Futures เวอร์ชันใหม่
- ทดสอบการแก้ไขเพื่อการทดสอบที่มีประสิทธิภาพมากขึ้น
- ตอนนี้การทดสอบการผสานรวมหลักจะแสดงเวลาจับภาพสำหรับรูปภาพ
- คลาสความเข้ากันได้ภายในที่ได้รับการพัฒนาสำหรับโอเปอเรเตอร์
- การทดสอบเวลาในการจับภาพแอปจะรอให้ภาพก่อนหน้าเสร็จสมบูรณ์และปรับปรุงความเสถียร
ส่วนขยาย
- เพิ่มการตรวจสอบเวอร์ชัน
- การครอบคลุมการทดสอบเพิ่มเติม - การติดต่อกลับเหตุการณ์ส่วนขยาย
- การปรับปรุงรูปภาพและข้อมูลเมตาที่เกี่ยวข้องภายใน
- การแก้ไขการเปลี่ยนโหมดในแอปทดสอบ
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 A Banded ในอุปกรณ์บางเครื่องเมื่อถ่ายภาพอย่างรวดเร็ว ขณะยกเลิกการเชื่อมโยงและเชื่อมโยง Use Case อีกครั้งอย่างรวดเร็ว
- แก้ไขปัญหาภายในเพื่อให้การอัปเดตคำขอบันทึกส่งผลต่อแพลตฟอร์มทั้งหมดอย่างสอดคล้องกัน
- การปรับปรุงความเสถียรเมื่อเริ่มใช้งาน Use Case อีกครั้งในอินสแตนซ์แอปใหม่
- การเปลี่ยนแปลงสถาปัตยกรรมภายในเพื่อเตรียมพร้อมสำหรับการรองรับผู้ดำเนินการใน 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 ที่ไม่ให้ค่าออบเจ็กต์แอปพลิเคชันจาก
Context.getApplicationContext()
(I3d3c9, b/160817073)
วงจรการใช้งานกล้อง เวอร์ชัน 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
เป็น 0 จะทำให้เกิดข้อยกเว้น การดำเนินการนี้ป้องกันไม่ให้มีการเรียกข้อมูล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)
วงจรการใช้งานกล้องเวอร์ชัน 1.0.0-เบต้า02
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, ยกเลิกการเชื่อมโยง และยกเลิกการเชื่อมโยงวิธีการแล้ว (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 มีการคอมมิตเหล่านี้
การเปลี่ยนแปลงทรัพยากร Dependency
- อัปเดตเพื่อใช้
androidx.camera:camera-core:1.0.0-alpha08
เวอร์ชันวงจรการใช้งานกล้อง 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
Camera-Extensions และ Camera-View เวอร์ชัน 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)- เปลี่ยนชื่อ API
ExtensionsManager#getInstance
เป็นgetInstanceAsync
เนื่องจากแสดงผลListenableFuture
ส่วนต่อท้าย Async ของชื่อฟังก์ชันแสดงได้อย่างชัดเจนว่าฟังก์ชันนี้เป็นฟังก์ชันที่ทำงานแบบแอสซิงค์ (I279d2) - นำพารามิเตอร์ความละเอียดออกจาก
ExtensionsManager#getEstimatedCaptureLatencyRange
API เนื่องจากผู้ใช้ไม่ทราบขนาดที่รองรับสำหรับ Use Case ของImageCapture
และไม่สามารถแยกแยะได้ว่าข้อมูลเวลาในการตอบสนองที่แสดงผลนั้นสำหรับขนาดเอาต์พุตการจับภาพสูงสุดหรือพารามิเตอร์ความละเอียดอินพุต (I74bb2) - ย้ายพารามิเตอร์
CameraProvider
ของฟังก์ชันExtensionsManager
รายการไปยังgetInstance()
API เพื่อให้ผู้ใช้ไม่ต้องป้อนพารามิเตอร์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 ลงใน Public 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
- เพิ่มคำอธิบายประกอบ @requiredsApi(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: เปลี่ยน Listener การตั้งค่า/ล้างเป็นเพิ่ม/นำออก/นำออกทั้งหมด นำรูปแบบ 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 และ ExtensionsManager API ที่เกี่ยวข้องซึ่งเลิกใช้งานแล้วออก (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
- เลื่อนระดับวิวพอร์ต API จากการทดลองแล้ว นำคำอธิบายประกอบเวอร์ชันทดลองของ API ออก (I717ea)
- เปลี่ยนชื่อ
CoordinateTransform#getTransform
เป็นCoordinateTransform#transform
และอัปเดต JavaDoc (I864ae)
การแก้ไขข้อบกพร่อง
- แก้ไขปัญหาการยืดโหมด
PreviewView PERFORMANCE
เมื่อใช้ร่วมกับ UI ของ Compose (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 ได้แก่ Getter/Setter สำหรับสัดส่วนภาพเป้าหมาย ความละเอียดเป้าหมาย โหมดการจับภาพ CameraControl และตัวดำเนินการที่กำหนดเอง (Iea8f2)
- เพิ่มคลาส RotationReceiver ที่จะรับการเปลี่ยนแปลงการหมุนของ Surface ซึ่งสามารถใช้เพื่อตั้งค่าการหมุนเป้าหมายเมื่ออุปกรณ์อยู่ในโหมดแนวตั้ง/แนวนอนแบบคงที่ (Ib278f)
- เปิดเผย API สาธารณะ getประมาณCaptureLatencyRange ใหม่ในคลาส ExtensionsManager (I6a8ec)
- ExtensionsErrorListener ที่เลิกใช้งานแล้ว ปัจจุบันอินเทอร์เฟซนี้ใช้เพื่อตรวจสอบว่า Preview หรือ ImageCapture ขาดหายไปหรือไม่เมื่อเปิดใช้โหมดส่วนขยาย CameraX จะเพิ่มการแสดงตัวอย่างหรือ ImageCapture เพิ่มเติมโดยอัตโนมัติเพื่อให้ฟังก์ชันส่วนขยายทำงานได้อย่างราบรื่น หลังจากนั้น จะไม่มีการรายงานข้อผิดพลาดผ่านอินเทอร์เฟซนี้ (I47d9e)
- เปิดตัว ExtensionsManager getInstance, isExtensionAvailable และ getExtensionEnabledCameraSelector API สาธารณะใหม่ รวมถึงเลิกใช้งานคลาส
<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)
- เพิ่มยูทิลิตีที่เปลี่ยนพิกัดระหว่างกรณีการใช้งาน ตัวอย่างการใช้งาน: การเปลี่ยนรูปแบบพิกัดที่ตรวจพบใน Use Case ของ 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)
- แก้ไขการแสดงตัวอย่างที่ยืดของ Samsung A3 ใน PreviewView (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
- เพิ่ม getter ของ 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 มีคอมมิตเหล่านี้
เผยแพร่เพื่อรองรับรายการอื่นๆ ในคลังกล้อง
Camera-Extensions & Camera-View เวอร์ชัน 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)
Camera-Extensions เวอร์ชัน 1.0.0-alpha18
14 ตุลาคม 2020
androidx.camera:camera-extensions:1.0.0-alpha18
ได้รับการปล่อยแล้ว เวอร์ชัน 1.0.0-alpha18 มีคอมมิตเหล่านี้
แก้ไขข้อบกพร่อง
- ปรับปรุงเวลาในการตอบสนองของการสร้างค่าเริ่มต้นและ bindToLifecycle (I61dc5) ของ CameraX
<UseCase>.getTargetRotation()
จะแสดงผลSurface.ROTATION_0
หากมีการเรียกใช้ก่อนที่จะแนบกับอินสแตนซ์กล้องถ่ายรูป เว้นแต่จะมีการตั้งค่าtargetRotation ใน Builder หรือ UseCase (I80fcd)
มุมมองกล้องเวอร์ชัน 1.0.0-alpha18
14 ตุลาคม 2020
ปล่อย androidx.camera:camera-view:1.0.0-alpha18
แล้ว เวอร์ชัน 1.0.0-alpha18 มีการคอมมิตเหล่านี้
กำลังเปิดตัวเพื่อรองรับอาร์ติแฟกต์อื่นๆ ในไลบรารีของกล้อง
Camera-Extensions เวอร์ชัน 1.0.0-alpha17
23 กันยายน 2020
androidx.camera:camera-extensions:1.0.0-alpha17
ได้รับการปล่อยแล้ว เวอร์ชัน 1.0.0-alpha17 มีการคอมมิตเหล่านี้
แก้ไขข้อบกพร่อง
- รุ่นที่รองรับ Camera-Core 1.0.0-beta10
มุมมองกล้องเวอร์ชัน 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)
มุมมองกล้องเวอร์ชัน 1.0.0-alpha16
16 กันยายน 2020
androidx.camera:camera-view:1.0.0-alpha16
ได้รับการปล่อยแล้ว เวอร์ชัน 1.0.0-alpha16 มีการคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- นำ
PreviewView#setDeviceRotationForRemoteDisplayMode()
และPreviewView#getDeviceRotationForRemoteDisplayMode()
ออกแล้ว 2 วิธีนี้มีไว้สำหรับการปรับแต่งการหมุนของตัวอย่างเพลงเมื่อการหมุนที่ต้องการไม่ใช่การหมุนของจอแสดงผล เช่น จอแสดงผลระยะไกล หากต้องการใช้การหมุนตัวอย่างแบบไม่แสดงผลตอนนี้ ให้ตั้งค่าการหมุนที่ต้องการด้วยPreview#setTargetRotation()
และPreviewView#getViewPort(targetRotation)
ที่เพิ่มเข้ามาใหม่ (Ib62cc) - เปลี่ยนชื่อ
createSurfaceProvider()
เป็นgetSurfaceProvider()
แล้ว เมธอดนี้จะแสดงผลอินสแตนซ์ Preview.SurfaceProvider เดียวกันเสมอ (Iff83c)
แก้ไขข้อบกพร่อง
- บังคับ PreviewView ให้ใช้ TextureView หากเปิดใช้เอฟเฟกต์ส่วนขยายและการติดตั้งใช้งานไลบรารีของผู้ให้บริการต้องดำเนินการพิเศษบนพื้นผิวเอาต์พุต (I0c3cc)
- อนุญาตให้หมุนเป้าหมายแบบกำหนดเองสำหรับการแสดงตัวอย่าง ระบบจะคํานวณข้อมูลการเปลี่ยนรูปแบบและแสดงผลต่อผู้ใช้ทันทีผ่าน
TranformationInfoListener
callback ใหม่ (I21470)
ปัญหาที่ทราบ
- ใน PreviewView ระบบจะไม่เรียกใช้
OnClickListener#onClick()
เมื่อผู้ใช้ปลายทางคลิก PreviewView PreviewView#onTouchEvent() ใช้เหตุการณ์การสัมผัสโดยไม่ได้ตั้งใจ ปัญหานี้จะได้รับการแก้ไขในรุ่นถัดไป - MeteringPoint ที่ได้มาจาก
PreviewView#getMeteringPointFactory()
อาจไม่ถูกต้องหากใช้ ViewPort กับ PreviewView
Camera-Extensions เวอร์ชัน 1.0.0-alpha15
19 สิงหาคม 2020
androidx.camera:camera-extensions:1.0.0-alpha15
ได้รับการปล่อยแล้ว เวอร์ชัน 1.0.0-alpha15 มีการคอมมิตเหล่านี้
การแก้ไขข้อบกพร่อง
- ตอนนี้เมธอด
ExtensionsManager.init()
จะใช้บริบทเป็นพารามิเตอร์แทนที่จะไม่มีอาร์กิวเมนต์ 0 รายการ (Ife754) การเริ่มต้นไม่ควรขัดข้องอีกต่อไปเมื่อใช้ Context ที่ไม่ให้ออบเจ็กต์แอปพลิเคชันจาก
Context.getApplicationContext()
(I3d3c9, b/160817073)มุมมองกล้องเวอร์ชัน 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) - สำหรับการจับภาพ ให้เขียนทับ Flag พลิกแนวนอนในข้อมูลเมตาตามทิศทางของกล้อง (I28499)
ส่วนขยายกล้องถ่ายรูปเวอร์ชัน 1.0.0-alpha14
22 กรกฎาคม 2020
androidx.camera:camera-extensions:1.0.0-alpha14
ได้รับการปล่อยแล้ว เวอร์ชัน 1.0.0-alpha14 มีการคอมมิตเหล่านี้
มุมมองกล้องเวอร์ชัน 1.0.0-alpha14
22 กรกฎาคม 2020
androidx.camera:camera-view:1.0.0-alpha14
ได้รับการปล่อยแล้ว เวอร์ชัน 1.0.0-alpha14 มีการคอมมิตเหล่านี้
Camera-Extensions เวอร์ชัน 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 ไม่นานหลังจากที่มีการเชื่อมโยง วงจรการเชื่อมโยงที่อยู่ในสถานะ "ถูกทำลาย" จะไม่ได้พยายามเปิดกล้อง (I7c2b8)
- ตอนนี้ StreamState ของ PreviewView พร้อมใช้งานผ่าน CameraView.getPreviewStreamState() แล้ว (I21a2b)
Camera-Extensions เวอร์ชัน 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)
Camera-Extensions เวอร์ชัน 1.0.0-alpha11
27 พฤษภาคม 2020
ปล่อย androidx.camera:camera-extensions:1.0.0-alpha11
แล้ว เวอร์ชัน 1.0.0-alpha11 มีการคอมมิตเหล่านี้
มุมมองกล้องเวอร์ชัน 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)
มุมมองกล้อง เวอร์ชัน 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
ออกแล้วปัดกลับใน 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)
Camera-Extensions เวอร์ชัน 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)
Camera-Extensions เวอร์ชัน 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
มุมมองกล้องเวอร์ชัน 1.0.0-alpha09
1 เมษายน 2020
เผยแพร่ androidx.camera:camera-view:1.0.0-alpha09
แล้ว เวอร์ชัน 1.0.0-alpha09 มีการคอมมิตเหล่านี้
ปัญหาที่ทราบ
- การใช้
ImplementationMode.SURFACE_VIEW
กับPreviewView
อาจทํางานไม่ถูกต้องในอุปกรณ์บางรุ่น เนื่องจาก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
ภายใน ตัวอย่างโค้ดต่อไปนี้แสดงวิธีที่ Use Case ของตัวอย่างเคยใช้กับ 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)
Camera-Extensions เวอร์ชัน 1.0.0-alpha08
26 กุมภาพันธ์ 2020
ปล่อย androidx.camera:camera-extensions:1.0.0-alpha08
แล้ว เวอร์ชัน 1.0.0-alpha08 มีการคอมมิตเหล่านี้
มุมมองกล้องเวอร์ชัน 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 โดยการคง Flag ที่กำหนดผู้ให้บริการ
CameraXConfig
เริ่มต้นไว้ (I2d6c1)
Camera-Extensions เวอร์ชัน 1.0.0-alpha07
10 กุมภาพันธ์ 2020
androidx.camera:camera-extensions:1.0.0-alpha07
ได้รับการปล่อยแล้ว เวอร์ชัน 1.0.0-alpha07 มีการคอมมิตเหล่านี้
การแก้ไขข้อบกพร่อง
- ตอนนี้อาร์กิวเมนต์
ImageCaptureException
รายการเดียวได้เข้ามาแทนที่อาร์กิวเมนต์ImageCapture.OnImageSavedCallback.onError()
และImageCapture.OnImageCapturedCallback.onError()
ก่อนหน้านี้แล้ว ซึ่งยังคงมีข้อมูลทั้งหมดที่ส่งก่อนหน้านี้ - ระบบได้นำอาร์กิวเมนต์ไฟล์ที่ส่งผ่านใน
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
เป็นตัวอย่าง Canonical (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)
Camera-Extensions เวอร์ชัน 1.0.0-alpha06
22 มกราคม 2020
androidx.camera:camera-extensions:1.0.0-alpha06
ได้รับการปล่อยแล้ว เวอร์ชัน 1.0.0-alpha06 มีคอมมิตเหล่านี้
อัปเดต
- การแก้ไขและการอัปเดตต่างๆ เพื่อรองรับการเปลี่ยนแปลง Camera Core และ Camera2
มุมมองกล้องเวอร์ชัน 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 มีคอมมิตเหล่านี้
แก้ไขข้อบกพร่อง
- อัปเดตเพื่อให้ตรงกับ Camera Core API ภายใน
มุมมองกล้องเวอร์ชัน 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 ของกล้อง
Camera-Extensions เวอร์ชัน 1.0.0-alpha04
4 ธันวาคม 2019
androidx.camera:camera-extensions:1.0.0-alpha04
ได้รับการปล่อยแล้ว เวอร์ชัน 1.0.0-alpha04 ของ camera-extensions มีคอมมิตเหล่านี้
การเปลี่ยนแปลง API
ตอนนี้การตรวจสอบความพร้อมใช้งานและการเปิดใช้ส่วนขยายจะใช้
CameraSelector
เป็นพารามิเตอร์อินพุต โดยต้องเป็นCameraSelector
เดียวกับที่ใช้สำหรับเชื่อมโยง Use Caseval 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() )
มุมมองกล้องเวอร์ชัน 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
เพื่อให้เชื่อมต่อ Use Case ของตัวอย่างได้อย่างง่ายดายpreview.setPreviewSurfaceProvider(previewView.previewSurfaceProvider)
ตอนนี้ "
ZoomLevel
" เปลี่ยนเป็น "ZoomRatio
" ในการตั้งชื่อ APIพารามิเตอร์ของเมธอดบางรายการมีการเปลี่ยนแปลงความสามารถในการเป็น Null
Camera-Extensions และ Camera-View เวอร์ชัน 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
Camera-Extensions และ Camera-View เวอร์ชัน 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) และตรวจสอบว่าฟีเจอร์แสดงตัวอย่างพร้อมใช้งาน
Camera-Extensions และ Camera-View เวอร์ชัน 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
- คลังใหม่สำหรับส่วนขยายกล้องในอนาคตเพื่อเข้าถึงเอฟเฟกต์ในอุปกรณ์ที่รองรับ คลังนี้ยังอยู่ระหว่างการพัฒนา
- คลาสมุมมองกล้องใหม่ คลังนี้ยังอยู่ระหว่างการพัฒนา