กล้องถ่ายรูป X

CameraX เป็นไลบรารีที่เพิ่มเข้ามาใน Jetpack ซึ่งช่วยให้คุณเพิ่มความสามารถของกล้องลงในแอปได้ง่ายขึ้น ไลบรารีนี้มีการแก้ไขและวิธีแก้ปัญหาต่างๆ ที่เข้ากันได้เพื่อช่วยให้ผู้พัฒนาแอปได้รับประสบการณ์การใช้งานที่สอดคล้องกันในอุปกรณ์ต่างๆ

ตารางนี้จะแสดงรายการอาร์ติแฟกต์ทั้งหมดในกลุ่ม 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
คลังนี้ได้รับการอัปเดตล่าสุดเมื่อวันที่ 30 ตุลาคม 2024

การทดสอบอุปกรณ์

เราทดสอบ 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 รายการในอุปกรณ์ระดับเดิม อัตราเฟรมเป้าหมายที่ตั้งค่าผ่าน API setTargetFrameRate หรือ 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 ที่ตรงกับ UseCase ImageAnalysis เพื่อแก้ปัญหานี้ (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

เวอร์ชัน 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 Case ImageAnalysis ร่วมกับพรีวิวและ ImageCapture ได้หรือไม่เมื่อเปิดใช้ส่วนขยาย (I1bc63)
  • คลาส VideoCapabilities ใหม่ที่ได้รับจาก Recorder สามารถใช้เพื่อค้นหาช่วงไดนามิกและคุณภาพที่รองรับสำหรับการบันทึกวิดีโอในอุปกรณ์ เรากําลังเลิกใช้งานเมธอด getSupportedQualities() และ isQualitySupported() ของ QualitySelector โปรดใช้เมธอด getSupportedQualities() และ isQualitySupported() ของ VideoCapabilities แทน (I04014)
  • CameraController#setVideoCaptureTargetQuality() เปลี่ยนชื่อเป็น setVideoCaptureQualitySelector และใช้อาร์กิวเมนต์ QualitySelector ซึ่งทำให้มีความยืดหยุ่นมากขึ้นสำหรับการตั้งค่าคุณภาพวิดีโอ เปลี่ยน CameraController#getVideoCaptureTargetQuality() เป็น getVideoCaptureQualitySelector แล้ว (I520ed)
  • นำคำอธิบายประกอบเวอร์ชันทดลองสำหรับฟีเจอร์วิดีโอออก ฟีเจอร์วิดีโอทำงานได้อย่างเสถียรแล้ว (I1a113)

การแก้ไขข้อบกพร่อง

  • ใช้ไฟฉายเป็นแฟลชใน Samsung SM-A320 เพื่อปรับปรุงความเร็วและคุณภาพของภาพที่ถ่ายในสภาวะแสงน้อย (I6a022, b/286190938)
  • เพิ่มการรองรับรูปแบบ ImageFormat.JPEG สำหรับ ImageProxy.toBitmap() หากถอดรหัสอาร์เรย์ไบต์ JPEG ไม่ได้ ระบบจะแสดง UnsupportedOperationException (I81958, b/282057603)

เวอร์ชัน 1.3.0-alpha07

24 พฤษภาคม 2023

ปล่อย androidx.camera:camera-*:1.3.0-alpha07 แล้ว เวอร์ชัน 1.3.0-alpha07 มีการคอมมิตเหล่านี้

ฟีเจอร์ใหม่

  • VideoCapture.Builder# setTargetFrameRate(Range) API ใหม่ช่วยให้บันทึกวิดีโอด้วยอัตราเฟรมอื่นๆ นอกเหนือจากอัตราเฟรมเริ่มต้นของอุปกรณ์ได้ คุณสามารถค้นหาอัตราเฟรมที่ใช้ได้สำหรับไฟล์บันทึกเสียงผ่าน CameraInfo#getSupportedFrameRates() API ใหม่

การเปลี่ยนแปลง API

  • เปลี่ยนชื่อค่าคงที่ ResolutionSelector#HIGH_RESOLUTION_FLAG_OFF/ON เป็น ALLOWED_RESOLUTIONS_NORMAL/SLOW และเปลี่ยนชื่อฟังก์ชัน setHighResolutionEnabledFlag ของบิลเดอร์เป็น setAllowedResolutionMode (Iae817)
  • ตอนนี้ CameraInfo#getSupportedFrameRateRanges() จะแสดงผล Set แทนที่จะเป็น List เพื่อแสดงว่าช่วงไม่มีการจัดเรียง (I02f43)
  • เพิ่มโปรแกรมรับฟังข้อผิดพลาดใน CameraEffect เพื่อจัดการข้อผิดพลาดที่กู้คืนไม่ได้ (Ice471)
  • เพิ่มเครื่องมือสร้างสาธารณะใน ResolutionInfo เพื่อการทดสอบที่ดียิ่งขึ้น (If6d1c)
  • มี API UseCase.snapToSurfaceRotation(int) ไว้ใช้แทน setTargetRotationDegrees และเลิกใช้งาน API ImageAnalysis.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 สาธารณะสำหรับกล้องคู่ที่ใช้งานพร้อมกัน รวมถึง
    1. List<List<CameraInfo>> getAvailableConcurrentCameraInfos()
    2. ConcurrentCamera bindToLifecycle(@NonNull ConcurrentCameraConfig concurrentCameraConfig)
    3. 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

ปัญหาที่ทราบ

เวอร์ชัน 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-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-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

แก้ไขข้อบกพร่อง

  • กำหนดให้ใช้อาร์ติแฟกต์ 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 มีการคอมมิตเหล่านี้

แก้ไขข้อบกพร่อง

มุมมองกล้องเวอร์ชัน 1.0.0-alpha17

23 กันยายน 2020

ปล่อย androidx.camera:camera-view:1.0.0-alpha17 แล้ว เวอร์ชัน 1.0.0-alpha17 มีการคอมมิตเหล่านี้

การแก้ไขข้อบกพร่อง

ส่วนขยายกล้องถ่ายรูปเวอร์ชัน 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 Case

    val cameraSelector = CameraSelector.DEFAULT_BACK_CAMERA
    val builder = ImageCapture.Builder()
    val bokehImageCaptureExtender = BokehImageCaptureExtender.create(builder)
    if (bokehImageCaptureExtender.isExtensionAvailable(cameraSelector)) {
        bokehImageCaptureExtender.enableExtension(cameraSelector)
    }
    val imageCapture = builder.build()
    mCameraProvider?.bindToLifecycle(this, cameraSelector, imageCapture)
    
  • คุณต้องเริ่มต้นส่วนขยายก่อนจึงจะใช้คลังส่วนขยายได้

    val availability = ExtensionsManager.init()
    Futures.addCallback<ExtensionsManager.ExtensionsAvailability>(
       availability,
       object : FutureCallback<ExtensionsManager.ExtensionsAvailability> {
           override fun onSuccess(availability: ExtensionsManager.ExtensionsAvailability?) {
               // Ready to make extensions calls
           }
           override fun onFailure(throwable: Throwable) {
               // Extensions could not be initialized
           }
       },
       Executors.newSingleThreadExecutor()
    )
    

มุมมองกล้องเวอร์ชัน 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

  • คลังใหม่สำหรับส่วนขยายกล้องในอนาคตเพื่อเข้าถึงเอฟเฟกต์ในอุปกรณ์ที่รองรับ คลังนี้ยังอยู่ระหว่างการพัฒนา
  • คลาสมุมมองกล้องใหม่ คลังนี้ยังอยู่ระหว่างการพัฒนา