CameraX

‫CameraX היא תוספת ל-Jetpack שמאפשרת להוסיף בקלות יכולות מצלמה לאפליקציה. הספרייה מספקת מספר תיקוני תאימות ופתרונות עקיפים כדי לעזור למפתחים ליהנות מחוויה עקבית במכשירים רבים.

בטבלה הזו מפורטים כל פריטי המידע בקבוצה androidx.camera.

פריט מידע שנוצר בתהליך פיתוח (Artifact) גרסה יציבה גרסה מועמדת להפצה גרסת בטא גרסת אלפא
camera-camera2 1.6.2 ‎1.7.0-rc01 - -
camera-core 1.6.2 ‎1.7.0-rc01 - -
camera-compose 1.6.2 ‎1.7.0-rc01 - -
camera-effects 1.6.2 ‎1.7.0-rc01 - -
camera-extensions 1.6.2 ‎1.7.0-rc01 - -
camera-feature-combination-query - - - ‎1.5.0-alpha06
camera-feature-combination-query-play-services - - - ‎1.5.0-alpha06
camera-lifecycle 1.6.2 ‎1.7.0-rc01 - -
camera-mlkit-vision 1.6.2 ‎1.7.0-rc01 - -
camera-view 1.6.2 ‎1.7.0-rc01 - -
camera-viewfinder - - ‎1.3.0-beta02 ‎1.4.0-alpha07
camera-video 1.6.2 ‎1.7.0-rc01 - -
הספרייה הזו עודכנה לאחרונה ב-21 באוקטובר 2026

בדיקת מכשירים

אנחנו בודקים את CameraX במכשירים רבים במעבדה שלנו. כדי לראות רשימה של המכשירים שנמצאים כרגע במעבדה, עיינו במכשירים שנבדקו במעבדה של CameraX.

הצהרה על יחסי תלות

כדי להוסיף תלות ב-CameraX, צריך להוסיף לפרויקט את מאגר Google Maven. מידע נוסף זמין במאמר מאגר ה-Maven של Google.

אתם יכולים להוסיף את יחסי התלות של הארטיפקטים שאתם צריכים בקובץ build.gradle של האפליקציה או המודול:

Groovy

dependencies {
  // CameraX core library using the camera2 implementation
  def camerax_version = "1.7.0-rc01"
  // 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.7.0-rc01"
    // 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. נשמח לדעת אם גיליתם בעיות חדשות או אם יש לכם רעיונות איך לשפר את הספרייה הזו. כדאי לעיין בבעיות הידועות בספרייה הזו לפני שמדווחים על בעיה. כדי להוסיף הצבעה בדיווח על בעיה קיימת, לוחצים על כפתור הכוכב.

יצירת דיווח על בעיה חדשה

מידע נוסף זמין במאמרי העזרה בנושא Issue Tracker.

גרסה 1.0 של Camera Viewfinder Compose

גרסה 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, שאפשר להשתמש בו עם CameraX ו-Camera2. ה-composable Viewfinder תומך ביחסי גובה-רוחב שונים ובטיפול באירועי מגע.

תצוגת הצילום של המצלמה, גרסה 1.4

גרסה 1.4.0-alpha07

‫12 ביוני 2024

‫androidx.camera:camera-viewfinder:1.4.0-alpha07 ו-androidx.camera:camera-viewfinder-core:1.4.0-alpha07 מופצים. גרסה ‎1.4.0-alpha07 מכילה את השמירות האלה.

גרסה 1.4.0-alpha06

‫14 במאי 2024

‫androidx.camera:camera-viewfinder:1.4.0-alpha06 ו-androidx.camera:camera-viewfinder-core:1.4.0-alpha06 מופצים. גרסה ‎1.4.0-alpha06 מכילה את השמירות האלה.

שינויים ב-API

  • שינוי השם של רשימות ה-Enum של Viewfinder ב-ImplementationMode כדי לשקף טוב יותר את ההטמעות הבסיסיות, והוספת קבועים קבועים ל-TransformationInfo.sourceRotation. (Ic6149)
  • הוספנו את ZoomGestureDetector.ZoomEvent כדי לתמצת את המצבים של תנועת זום. (I84cdf)

גרסה 1.7

גרסה ‎1.7.0-rc01

‫21 באוקטובר 2026

‫androidx.camera:camera-*:1.7.0-rc01 מופץ. גרסה 1.7.0-rc01 מכילה את ה-commits האלה.

שינויים ב-API

  • המרנו את UseCaseCamera2Interop, ImageCaptureCamera2Interop, SessionConfigCamera2Interop ו-CameraControlCamera2Interop מממשקים למחלקות מופשטות. (If654e)
  • תוקנה בעיית העמימות ב-Camera2Interop V2‏ (I1bbe5)

תיקוני באגים

  • תוקנה קריסה ברמת שפת המכונה של SIGSEGV בשרשור CameraX OpenGL כש-SurfaceProcessor שחרר קלט SurfaceTexture שה-SurfaceRequest שלו נאסף על ידי מנגנון איסוף הזבל לפני ההשלמה. (I76f73, ‏ b/563673593)
  • תוקנה דליפת Surface וקריסה ברמת שפת המכונה של OpenGL שיכולה להתרחש במהלך איסוף זבל כש-executor של CameraEffect או HandlerThread נסגר לפני ש-SurfaceOutput של האפקט נסגר. (Ifcc19, ‏ b/558819242)
  • שיפור בהתנהגות של "הגברת התאורה החלשה": התכונות "הגברת התאורה החלשה" ו"פנס" פועלות עכשיו לפי מדיניות של "ההגדרה האחרונה קובעת". כלומר, הפעלה של אחת מהן משביתה באופן אוטומטי את השנייה, במקום לדחות את הבקשה. בנוסף, עכשיו אפשר להפעיל את הפלאש בזמן הצילום כשהתכונה "שיפור בתאורה חלשה" פועלת. (Ie583f)
  • התלות androidx.lifecycle:lifecycle-runtime עודכנה לגרסה 2.10.0. הגרסה הזו נדרשת כדי להריץ בדיקות lint של זמן ריצה של מחזור חיים בחבילה עם AGP בגרסה 9.5.0-alpha04 ואילך. (I99bfd, ‏ b/556807521)
  • תמיכה בקבלת CameraSelector במצלמות פיזיות מ-CameraInfo.getPhysicalCameraInfos() ובקישור של UseCases למצלמות פיזיות. כששולחים שאילתה ל-CameraInfo עם CameraSelector פיזי, עכשיו מוחזר CameraInfo פיזי במקום CameraInfo לוגי. (Ibe7f2)
  • הבהרנו ב-Javadoc של OutputOptions.Builder.setLocation שרק קווי הרוחב והאורך נשמרים במטא-נתונים של הסרטון. (I77d3b, ‏ b/551348846)
  • תוקן באג ב-ImageAnalysis שבו שינוי דינמי של סיבוב הפלט או ביטול הקישור של תרחיש השימוש עלולים לגרום לדליפת משאבים של Surface/ImageReader. (I25cef)
  • היחס שמוחזר על ידי CameraInfo.getIntrinsicZoomRatio() מעוגל עכשיו לשתי ספרות אחרי הנקודה העשרונית. (Ibe9a8)
  • בדיקת HardwareBuffer.isSupported פחות מחמירה לפורמט PRIVATE ב-ImageAnalysis כדי למנוע כשלים של תוצאות שליליות כוזבות במכשירים מסוימים. (I347a4, b/545866947)
  • תוקנה קריסה של קומפילציה בגרסאות חדשות יותר של JDK כשפותרים הערות מסוג JSpecify שיובאו באופן טרנזיטיבי בשדות פנימיים של CameraX. (I00bb4, b/543937345)

גרסה 1.7.0-alpha03

‫12 באוגוסט 2026

‫androidx.camera:camera-*:1.7.0-alpha03 מופץ. גרסה ‎1.7.0-alpha03 מכילה את השמירות האלה.

שינויים ב-API

  • ממשקי API מדור קודם של Camera2Interop (Camera2Interop.Extender,‏ Camera2CameraControl,‏ Camera2CameraInfo ו-CaptureRequestOptions) הוצאו משימוש לטובת שיטות להגדרת מפעל של Camera2Interop ופונקציות הרחבה של Kotlin. ‫(Ib0845, b/529609261)
  • הוספנו בלוקים של תוספי Kotlin DSL camera2Interop ל-preview, ל-imageAnalysis, ל-videoCapture, ל-imageCapture ול-SessionConfig.Builder, וגם פונקציית תוסף CameraControl.applyCamera2InteropAsync. (I51af9, b/529609261)
  • נוספו שיטות חדשות של מפעל מגדירים של Camera2Interop (forUseCase,‏ forImageCapture,‏ forSessionConfig,‏ forCameraControl) ושיטות תואמות של setInterop / applyInteropAsync ב-Preview.Builder,‏ ImageCapture.Builder,‏ ImageAnalysis.Builder,‏ VideoCapture.Builder,‏ SessionConfig.Builder ו-CameraControl. (I0007b, b/529609261)
  • הוספנו שיטות עזר ל-Camera2Interop ומאפייני תוספים מקבילים של Kotlin‏ (CameraInfo.cameraId,‏ CameraInfo.cameraCharacteristics ו-String.toCameraSelector()) כדי לאחזר את מזהה המצלמה והמאפיינים של Camera2 מ-CameraInfo. (I11803, b/529609261)
  • הוספנו את Preview.setMirrorMode, Preview.getMirrorMode ו-VideoCapture.setMirrorMode לממשקי API ציבוריים, והסרנו את ההערה ExperimentalMirrorMode. (I4ed60, ‏ b/519794349, ‏ b/470629643)
  • הוספנו את ה-builders של Kotlin DSL‏ preview { ... },‏ imageCapture { ... },‏ imageAnalysis { ... } ו-videoCapture { ... } ליצירת UseCases. (I91df9, b/530013719)
  • שינינו את ImagePlane.buffer ל-ByteBuffer שלא יכול להיות null. (I98593)
  • הוצאה משימוש של פונקציות ה-getter של המאפיינים ב-SessionConfig.Builder, ב-HighSpeedVideoSessionConfig.Builder וב-ExtensionSessionConfig.Builder ב-Kotlin DSL כדי לאכוף מאפיינים לכתיבה בלבד. (I2875b, b/534570559)

תיקוני באגים

  • תוקנה בעיה שבה קישור של כמה תרחישי שימוש של Preview עם OverlayEffect גרם לכשל אחד בהעברת סטרימינג של גרסת טרום-השקה (Preview). (I7a383, ‏ b/532577546, ‏ b/532924417)
  • תוקנה בעיה שבה Recording.pause() ו-Recording.resume() נכשלו כשעברו בין מצלמות במהלך הקלטת וידאו מתמשכת. (I71004, ‏ b/532327691, ‏ b/367121726)
  • תוקנו קריסות של HAL כשמשתמשים ב-Zero-Shutter Lag‏ (ZSL) בזמן שינוי מרחק התצוגה (Zoom) מעבר לגבולות המצלמה הפיזית במכשירים עם כמה מצלמות. (I1c374, ‏ b/527782712, ‏ b/514757157)
  • תוקנה בעיה שבה צילום וידאו ב-HDR נכשל במכשירי Samsung Galaxy S25,‏ S26 ו-Fold 7. (Ic0827, b/529618629)

גרסה 1.7.0-alpha02

‫1 ביולי 2026

‫androidx.camera:camera-*:1.7.0-alpha02 מופץ. גרסה ‎1.7.0-alpha02 מכילה את השמירות האלה.

שינויים ב-API

  • ב-CameraXViewfinder יש עכשיו תמיכה בתנועות מובנות לפתיחה או סגירה של אצבעות כדי לשנות את מרחק התצוגה, ובהקשה כדי להתמקד. בנוסף, יש תמיכה בהבהוב מסך ובמצב סטרימינג. ‫FocusState גלוי עכשיו לכולם ב-viewfinder-core כדי לאפשר מעקב אחרי התוצאות של "לחיצה למיקוד". (I66a17, b/522549890)
  • הוספנו את isAutoRotationEnabled ל-SessionConfig.Builder , ל-HighSpeedVideoSessionConfig.Builder ול-ExtensionSessionConfig.Builder, והוספנו להם פונקציות של מפעל Kotlin DSL. ההגדרה הזו מאפשרת להגדיר את הסיבוב המתאים באופן אוטומטי על סמך החיישנים של המכשיר. (I5b4a3, b/510752515)
  • הוספנו את המאפיין TransformationMode ל-TransformationInfo כדי לתמוך באפליקציות שמשתמשות בצינור עיבוד הנתונים OpenGL במצב EMBEDDED. (Id1de1, b/487826941)
  • הוספנו את isNightModeIndicatorSupported() ואת getNightModeIndicator() אל CameraInfo כדי לקבוע מתי תנאי הסביבה עומדים בקריטריונים של מצב לילה. (Iae47b, b/499389465)
  • הגדרנו את ImageAnalysis.OUTPUT_IMAGE_FORMAT_PRIVATE ואת ImageProxy.getHardwareBuffer()‎ כ-API ציבורי כדי לתמוך ב-ImageAnalysis שמבוסס על GPU. (I41cb3, ‏ b/496022391, ‏ b/492934501)
  • ה-API ‏ExtensionsManager#getExtensionEnabledCameraSelector הוצא משימוש. כדי להפעיל מצבי תוספים, צריך להשתמש ב-API החדש ExtensionSessionConfig. (I2b336, ‏ b/473715607)
  • נוספה תמיכה בסגנון חזותי של פריימים של מצלמה במהלך קומפוזיציה של מצלמות בו-זמנית. עכשיו אתם יכולים להתאים אישית את:
  • פינות מעוגלות: משתמשים ב-setRoundedCornerRatio(float) כדי להחיל עיגול מנורמל (0.0 עד 1.0) על קצוות המסגרת.
  • גבולות: משתמשים ב-setBorderWidthRatio(float) וב-setBorderColor(int) כדי להוסיף מסגרת דקורטיבית בעובי אחיד (I18a07, b/366349205)
  • עדכנו את CompositionSettings כדי לאכוף סדר z לא שלילי, והוספנו אימות ל-ConcurrentCamera.setCompositionSettings כדי לוודא שהקריאה אליו מתבצעת עם מספר ההגדרות הנכון במצב קומפוזיציה תקין. (If660d, b/496951658)
  • הוספנו את getNightModeIndicator()‎ ואת isNightModeIndicatorAvailable()‎ ל-CameraExtensionsInfo כדי לאפשר לאפליקציות לעקוב אחרי הסביבה הנוכחית ולבדוק אם היא במצב לילה כשמשתמשים בתוספים למצלמה. (I62bb4, b/499389465)
  • הוספנו תמיכה באיכות וידאו של QHD ב-VideoCapture. (I0ac20, b/501305592)
  • הוספנו את Recorder.Builder.setTargetAudioChannelCount(int) ו-Recorder.getTargetAudioChannelCount() כדי לאפשר למפתחים להגדיר מספר מפורש של ערוצי אודיו. (I6bee0, b/441895100)
  • הוספנו את Recorder.Builder.setTargetAudioEncodingBitRate(int) כדי לאפשר הגדרה של קצב העברת נתונים לקידוד אודיו. (I29062, ‏ b/241151504)
  • הוספנו את ה-API‏ ConcurrentCamera.setCompositionSettings כדי לאפשר לאפליקציות לעדכן את הקומפוזיציה של המצלמה הנוכחית באופן דינמי אחרי שמחזור החיים נקשר. בנוסף, setZOrder API חדש ב-CompositionSettings.Builder מאפשר שליטה מדויקת בסדר העיבוד של סטרימינג מהמצלמה חופפים. (I90528, ‏ b/473702287)
  • הוספנו ממשקי API שמאפשרים שליטה מפורטת בפורמטים של קידוד. מפתחים יכולים עכשיו לגלות פורמטים שנתמכים במכשיר באמצעות Recorder.getSupportedVideoMimeTypes() ו-getSupportedAudioMimeTypes(), שנמצאים כרגע בשלב ניסיוני. אפשר להגדיר באופן מפורש את הפורמטים המועדפים באמצעות Recorder.Builder.setVideoMimeType() ו-setAudioMimeType(). בנוסף, Recorder.getVideoCapabilities(CameraInfo, String) מאפשר לשלוח שאילתות לגבי יכולות ספציפיות למצלמה, כמו איכויות נתמכות וטווחים דינמיים, עבור קודק נבחר. (I4620e, ‏ b/491319384)
  • הוספנו את CameraController.setAutoRotationEnabled(boolean)‎ כדי לאפשר השבתה של המאזין לסיבוב האוטומטי של המכשיר. (Ia0c03, b/449573627)
  • הוספנו תמיכה בנעילת AE/AWB ב-FocusMeteringAction באמצעות setLockingMode API חדש. כך אפשר גם לעדכן אזורי 3A בלי לנעול את המיקוד, והמצלמה יכולה להישאר במצב מיקוד אוטומטי רציף בזמן עדכון אזור המיקוד. (I6416f, b/481624745)

תיקוני באגים

  • הסרת הדרישה ל-compileSdk 37 (If78b4)
  • תוקנו CameraXViewfinder בעיות טרנספורמציה במצב EMBEDDED כשצינור עיבוד הנתונים OpenGL מופעל על ידי CameraX כדי לקשר יותר UseCases או לעבד משטחים. ‫(I3e637, ‏ b/487826941)
  • עדכנו את הבדיקות והפעילויות כך שישתמשו ב-ExtensionSessionConfig במקום ב-API‏ getExtensionEnabledCameraSelector שהוצא משימוש. (I765d8, ‏ b/473715607)
  • תוקנה שגיאת קומפילציה "Cannot access class 'ListenableFuture'". (Ic8cba, b/497571473)
  • ‫compileSdk של Compose עודכן ל-API 37. כלומר, כשמשתמשים ב-Compose, נדרשת גרסת AGP מינימלית של 9.2.0. (Id45cd, b/413674743)

גרסה ‎1.7.0-alpha01

‫11 במרץ 2026

‫androidx.camera:camera-*:1.7.0-alpha01 מופץ. גרסה 1.7.0-alpha01 מכילה את ה-commits האלה.

שינויים ב-API

  • חשפנו את ה-API של CameraController.setSessionConfig(). כך אפשר לספק SessionConfig בהתאמה אישית להגדרות מתקדמות של UseCase שלא נחשפות ישירות על ידי CameraController. כש-SessionConfig פעיל, שיטות הגדרה אחרות ב-CameraController מושבתות.(I35cf1, ‏ b/448525636)

תיקוני באגים

  • העברת ספריות לשימוש ביעד Java 11. כלומר, קוד ה-בייטקוד (bytecode) שנוצר יהיה Java 11 (קובץ כיתה בגרסה 55) ויכול להיות שיהיה צורך בתהליך הסרה של סוכר תחבירי כדי להשתמש בספרייה (If4c2a,‏ b/457821470)
  • תוקן באג ב-ImageAnalysis שגרם לכך שתמונות לא סובבו בצורה נכונה כשסיבוב תמונת הפלט מופעל והסיבוב היחסי הראשוני הוא 0 מעלות. (Id46c2, ‏ b/487160584)

גרסת המצלמה 1.6

גרסה 1.6.2

‫26 באוגוסט 2026

‫androidx.camera:camera-*:1.6.2 מופץ. גרסה 1.6.2 מכילה את השמירות האלה.

תיקוני באגים

  • תוקנה קריסה של קומפילציה בגרסאות חדשות יותר של JDK כשפותרים הערות מסוג JSpecify שיובאו באופן טרנזיטיבי בשדות פנימיים של CameraX. (I00bb4, b/543937345)

גרסה 1.6.1

‫6 במאי 2026

‫androidx.camera:camera-*:1.6.1 מופץ. גרסה 1.6.1 מכילה את השמירות האלה.

תיקוני באגים

  • תוקנה שגיאת הידור "לא ניתן לגשת לכיתה ListenableFuture" כשמשתמשים ב-CameraX 1.6.0. (Ic8cba, b/497571473)

גרסה 1.6.0

‫25 במרץ 2026

‫androidx.camera:camera-*:1.6.0 מופץ. גרסה 1.6.0 מכילה את ה-commits האלה.

שינויים חשובים מאז גרסה 1.5.0:

1. מעבר למערכת מצלמה מאוחדת עם ביצועים גבוהים

  • עכשיו CameraX משתמשת ב-CameraPipe – אותה מערכת מודרנית עם ביצועים גבוהים שמפעילה את מצלמת Pixel. המעבר הזה מייעל את הארכיטקטורה ומספק בסיס שניתן להתאים אותו, כדי להביא תכונות מתקדמות של צילום ממוחשב לסביבת המפתחים.

‫2. שילוב של Media3 Muxer

  • ‫CameraX משלב עכשיו את Media3 Muxer כברירת מחדל ב-API של VideoCapture. להעברה הזו יש כמה יתרונות:
    • ביצועים משופרים: עיבוד וידאו וריבוב (muxing) יעילים יותר.
    • עמידות בפני קריסות: הגנה משופרת מפני פגיעה בקובצי וידאו, כדי להבטיח שהנתונים יישמרו גם אם האפליקציה תקרוס במהלך ההקלטה.

‫3. שיפור קבוצת התכונות

‫4. ‫Stabilized SessionConfig API

  • ‫SessionConfig עבר משלב הניסוי ל-API ציבורי יציב לחלוטין, כולל SessionConfig ו-HighSpeedVideoSessionConfig. עכשיו אפשר להטמיע את CameraX Extensions באמצעות ממשק API חדש של ExtensionSessionConfig. הוספנו ממשק API חדש של isSessionConfigSupported שמאפשר למפתחים לבדוק אם המכשיר תומך בשילוב ספציפי של תרחישי שימוש ותכונות (כמו HDR, ייצוב, רזולוציות ספציפיות, תוספי CameraX או הילוך איטי) לפני הקישור למחזור החיים.

תיקוני באגים

  • תוקנה קריסה שמתרחשת במכשירים מסוימים עם Android 17 (API 37) ואילך. כשהמכשירים האלה חושפים פרופילים חדשים של טווח דינמי (למשל, STANDARD_SMPTE_2094_50(ID 8192)) שלא היו מוכרים ל-CameraX בגרסה 1.5.1 ובגרסאות קודמות, הספרייה לא הצליחה לטפל במזהים האלה בצורה מתאימה, וכתוצאה מכך התרחשה שגיאה מסוג NullPointerException או IllegalArgumentException במהלך ProcessCameraProvider.bindToLifecycle(). התיקון הזה מאפשר ל-CameraX להתעלם בצורה חלקה מפרופילים לא מזוהים של טווח דינמי, וכך למנוע את הקריסה ולשמור על תאימות קדימה. כדי למנוע את הבעיה הזו במכשירים שחושפים את הפרופילים החדשים האלה, צריך לעדכן את יחסי התלות של CameraX לגרסה 1.5.2 או 1.6.0 (או גרסה חדשה יותר). פרטים נוספים זמינים בבעיה 519796838. (Ibd7b5)
  • ה-API של קבוצת התכונות מספק עכשיו תוצאות עקביות כשמשתמשים ב-PREVIEW_STABILIZATION עם VideoCapture. התיקון הזה פותר באג שגרם לתוצאות לא עקביות כשלא היה גם תרחיש שימוש פעיל של גרסת טרום-השקה (Preview). (Ifed82, ‏ b/449913903)
  • תוקנה בעיה שבה תכונות מועדפות שלא נתמכות היו זמינות באופן שגוי. התכונות מסוננות עכשיו בצורה נכונה כשלא מתקיימים תרחישי השימוש הנדרשים שלהן. (I38db8, b/449532342)
  • תוקנה בעיה שגרמה לתוצאות וידאו לא תקינות ב-Samsung Galaxy S6. (I612d9, b/235127608)
  • תוקנה בעיה שבה CameraInfo#isFeatureGroupSupported החזיר ערך true שגוי עבור PREVIEW_STABILIZATION אם SessionConfig בשאילתה כבר הוגדר עם תכונות אחרות. (I2c355c, ‏ b/437816469)
  • החרגנו גדלים בעייתיים של פלט בפורמט YUV ממכשיר Samsung Z Fold 4. התמונות שמתקבלות מעוותות כשמשתמשים בגדלים האלה. (I776bf, b/460322307)
  • תוקנה בעיה ספציפית למכשיר Samsung A53 שבה צילום תמונה עם פנס מופעל נכשל לפעמים אם תרחיש השימוש של VideoCapture מוגדר. (I0f183, b/458197367)
  • תוקנה בעיה במכשירים מסוימים שבה שימוש בפלאש עם המצלמה הרחבה במיוחד עלול לגרום לתמונות עם חשיפת חסר. (Ib7530, ‏ b/444590340)
  • עדכנו את התלות ב-ExifInterface כך שתכלול תיקון לניתוח קובצי JPEG עם מילוי 0xFF. התיקון פותר כשלים בצילום תמונות במכשירים שבהם מקודד ה-JPEG מוסיף בייטים למילוי לפני סמנים. (I0eb49)

גרסה ‎1.6.0-rc01

‫25 בפברואר 2026

‫androidx.camera:camera-*:1.6.0-rc01 מופץ. גרסה ‎1.6.0-rc01 מכילה את ה-commits האלה.

גרסה ‎1.6.0-beta02

‫11 בפברואר 2026

‫androidx.camera:camera-*:1.6.0-beta02 מופץ. גרסה ‎1.6.0-beta02 מכילה את השמירות האלה.

תיקוני באגים

  • תוקנה הבעיה ImageCapture OUTPUT_FORMAT_RAW_JPEG in-memory capture IllegalArgumentException. (Id4eec, ‏ b/479990902)
  • מעבר למרבב AndroidX Media3. העדכון הזה פתר שתי בעיות: 1. פגיעה בקובץ הסרטון במהלך הפסקות לא צפויות או סגירת האפליקציה, ו-2. קריסות בזמן שמירת סרטונים בתיאורי קבצים של שרתי proxy. (I23b63, b/433649708, b/264812009, b/475750115)

גרסה ‎1.6.0-beta01

‫28 בינואר 2026

‫androidx.camera:camera-*:1.6.0-beta01 מופץ. גרסה ‎1.6.0-beta01 מכילה את השמירות האלה.

תיקוני באגים

  • תוקנה בעיה CameraExtensionsInfo ב-CameraX 1.6.0-alpha שבה אובייקט LiveData לא יכול לקבל את נתוני הסוג המעודכנים. (I2c7a5)
  • עדכנו את יחסי התלות של ExifInterface כך שיכללו תיקון לניתוח קובצי JPEG עם מילוי של 0xFF. התיקון פותר כשלים בצילום תמונות במכשירים שבהם מקודד ה-JPEG מוסיף בייטים למילוי לפני הסמנים. (I0eb49)

גרסה 1.6.0-alpha02

‫17 בדצמבר 2025

‫androidx.camera:camera-*:1.6.0-alpha02 מופץ. גרסה ‎1.6.0-alpha02 מכילה את השמירות האלה.

תכונות חדשות

  • הוספנו תכונה שניתן לקבץ כדי לציין את התכונה של ייצוב הסרטון בהגדרת הסשן. מפתחים יכולים עכשיו לבקש ייצוב וידאו כתכונה נדרשת או מועדפת, ולהתאים אותה לתכונות אחרות שניתן לקבץ, כמו UHD_RECORDING ו-PREVIEW_STABILIZATION. (Ic6757, b/419766630)
  • הוספנו תכונות שניתן לקבץ כדי לציין את איכות הקלטת הווידאו בהגדרות של הסשן. המפתחים יכולים עכשיו לבקש איכות ספציפית (למשל, UHD,‏ FHD) כתכונה נדרשת או מועדפת, ולהתאים אותה לתכונות אחרות שניתן לקבץ, כמו HDR ו-60 FPS. (Ib5cd3, b/437820285)
  • הוספנו תמיכה בשימוש ב-CameraEffect וב-Feature Groups API ב-SessionConfig. (I17f18, b/406370934)
  • הוספנו תמיכה בשימוש ב-ImageAnalysis וב-API של קבוצות התכונות ב-SessionConfig. (I87833, ‏ b/406371720)

שינויים ב-API

  • הוספנו את פונקציית ה-setter‏ addUseCase ל-ExtensionSessionConfig.Builder ואת פונקציות ה-getter החסרות ל-ExtensionSessionConfig. (I71e07, b/453988621)
  • נוסף ה-API‏ ExtensionsManager.getInstance, שהוא גרסה מושהית של ExtensionsManager.getInstanceAsync (I3a0a9,‏ b/452208792)
  • שינינו את השם של isFeatureGroupSupported ל-isSessionConfigSupported, והוספנו תמיכה בכל הסוגים של SessionConfig. (I21616, b/448781299)
  • המרנו את ExtensionsManager להטמעה של Kotlin. (I73091, b/452208792)
  • הוספנו את CameraProvider#getCameraInfo(CameraSelector, SessionConfig) כדי לאחזר את CameraInfo כשה-SessionConfig יכול להשפיע על בחירת המצלמה. לדוגמה, כשמשתמשים ב-ExtensionSessionConfig. (Ic548c, b/451891648)
  • ‫ExtensionSessionConfig API חשוף. אפליקציות יכולות ליצור ExtensionSessionConfig ולהשתמש בו כדי ליצור סשן של תוספים עכשיו. (I6354c, ‏ b/448524373)
  • ה-API של androidx.camera.video.HighSpeedVideoSessionConfig כבר לא ניסיוני, ועכשיו הוא API ציבורי יציב לחלוטין. (I492d4, b/447558239)
  • ה-API של androidx.camera.core.SessionConfig כבר לא ניסיוני, ועכשיו הוא API ציבורי יציב לחלוטין. ‫(Idc87a, b/447558437)

תיקוני באגים

  • תוקנה קריסה שנגרמה בגלל IllegalArgumentException: Dynamic range profile cannot be converted to a DynamicRange object: ב-Android מגרסה 17 ואילך. (Ibd7b5, b/463465353)
  • החרגנו גדלים בעייתיים של פלט בפורמט YUV ממכשיר Samsung Z Fold 4. התמונות שמתקבלות מעוותות כשמשתמשים בגדלים האלה. (I776bf, b/460322307)
  • תוקנה בעיה שבה CaptureRequest.FLASH_MODE לא הוחל כשהוגדר דרך ה-API של Camera2Interop. (I0004c, b/459608684)
  • תוקנה בעיה ספציפית למכשיר Samsung A53 שבה צילום תמונה עם פנס מופעל נכשל לפעמים אם תרחיש השימוש של VideoCapture מוגדר. (I0f183, b/458197367)
  • תוקנה בעיה במכשירים מסוימים שבה שימוש בפלאש עם המצלמה הרחבה במיוחד עלול לגרום לתמונות עם חשיפת חסר. (Ib7530, ‏ b/444590340)

גרסה 1.6.0-alpha01

‫22 באוקטובר 2025

‫androidx.camera:camera-*:1.6.0-alpha01 מופץ. גרסה ‎1.6.0-alpha01 מכילה את השמירות האלה.

תכונות חדשות

  • ‫CameraX עבר למקבץ מצלמות מאוחד עם ביצועים גבוהים, שמשמש גם את אפליקציית המצלמה של Pixel. המקבץ החדש הזה, שנקרא CameraPipe, הוא תוצאה של שיתוף פעולה בין הצוותים של CameraX ושל מצלמת Pixel. כך כל השיפורים משותפים, וגם משתמשי CameraX וגם משתמשי אפליקציית המצלמה ב-Pixel נהנים מהם.

שינויים ב-API

  • נוספו ממשקי API חדשים לזיהוי דינמי של הוספה או הסרה של מצלמה. פרטים נוספים זמינים ב-API של CameraPresenceListener. (I41ead, ‏ b/427182232, ‏ b/419441394)

תיקוני באגים

  • ה-API של קבוצת התכונות מספק עכשיו תוצאות עקביות כשמשתמשים ב-PREVIEW_STABILIZATION עם VideoCapture. העדכון הזה מתקן באג שגרם לתוצאות לא עקביות כשלא היה גם תרחיש שימוש פעיל של Preview. (Ifed82, ‏ b/449913903)
  • תוקנה בעיה שבה תכונות מועדפות שלא נתמכות היו זמינות באופן שגוי. התכונות מסוננות עכשיו בצורה נכונה כשלא מתקיימים תרחישי השימוש הנדרשים שלהן. (I38db8, b/449532342)
  • תוקנה בעיה שגרמה לתוצאות וידאו לא תקינות ב-Samsung Galaxy S6. (I612d9, b/235127608)
  • תוקנה בעיה שבה CameraInfo#isFeatureGroupSupported החזיר ערך true שגוי עבור PREVIEW_STABILIZATION אם SessionConfig בשאילתה כבר הוגדר עם תכונות אחרות. (I2c355c, ‏ b/437816469)

גרסה 1.5 של המצלמה

גרסה 1.5.3

‫28 בינואר 2026

‫androidx.camera:camera-*:1.5.3 מופץ. גרסה 1.5.3 מכילה את השמירות האלה.

תיקוני באגים

  • עדכנו את התלות של ExifInterface לגרסה 1.4.2. התיקון הזה פותר בעיה בצילום תמונות שמתרחשת במכשירים שמפיקים קובצי JPEG עם בייטים נוספים (ומותרים) של 0xFF לפני סמן. (I16df4)

גרסה 1.5.2

‫4 בדצמבר 2025

‫androidx.camera:camera-*:1.5.2 מופץ. גרסה 1.5.2 מכילה את ה-commits האלה.

תיקוני באגים

  • תוקנה קריסה שנגרמה בגלל IllegalArgumentException: Dynamic range profile cannot be converted to a DynamicRange object: ב-Android מגרסה 17 ואילך. (Ic9184)
  • תוקן באג שגרם לתוצאות לא עקביות ב-Groups API של קבוצת התכונות כשהתכונה PREVIEW_STABILIZATION נוספה עם תרחיש השימוש VideoCapture, אבל בלי תרחיש השימוש Preview. (Ifed82)
  • תוקנה בעיה שבה תכונות מועדפות לא סוננו למרות שלא היו להן תרחישי השימוש הנדרשים כדי שהתכונות ייתמכו. (I38db8)

גירסה 1.5.1

‫8 באוקטובר 2025

‫androidx.camera:camera-*:1.5.1 מופץ. גרסה 1.5.1 מכילה את ה-commits האלה.

תיקוני באגים

  • תמיכה ב-CameraEffect במצב פריסת מצלמה בו-זמנית. האפקט יופעל על פלט הקומפוזיציה. חשוב לזכור שהמערכת תתעלם מההגדרה mirrorMode ב-VideoCapture כשהאפקט מוגדר במצב הרכבת תמונה ממצלמות בו-זמנית. (If3d00, b/425565129)
  • תוקנה הבעיה שבה mirrorMode לא הוחל בצורה נכונה על המצלמה המשנית במצב פריסת מצלמות בו-זמנית. (I686cd, b/446430827)
  • תמיכה בקישור של Preview, ‏ ImageCapture ו-VideoCapture יחד במצב מצלמה בו-זמנית ללא קומפוזיציה. (Ib410a, b/443009871)
  • תוקנה בעיה שבה תרחישים לדוגמה כמו ImageCapture ו-VideoCapture מאבדים את פרטי הרוטציה של היעד אם הם נוצרים מחדש. זה יכול לגרום לכך שהכיוון של התמונות או הסרטונים יהיה שגוי אם הגדרה כמו imageCaptureMode שונתה אחרי שהמכשיר סובב. (I477c8, ‏ b/444734537)
  • תוקנה בעיה שמנעה בחירה של רזולוציות 16:9 בתצוגה המקדימה, וצילום ב-VideoCapture באיכות QUALITY_1080P. הבעיה הזו התרחשה כשמשתמשים בהגדרת רזולוציה של תצוגה מקדימה כברירת מחדל בזמן שהתכונה הפנימית של StreamSharing הייתה פעילה (לדוגמה, כשארבעה UseCases קשורים בו-זמנית). (I493cb, ‏ b/440364875)
  • תוקנה הקריסה שמתרחשת כשמפעילים אפקט אחרי ש-SurfaceProcessor נסגר (I2c450, ‏ b/414150174)
  • תוקן באג ב-CameraController שגרם ל-IllegalStateException כש-UseCase ראשוני בחר ברזולוציה המקסימלית, וכתוצאה מכך מנע את הקישור של UseCases אחרים. (Ifb758, ‏ b/440374234)
  • לא כולל גודלי פלט בעייתיים של YUV_420_888 עבור Nokia 7 Plus שיגרמו לבעיית הכשל השקט בלי לדווח על הודעות שגיאה. (I3af47, ‏ b/436524501)
  • תוקנה בעיה שבה CameraInfo#isFeatureGroupSupported החזיר ערך true שגוי לתכונה PREVIEW_STABILIZATION. זה יכול לקרות לפעמים כששולחים שאילתה עם SessionConfig שכבר הוגדר עם תכונות אחרות. (I2c355, b/437816469)
  • שיפרנו את היציבות של CameraXViewfinder ברמות API ישנות יותר ובמכשירים עם בעיות ב-SurfaceView, על ידי הגדרת ברירת המחדל ל-TextureView בתרחישים כאלה. מנגנון החלופה הזה הוא ברירת המחדל החדשה, אבל אפשר לשנות אותו באופן פרוגרמטי. (Ieb476, b/437496463)
  • תוקנה דליפת זיכרון ב-PreviewView, שבה היא יכולה למנוע את איסוף הזבל של הפעילות שלה. זה קורה אם מגיע SurfaceRequest חדש לפני שהקודם טופל. (I4aa0b,‏b/443112512)
  • תוקנה בעיה שבה ההקלטה במהירות גבוהה או בהילוך איטי נכשלה במכשירים Huawei P smart, ‏ Infinix Hot 40i ו-Realme C53. (40a668e, b/442984200)

גרסה 1.5.0

‫10 בספטמבר 2025

‫androidx.camera:camera-*:1.5.0 מופץ. גרסה 1.5.0 מכילה את השמירות האלה.

שינויים חשובים מאז גרסה 1.4.0:

  • צילום במהירות גבוהה ובהילוך איטי: שילוב קל של צילום וידאו במהירות גבוהה (120/240 פריימים לשנייה) ובהילוך איטי עם קוד מינימלי. פרטים נוספים זמינים במאמרים Recorder#getHighSpeedVideoCapabilities(CameraInfo) ו-HighSpeedVideoSessionConfig.
  • ‫SessionConfig ו-FeatureGroup API: ממשק ה-API החדש של SessionConfig מאפשר להגדיר את סשן המצלמה ולהפעיל כמה תכונות ביחד בצורה בטוחה, כולל HLG (HDR),‏ UltraHDR,‏ 60 FPS וייצוב התצוגה המקדימה. אפשר גם להגדיר קבוצת תכונות מועדפת עם עדיפות, ולאפשר ל-CameraX לקבוע את השילוב הנתמך האופטימלי. מידע נוסף זמין במאמרים SessionConfig.Builder#setPreferredFeatureGroup, SessionConfig.Builder#setRequiredFeatureGroup ו-CameraInfo#isFeatureGroupSupported(SessionConfig).
  • ‫Deterministic Frame Rate API: פתרון למגבלות קודמות של setTargetFrameRate באמצעות CameraInfo.getSupportedFrameRateRanges(sessionConfig) לשליחת שאילתות ו-SessionConfig.setExpectedFrameRateRange להגדרת קצבי פריימים מדויקים ונתמכים.
  • תוספים למצלמה: עכשיו יש תמיכה בפורמט UltraHDR בתוספים. צריך לבדוק את ImageCapture.getImageCaptureCapabilities(cameraInfo).getSupportedOutputFormats() ולהפעיל אותו ב-ImageCapture.Builder.setOutputFormat. עכשיו, כשהתוספים מופעלים, אפשר לראות את יכולות הייצוב של יחס הזום והתצוגה המקדימה.
  • עוצמת הפנס: אפשר לשנות את עוצמת הפנס באמצעות CameraControl.setTorchStrengthLevel.
  • מצב שיפור בתאורה חלשה: אפשר להפעיל את מצב השיפור בתאורה חלשה(CONTROL_AE_MODE_ON_LOW_LIGHT_BOOST_BRIGHTNESS_PRIORITY) באמצעות ממשקי ה-API הבאים: CameraInfo#isLowLightBoostSupported,‏ CameraInfo#getLowLightBoostState ו-CameraControl#enableLowLightBoostAsync.
  • צילום וידאו: עכשיו מופעלת התראה (VideoRecordEvent.Finalize.ERROR_INSUFFICIENT_STORAGE) אם אין מספיק נפח אחסון במהלך הצילום. ההגדרה PendingRecording.withAudioEnabled(boolean initialMuted) מאפשרת לשלוט במצב ההשתקה הראשוני של הקלטת האודיו.
  • צילום תמונות: תמיכה בפורמטים DNG (RAW)‎ ו-JPEG + DNG (RAW)‎ ב-ImageCapture. בודקים אם ImageCaptureCapabilities(CameraInfo).getSupportedOutputFormats() תומך ב-RAW. משתמשים בממשקי API מסוג takePicture עם עומס יתר עם כמה OutputFileOptions לצילום RAW+DNG.
  • ניתוח תמונות: תמיכה בפורמט NV21 ב-ImageAnalysis. מפעילים אותה באמצעות ImageAnalysis.Builder.setOutputImageFormat(OUTPUT_IMAGE_FORMAT_NV21).

גרסה ‎1.5.0-rc01

‫13 באוגוסט 2025

‫androidx.camera:camera-*:1.5.0-rc01 מופץ. גרסה ‎1.5.0-rc01 מכילה את ה-commits האלה.

תיקוני באגים

  • העברת ברירת המחדל של minSdk מ-API 21 ל-API 23‏ (Ibdfca, ‏ b/380448311, ‏ b/435705964, ‏ b/435705223)
  • הוסרה ההגבלה על פלט של 10 ביט במצב חשיפה אוטומטית לשיפור התאורה בתנאי תאורה חלשה. עכשיו אפליקציות יכולות להפעיל את שתי התכונות בו-זמנית במכשירים נתמכים. (I5a638)
  • תוקנה בעיה שגרמה למכשירים עם ערכות שבבים מסוג UniSoc להיתקע בזמן צילום תמונה. הבעיה התרחשה כשנעשה שימוש בו-זמנית ב-VideoCapture, ב-Preview וב-ImageCapture, כשכל השידורים הוגדרו לרזולוציה של 1280x720. (Ia00c4, b/380802479)
  • תוקן המסך השחור בתצוגה המקדימה כשלא מוגדר קצב פריימים גבוה להקלטה במהירות גבוהה או בהילוך איטי. (cdf0ff2e9)
  • שיפור הטיפול בשגיאות והרישום ביומן ב-getViewportAspectRatioInt (82fca18)

גרסה ‎1.5.0-beta02

‫16 ביולי 2025

‫androidx.camera:camera-*:1.5.0-beta02 מופץ. גרסה ‎1.5.0-beta02 מכילה את ה-commits האלה.

שינויים ב-API

  • הוספנו ממשקי API חדשים כדי להגדיר או לשלוח שאילתות לקבוצות של תכונות באיכות גבוהה בצורה אינטואיטיבית ומדויקת יותר, כי יכול להיות שהתכונות האלה לא נתמכות כשילוב בכל המכשירים. ‫SessionConfig כולל עכשיו ממשקי API חדשים שמאפשרים לציין קבוצה של תכונות כנדרשות או כמועדפות. ה-API של CameraInfo.isFeatureGroupSupported מאפשר לדעת אם קבוצת תכונות נתמכת לפני שמקשרים SessionConfig. SessionConfig גם מאפשר להגדיר מאזין כדי לדעת אילו תכונות נבחרו בסופו של דבר כשמוגדרת תצורת סשן. (Ie4d60)
  • הוספנו את ממשקי ה-API החדשים SessoinConfig.Builder.setFrameRateRange(Range<Integer>) ו-CameraInfo.getSupportedFrameRateRanges(SessionConfig), שמאפשרים למפתחים לשלוח שאילתות לגבי קצבי פריימים נתמכים שמוגבלים על ידי SessionConfig ספציפי, ואז להחיל את קצב הפריימים על SessionConfig. (Ieacf7)
  • הוספנו את ה-API החדש SessionConfig, שכולל הפשטה טובה יותר להגדרת תרחישי שימוש, פרמטרים של סשנים, CameraEffect, ViewPort וכו'. קישור של SessionConfig ל-LifecycleOwner פותח את סשן המצלמה, מגדיר אותו באמצעות תרחישי השימוש והפרמטרים של הסשן שצוינו, ומחיל את CameraEffect ו-ViewPort הייעודיים. כשמעדכנים SessionConfig חדש לאותו LifecycleOwner, אפשר פשוט לקשר Sessionconfig חדש בלי להפעיל קודם את unbind או את unbindAll. (Iedfc3)
  • נוספו ממשקי API חדשים לצילום סרטונים במהירות גבוהה או בהילוך איטי. פרטים נוספים זמינים ב-API של HighSpeedVideoSessionConfig. (Ia16f3)

תיקוני באגים

  • תוקנה בעיה שבה ממשק ה-API של ImageCaptureCapabilities#getSupportedOutputFormats() דיווח על פורמטים של RAW כנתמכים במכשירים מסוימים שאין להם בפועל יכולת RAW. (Ibcadb)
  • תוקנה דליפת הזיכרון שמתרחשת כשמשתמשים ב-PreviewView, כש-CameraEffect מופעל או כשמקשרים 4 תרחישים לדוגמה(StreamSharing) (I87468)
  • תוקנה קריסה בהקלטת וידאו שנגרמה על ידי AssertionError: מצב אודיו פנימי לא חוקי: IDLING. (I38d4b, b/414259796)
  • תוקנה הבעיה שבה האפליקציה פועלת במסך חיצוני והמכשיר במצב לרוחב, והתצוגה המקדימה ב-PreviewView נמתחת או מוצגת הצידה (Ia917a)
  • תוקנה הבעיה שבה ההגדרות של ייצוב התצוגה המקדימה לא הוחלו בצורה נכונה כשסטרימינג מהמצלמה שותף בין Preview ל-VideoCapture.‏(I5430e)
  • עכשיו CameraXViewfinder מטפל כראוי בהחלפת פני השטח ב-Viewfinder הבסיסי. זה כולל תרחישים כמו מצב שבו תצוגת הצילום של EXTERNAL ברמת API‏ 28 ומטה יוצאת מהמסך, או אם CameraXViewfinder (עם כל ImplementationMode) הוא חלק מ-moveableContentOf(). במקרים שבהם לא ניתן לשמור על הפעילות של ViewfinderSurfaceSession, ה-CameraXViewfinder יבטל את התוקף של SurfaceRequest הנוכחי של CameraX, ויאפשר ל-CameraX להשתמש ב-Surface החדש. (I79432)
  • תיקון בעיה ב-Android 10/11 שבה EXTERNAL CameraXViewfinder עשוי להיראות מתוח או שגוי בגלל שפעולות טרנספורמציה (כמו שינוי קנה מידה או תרגום) הופעלו מוקדם מדי. עכשיו המערכת ממתינה ליצירת ה-Surface לפני שהיא מחילה את הטרנספורמציות האלה בשלב הפריסה, כדי להבטיח פלט תקין. (Icc77c)
  • הפונקציה הקומפוזבילית CameraXViewfinder פועלת עכשיו בצורה תקינה עם Pager של Compose. השינוי הזה מבטיח שאפשר יהיה לאפס את ה-Composable על ידי הטמעת הקריאה החוזרת (callback) onReset של AndroidView, שתומכת בהטמעות של EMBEDDED וגם של EXTERNAL. (I0d9be)
  • תוקנה דליפה של בעלי מחזור חיים שמתרחשת כשמבטלים את הקישור של תרחישי שימוש מבעלי מחזור חיים בלי להשבית את ספק המצלמה.

גרסה ‎1.5.0-beta01

‫7 במאי 2025

‫androidx.camera:camera-*:1.5.0-beta01 מופץ. גרסה ‎1.5.0-beta01 מכילה את השמירות האלה.

שינויים ב-API

  • פרויקטים שפורסמו עם Kotlin 2.0 דורשים KGP 2.0.0 ואילך כדי לצרוך (Idb6b5)
  • עכשיו אפשר להשתמש ב-ContentScale וב-Alignment בתצוגת הצילום כדי לשנות את קנה המידה של המשטח המוצג ולמקם אותו בתוך הקונטיינר שלו, בדומה לאופן שבו androidx.compose.foundation.Image פועל. (Ibcea3)
  • ל-TransformationInfo יש עכשיו ערכי ברירת מחדל לכל הארגומנטים. כך אפשר ליצור תצוגות צילום בלי TransformationInfo, שיוגדרו כברירת מחדל לסיבוב מקור של 0, ללא שיקוף מקור וללא מלבן חיתוך. (I2b1b2)
  • נוסף LifecycleCameraProvider, שהוא ספק מצלמה שאפשר ליצור ממנו מופע עם הגדרות שונות לתכונות כמו גישה למצלמה של מכשיר וירטואלי על ידי הגדרה עם הקשר מותאם אישית. (Ia2992)

תיקוני באגים

  • תוקנה בעיה שבה התצוגה המקדימה קפאה כשמשתמשים ב-ImageAnalysis עם שידור אחר שמשתמש ב-TEMPLATE_RECORD במכשיר Samsung SM-E556B. (Ic0e62, b/409478042)
  • תוקנה בעיה שבה התצוגה המקדימה קפאה כשמשתמשים ב-ImageAnalysis עם סטרימינג אחר שמשתמש ב-TEMPLATE_RECORD במכשיר Samsung SM-M556B. (Ic1a6a, b/395822788)
  • תוקנה בעיה בתוספים במצב לילה AssertError במכשירי Pixel עם Android 15 כשמבצעים פעולות שקשורות לשינוי מרחק התצוגה. (I27a5d, b/401460276)
  • תיקון בעיה ב-ML Kit Analyzer שבה הקואורדינטות של התיבה התוחמת (bounding box) לא נכונות כשמשתמשים ב-CameraController. (Iae91b, b/409808510)

גרסה 1.5.0-alpha06

‫26 בפברואר 2025

‫androidx.camera:camera-*:1.5.0-alpha06 מופץ. גרסה 1.5.0-alpha06 מכילה את ה-commits האלה.

שינויים ב-API

  • הוספנו את CameraInfo.getTorchStrengthLevel, ‏ CameraInfo.getMaxTorchStrengthLevel ו-CameraControl.setTorchStrengthLevel כדי לאפשר התאמה אישית של בהירות הפנס (I00878)
  • נוסף API חדש, CameraController#setTapToFocusAutoCancelDuration, כדי שהמשתמשים יוכלו לשלוט בהתנהגות של הביטול האוטומטי באירועי "לחיצה למיקוד" ב-PreviewView. כברירת מחדל, CameraX מבטל את אירועי המיקוד אחרי 5 שניות (כלומר, המיקוד של המצלמה מתאפס) וה-API הזה מאפשר לשנות את משך הזמן הזה או להשבית את הביטול האוטומטי לגמרי. (Icf59a)
  • השם של FLASH_STATE_READY השתנה ל-NOT_FIRED, והשמות של שאר הקבועים ב-FlashState פושטו כדי שיהיה קל יותר לקרוא אותם. (I8771d)
  • ממשק API חשוף לשיפור בתאורה חלשה. מכשירים עם Android מגרסה 15 ואילך יכולים לספק תמיכה בשיפור התאורה. התכונה הזו יכולה לכוונן אוטומטית את הבהירות של התצוגה המקדימה, הווידאו או ניתוח התמונות בתנאי תאורה חלשה. אפליקציות יכולות להשתמש ב-API החדש כדי: 1. אפשר להשתמש ב-CameraInfo#isLowLightBoostSupported כדי לבדוק אם התכונה זמינה. 2. אפשר להשתמש ב-CameraControl#enableLowLightBoostAsync כדי להפעיל את המצב כשהמכשירים תומכים בו. 3. אפשר להשתמש ב-CameraInfo#getLowLightBoostState כדי לעקוב אחרי מצב שיפור התאורה החלשה. (I937ed)
  • הוספת מחלקות תאימות כדי לאפשר שאילתות מהירות יותר שאינן camera2 ב-camera-feature-combination-query. (Ie97ee)
  • באירועים של CameraController לחיצה למיקוד, ממשק API חדש, getTapToFocusInfoState(), חושף עכשיו גם את מיקום הלחיצה התואם על ידי החזרת LiveData של המחלקה TapToFocusInfo, בעוד שממשק ה-API הקודם, LiveData<Integer> שמחזיר getTapToFocusState(), הוצא משימוש לטובת ה-API החדש. (I238d2)

תיקוני באגים

  • תוקנה הבעיה שבה ייצוב התצוגה המקדימה לא הופעל כשהוא הופעל עם תוספים. (I24ad7)
  • תוקן אירוע של מצב מיקוד CameraController שלא מתאפס חזרה ל-TAP_TO_FOCUS_NOT_STARTED כש-CameraX מבטל אוטומטית אירוע מיקוד שמתרחש אחרי 5 שניות כברירת מחדל. (I31954)
  • תוקנה בעיה שבה התצוגה המקדימה קפאה כשמשתמשים ב-Zero Shutter Lag‏ (ZSL) אחרי כמה צילומים, בגלל משאבי תמונות שלא שוחררו. (Ic3c2a)
  • תוקנו בעיות שבהן סרטוני UHD במכשירים מסוימים מוצגים בגוון אדום כשהצינור כולל את OpenGL. (Idcedc)

גרסה ‎1.5.0-alpha05

‫15 בינואר 2025

‫androidx.camera:camera-*:1.5.0-alpha05 מופץ. גרסה ‎1.5.0-alpha05 מכילה את השמירות האלה.

שינויים ב-API

  • מוסיפים את VideoCapture.getSelectedQuality() כדי לדעת מהי האיכות שנבחרה על סמך QualitySelector. (I70508, b/204288986)
  • כשמפעילים צילום תמונה באמצעות ה-API של ImageCapture.OnImageCapturedCallback, אפשר להשתמש ב-ImageInfo ב-ImageProxy שמוחזר כדי לדעת אם הופעל פלאש באמצעות ה-API החדש של ImageInfo.getFlashState(). (Id2c61, b/380527406)
  • נוספה תמיכה בפורמט הפלט OUTPUT_IMAGE_FORMAT_NV21 עבור ImageAnalysis. (I484ab)
  • הסרת ההערה הניסיונית של פריט המידע שנוצר באופן אוטומטי featurecombinationquery (I4427f)
  • התאמת טווח יחס הזום שמותר ל-CameraControl לפי מאפיינים ספציפיים של תוספים כשמצב תוספים מופעל. (I85af1)

תיקוני באגים

  • הגרסה של compileSdk שודרגה ל-35 כדי להשתמש ב-API שקשור ל-Android 15. באפליקציות שמשתמשות בספריות CameraX צריך גם לשדרג את הגדרת התצורה של compileSdk. (Ic80cd)
  • הספרייה הזו משתמשת עכשיו באנוטציות של JSpecify nullness, שהן מסוג type-use. מפתחים ב-Kotlin צריכים להשתמש בארגומנט המהדר הבא כדי לאכוף שימוש נכון: -Xjspecify-annotations=strict (זוהי ברירת המחדל החל מגרסה 2.1.0 של מהדר Kotlin). (Idc6c6, b/326456246)

גרסה 1.5.0-alpha04

‫11 בדצמבר 2024

‫androidx.camera:camera-*:1.5.0-alpha04 מופץ. גרסה ‎1.5.0-alpha04 מכילה את השמירות האלה.

שינויים ב-API

  • חשיפת ImageCapture.Builder#setOutputFormat ו-ImageCaptureCapabilities#getSupportedOutputFormats כממשקי API יציבים (Ieb04a)
  • צריך להוסיף את VideoCapture.getResolutionInfo() כדי לקבל את פרטי הרזולוציה כש-VideoCapture מקושר ל-Lifecycle. (Icb478)
  • הפכנו את PreviewView.getScreenFlash ו-PreviewView.setScreenFlashOverlayColor לממשקי API יציבים. (I74fee)

תיקוני באגים

  • תוקנה בעיה שגרמה לכשל בצילום במכשיר Vivo 1610 כשצילמו תמונה עם פלאש בחושך. (I366f4)
  • תוקנה בעיה שבה הפנס נכבה באופן בלתי צפוי אחרי צילום תמונה ב-Redmi Note 6 Pro. (I2e0e8, b/377144569)
  • תוקנה בעיה במכשירי Pixel עם Android 15 שבה מצב לילה בתוספים לא הצליח לצלם תמונות סטילס עד שהמצלמה התמקדה באובייקט קרוב. (I228d4)
  • תוקנה התקלה בצילום תמונות סטילס כשהתוספים מופעלים ו-VideoCapture מקושר. (I5c745)
  • הופעלה תמיכה ב-UltraHDR לצילום תמונות סטילס בתוספים, אם המכשיר תומך בכך. (I48300)
  • תוקנה בעיה בתזמון הפלאש בצילום עם פלאש באמצעות CameraEffect, שמתמקדת בצילום תמונות במכשירי TCL. (I7698c)

גרסה ‎1.5.0-alpha03

‫30 באוקטובר 2024

‫androidx.camera:camera-*:1.5.0-alpha03 מופץ. גרסה ‎1.5.0-alpha03 מכילה את השמירות האלה.

שינויים ב-API

  • הוספת ממשקי API של פורמט פלט ל-RAW ול-RAW + JPEG ImageCapture, בדיקת יכולת המכשיר נחשפת ב-ImageCaptureCapabilities#getSupportedOutputFormats. האפשרות OUTPUT_FORMAT_RAW מיועדת לצילום תמונות בפורמט RAW, שהוא פורמט Adobe DNG, והאפשרות OUTPUT_FORMAT_RAW_JPEG מיועדת לצילום תמונות בפורמט RAW ו-JPEG בו-זמנית. ה-API החדש של ImageCapture#takePicture משמש לצילום תמונות בו-זמנית, והוא צריך לספק שני OutputFileOptions, הראשון לתמונת RAW והשני לתמונת JPEG. (Ib0f3d)

תיקוני באגים

  • תוקנה בעיה של חשיפת חסר בתצוגה המקדימה ובסרטון במכשירי TCL כש-VideoCapture מופעל. (Id7a64)
  • תוקנה הבעיה שבה הפעלת startFocusMetering עם PreviewView.getMeteringPointFactory לא מקבלת את קואורדינטות החיישן הנכונות כשאפקט מופעל או כש-4 תרחישי שימוש קשורים (שיתוף סטרימינג). (I916c5, b/345993685)
  • תוקן: האירוע VideoRecordEvent.Finalize.ERROR_INSUFFICIENT_STORAGE לא מופעל כשמקליטים סרטון ואין מספיק נפח אחסון פנוי. (I35779, b/356399842)

גרסה 1.5.0-alpha02

‫2 באוקטובר 2024

‫androidx.camera:camera-*:1.5.0-alpha02 מופץ. גרסה ‎1.5.0-alpha02 מכילה את השמירות האלה.

תכונות חדשות

  • ממשקי API חדשים לשליחת שאילתות לגבי תכונות המצלמה שנתמכות במכשיר. לדוגמה, בדיקה אם אפשר להפעיל HDR ו-60FPS בו-זמנית. הוא כולל 2 פריטי מידע: camera-feature-combination-query ו-camera-feature-combination-query-play-services. זוהי גרסה תואמת של ממשק ה-API‏ CameraManager#getCameraDeviceSetup#isSessionConfigurationSupported של camera2 עם נתונים נוספים שסופקו על ידי Google Play Services.

תיקוני באגים

  • תוקנה בעיה ב-Preview/VideoCapture קצב הפריימים של היעד במכשירים ברמת LEGACY. קצב הפריימים המטורגט שהוגדר באמצעות ה-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)
  • תוקנה בעיה שבה הניסיון השני להקליט סרטון נכשל במכשיר Oppo A5 (CPH1931). (I181d6)

גרסה ‎1.5.0-alpha01

‫4 בספטמבר 2024

‫androidx.camera:camera-*:1.5.0-alpha01 מופץ. גרסה ‎1.5.0-alpha01 מכילה את השמירות האלה.

תכונות חדשות

  • פריט מידע חדש, camera-compose, פורסם עבור CameraX Viewfinder Compose Adapter, שמציג סטרימינג של תצוגה מקדימה מ-CameraX SurfaceRequest מ-camera-core. (I8666e)
  • נוסף רכיב קומפוזבילי חדש, CameraXViewfinder, שפועל כרכיב קומפוזבילי אידיומטי שמתאים את SurfaceRequest של CameraX לרכיב הקומפוזבילי Viewfinder. (I4770f)

שינויים ב-API

  • מספק API להגדרת הקומפוזיציה לצילום וידאו בשתי מצלמות בו-זמנית. ההגדרות כוללות ערך אלפא למיזוג, היסט בקואורדינטות x ו-y, וקנה מידה של הרוחב והגובה של חלון התצוגה של פריים המצלמה. ההיסט, הרוחב והגובה מצוינים בקואורדינטות מנורמלות של המכשיר. (Ia2b8a)
  • הגדרת CameraProvider.getCameraInfo כ-API רשמי. (I901cd)
  • הוספנו את ה-API‏ PendingRecording.withAudioEnabled(boolean initialMuted) כדי לשלוט במצב ההשתקה הראשוני. (I635c3, ‏ b/354829267)

תיקוני באגים

  • תוקנה הקריסה שמתרחשת כשמפעילים את bindToLifecycle עם LifecycleOwner שנהרס. (I6e6d8)
  • תוקנה בעיה שבה התצוגה המקדימה היא מסך שחור במצלמה הקדמית בזמן קישור עם VideoCapture במכשיר Motorola Edge 20 Fusion. (I1fe88)
  • ביצענו אופטימיזציה להגדרות של זיהוי תנועות זום ב-PreviewView כדי לשפר את החלקות. (I04ffc)

גרסה 1.4 של המצלמה

גרסה 1.4.2

‫26 במרץ 2025

‫androidx.camera:camera-*:1.4.2 מופץ. גרסה 1.4.2 מכילה את ה-commits האלה.

תיקוני באגים

  • תוקנה בעיה שבה התצוגה המקדימה קפאה כשמשתמשים ב-ImageAnalysis עם סטרימינג אחר שמשתמש ב-TEMPLATE_RECORD במכשיר Samsung Galaxy M55. (Ic1a6a, b/395822788)

גרסה 1.4.1

‫11 בדצמבר 2024

‫androidx.camera:camera-*:1.4.1 מופץ. גרסה 1.4.1 מכילה את השמירות האלה.

תיקוני באגים

  • תוקנה בעיה במכשירי Pixel עם Android 15 שבה מצב לילה בתוספים לא הצליח לצלם תמונות סטילס עד שהמצלמה התמקדה באובייקט קרוב. (I228d4)
  • תוקנה התקלה ב-ImageCapture#takePicture כשהתוספים מופעלים ו-VideoCapture מקושר. (I5c745)

גרסה 1.4.0

‫30 באוקטובר 2024

‫androidx.camera:camera-*:1.4.0 מופץ. גרסה 1.4.0 מכילה את ה-commits האלה.

שינויים חשובים מאז גרסה 1.3.0

גרסה 1.4.0 של CameraX כוללת עדכונים מרגשים. כך זה נראה:

התכונה העיקרית: וידאו HDR באיכות 10 ביט:

  • מצלמים בקלות תמונות וסרטונים מדהימים ב-HDR.
  • תומך ב-HLG ובקידוד HEVC של 10 ביט.
  • ליהנות מתצוגה מקדימה של HDR באיכות 10 ביט ולבדוק את יכולות המכשיר.
  • התכונה פועלת עם תמונות בפורמט UltraHDR וסרטונים ב-HDR במגוון הולך וגדל של מכשירים.

תכונות מגניבות נוספות:

  • תוספי Kotlin: נוספו פונקציות ההשעיה takePicture ו-awaitInstance.
  • אפקטים בזמן אמת: אפשר להוסיף אפקטים כמו סימני מים והדגשת אובייקטים.
  • ‫CameraController API: אמצעי בקרה חדשים להגדרת צילום וידאו.
  • ייצוב התצוגה המקדימה: שליחת שאילתה לגבי יכולת המכשיר והפעלת הייצוב.
  • שיפורים ב-VideoCapture: שליטה מדויקת יותר באיכות וגישה לרזולוציות גבוהות יותר.
  • שילוב של תוספי CameraX: שילוב חלק עם VideoCapture ותכונות חדשות של ImageCapture.
  • ממשק API לצליל הצמצם: בודקים בקלות את הדרישות האזוריות לגבי צליל הצמצם.
  • הבהוב מסך: תמונות משופרות בתאורה חלשה במצלמות קדמיות.
  • ממשקי 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 לא מקבלת את קואורדינטות החיישן הנכונות כשאפקט מופעל או כש-4 תרחישי שימוש קשורים (שיתוף סטרימינג). (I916c5, b/345993685)

גרסה ‎1.4.0-rc03

‫2 באוקטובר 2024

‫androidx.camera:camera-*:1.4.0-rc03 מופץ. גרסה ‎1.4.0-rc03 מכילה את השמירות האלה.

תיקוני באגים

  • הוספנו פונקציות של פלאש/פנס/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 מכילה את ה-commits האלה.

תיקוני באגים

  • תוקנה הקריסה שמתרחשת כשמפעילים את bindToLifecycle עם LifecycleOwner שנהרס. (I6e6d8)
  • נוספה אנימציית חשיפה ב-ScreenFlashView עבור ScreenFlash#apply, שגם מתקנת באגים שנגרמו כתוצאה מכך שהשינוי בבהירות הושלם באופן אסינכרוני לאחר זמן מה. (I37cdb)
  • שיפור החלקות של הזום על ידי שינוי הגדרות הזום במסגרת במכשירים נתמכים.

גרסה ‎1.4.0-rc01

‫7 באוגוסט 2024

‫androidx.camera:camera-*:1.4.0-rc01 מופץ. גרסה ‎1.4.0-rc01 מכילה את השמירות האלה.

תכונות חדשות

  • הוספנו את CameraInfo.getCameraInfo הניסיוני כדי לספק מידע ספציפי על המצלמה בלי צורך לקשר תרחישי שימוש למצלמה. (I550d1)

שינויים ב-API

  • הוספנו את ממשקי ה-API‏ PreviewView.getScreenFlash ו-PreviewView.setScreenFlashOverlayColor למקרים שבהם ScreenFlashView לא נוסף באופן מפורש. (I43945)

תיקוני באגים

  • תוקנו בעיות בחשיפה ובגוון הצבע כשמצלמים תמונה עם פלאש בתאורה חלשה, כשהתרחיש לדוגמה של VideoCapture מוגדר. (Ic9814)
  • תוקנה הבעיה שבה הפרעה לבקשה של takePicture כשהתוספים מופעלים עלולה לגרום לכך שלא תתקבל תוצאה, וייתכן שהבקשה הבאה של takePicture לא תפעל יותר. (Iae78f)
  • תוקנה בעיה של דליפת זיכרון שמתרחשת כשהתוספים מופעלים. (Iab276)
  • תוקנה תקלה בתוספים של CameraX במכשירים כמו Pixel 7/8 וסדרת Samsung Galaxy S24. הבעיה, שנובעת מבעיית המרה של 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 לתרחיש השימוש של גרסת טרום-השקה (Preview). היא תתמוך בהפעלה ובהשבתה של מצב השתקפות במראה בסטרימינג של תצוגה מקדימה באמצעות 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 מופעל במכשירים מסוימים. (למשל, 4,000x3,000 ב-Samsung A32 5G). (Ie3ed3, b/337336152)
  • תוקנה קריסה שמתרחשת כשמצלמים תמונה עם תצוגה מקדימה, ImageCapture ו-VideoCapture(UHD) קשורים ב-Pixel 4XL API29. (I5b288)
  • תמיכה במכשירים וירטואליים: ההקשר שמועבר אל ProcessCameraProvider ישמור את מזהה המכשיר כדי להבטיח את הפונקציונליות בסביבה של מכשיר וירטואלי. (I5ba48)

גרסה 1.4.0-alpha05

‫17 באפריל 2024

‫androidx.camera:camera-*:1.4.0-alpha05 מופץ. גרסה ‎1.4.0-alpha05 מכילה את השמירות האלה.

תכונות חדשות

  • המרנו את ProcessCameraProvider להטמעה של Kotlin. (I46d4f)
  • הוספנו פונקציות השעיה של ImageCapture.takePicture כדי לאפשר קריאה להן באופן אידיומטי של Kotlin. (I920be)

שינויים ב-API

  • הוספת ממשקי API של פורמט פלט ל-ImageCapture, והוספת השיטה getSupportedOutputFormats ל-ImageCaptureCapabilities כדי לשלוח שאילתות לגבי יכולות המכשיר. ערך ברירת המחדל של פורמט הפלט הוא OUTPUT_FORMAT_JPEG, שבו תמונות SDR נשמרות בפורמט JPEG. כשהמכשיר תומך ב-Ultra HDR ופורמט הפלט מוגדר כ-OUTPUT_FORMAT_JPEG_ULTRA_HDR, CameraX יצלם תמונות דחוסות ב-Ultra HDR באמצעות פורמט התמונה JPEG/R. הפורמט תואם לדורות קודמים עם פורמט SDR JPEG ותומך ברינדור תוכן ב-HDR. זה אומר שבאפליקציות או במכשירים ישנים יותר, התמונות מופיעות בצורה חלקה כ-JPEG רגיל. באפליקציות ובמכשירים שעודכנו כדי לתמוך באופן מלא בפורמט, התמונות מופיעות כ-HDR. (I5de50)
  • הוספת PhysicalCameraInfo ב-CameraInfo כדי לשלוח שאילתות לגבי מידע על המצלמה הפיזית, והוספת setter/getter של מזהה המצלמה הפיזית ב-CameraSelector (Ic5b90)
  • מחליפים את CameraController#COORDINATE_SYSTEM_VIEW_REFERENCED ב-ImageAnalysis#COORDINATE_SYSTEM_VIEW_REFERENCED. הערך של הקבוע נשאר ללא שינוי. ככה אפשר לאחד את כל הקבועים במקום אחד. (I890bb)
  • ממשק ה-API החדש של RetryPolicy מאפשר למפתחים להתאים אישית את התנהגות הניסיונות החוזרים לאתחול של 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)
  • מוסיפים API של PreviewView#getSensorToViewTransform(). המטריצה מייצגת את הטרנספורמציה מהקואורדינטות של חיישן המצלמה לקואורדינטות של PreviewView. אפשר להשתמש בזה כדי להמיר קואורדינטות מ-UseCase אחד לאחר. לדוגמה, המרת הקואורדינטות של אובייקטים שזוהו ב-ImageAnalysis לשכבת-על של PreviewView. (I947ab)
  • צריך להפוך את ה-API של camera-viewfinder-core ליותר כללי כדי ש-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 ו-Vivo X60 Pro. הפעולה הזו יכולה לפתור את הבעיה של תמונות גדולות באופן חריג במכשירים האלה. (I82247, ‏ b/288828159)
  • תוקנה הבעיה שקשורה למטא-נתונים שגויים של תמונות JPEG במכשירי Samsung A24. התיקון מאפשר ל-CameraX לשמור את תמונת ה-JPEG, או להחזיר אובייקטים נכונים של מפת סיביות (Bitmap) כשקוראים לפונקציה ImageProxy.toBitmap() במכשירי Samsung A24. (I8d6eb, b/309005680)
  • אם התמונה שצולמה גדולה מ-10MB, צריך לבדוק אם נתוני ה-JPEG לא תקינים בכל מכשירי סמסונג. הפעולה הזו יכולה לפתור בעיה של תמונה גדולה באופן חריג במכשירי סמסונג. (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 של ממשק ה-API של CameraEffect, שמשנה את הפלט של המצלמה ביעילות.
  • ‫OverlayEffect: לציור שכבות-על באמצעות Canvas API של Android. ההרשאה הזו מאפשרת לאפליקציה להוסיף סימן מים או להדגיש אובייקטים שזוהו בפלט של המצלמה.
  • ממשקי API של DynamicRange לתרחיש השימוש של התצוגה המקדימה: עכשיו אפשר להגדיר את הטווח הדינמי בתרחיש השימוש של התצוגה המקדימה, בלי קשר לתרחיש השימוש של הווידאו. האפשרות הזו מאפשרת טווחים דינמיים של HDR כמו HLG10 לתצוגה מקדימה בלבד. ממשקי API חדשים זמינים גם ב-CameraInfo כדי לשלוח שאילתות לגבי טווחי הדינמיות שכל מצלמה תומכת בהם.

שינויים ב-API

  • השם של ScreenFlashUiCompleter השתנה ל-ScreenFlashListener, והפרמטר ScreenFlashUiCompleter#getExpirationTimeMillis הועבר ל-expirationTimeMillis של ScreenFlash#apply. (I13944)
  • נוספו ממשקי API חדשים שמאפשרים להגדיר טווח דינמי בתרחיש לדוגמה של תצוגה מקדימה, ולשלוח שאילתות לגבי טווחים דינמיים שנתמכים בכל מצלמה. כך אפשר להשתמש בטווחים דינמיים של HDR, כמו HLG10, בתרחיש לדוגמה של תצוגה מקדימה בלבד, בלי צורך לקשר VideoCapture בו-זמנית. (If25e3)
  • השם של getMirroring() שונה ל-isMirroring() (I47063)
  • נוספה תמיכה בהערכת זמן האחזור של צילום תמונות סטילס בזמן אמת ב-CameraX. תוספי המצלמה מאפשרים לאפליקציות להשתמש ב-API שמספק הערכה של משך הזמן שייקח לצלם תמונה. ההערכה מביאה בחשבון את תנאי הסביבה הנוכחיים, את מצב המצלמה ואת הזמן שנדרש לעיבוד בקשות לצילום של כמה פריימים, וגם את הזמן הנוסף לקידוד מאגרים מעובדים, אם צריך. (I05c3a)
  • שינינו את השם של ScreenFlashUiControl ל-ScreenFlash, של ScreenFlashUiControl#applyScreenFlashUi ל-ScreenFlash#apply ושל ScreenFlashUiControl#clearScreenFlashUi ל-ScreenFlash#clear, והוספנו את ה-method‏ 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 בצד ה-framework ויסנכרן את התזמון עם השינויים בממשק המשתמש של האפליקציה לפי הצורך (למשל, טריגר של AE precapture אחרי שינוי הצבע או הבהירות של מסך האפליקציה). האפליקציות יצטרכו להוסיף רק את ההטמעות של ממשק המשתמש שלהן בממשק ScreenFlashUiControl שסופק ל-CameraX. (I8ae84)
  • נוספה תמיכה בהטמעה בצד ממשק המשתמש של התכונה "הבהוב מסך" ב-CameraX. אפליקציות יוכלו לקבל הטמעה בסיסית של ImageCapture.ScreenFlashUiControl מ-PreviewView או מ-ScreenFlashView שנוסף לאחרונה, שיוסיף תצוגה של שכבת-על בצבע אחד ויגדיל את בהירות המסך במהלך צילום תמונה עם הבהוב מסך. (I1810e)

שינויים ב-API

  • תמיכה בתכונות חדשות של תוספים(תצוגה מקדימה של תמונה לאחר הצילום והתקדמות תהליך הצילום): נוספו ממשקי API של ImageCapture#getImageCaptureCapabilities() לאפליקציות כדי לשלוח שאילתות לגבי היכולות של התצוגה המקדימה של תמונה לאחר הצילום והתקדמות תהליך הצילום. אפליקציות יכולות להפעיל את התצוגה לאחר הצפייה באמצעות ImageCapture.Builder#setPostviewEnabled(). אפשר לבחור את גודל התצוגה המקדימה של הפוסט באמצעות ImageCapture.Builder#setPostviewResolutionSelector(). כשמפעילים את takePicture(), אפשר להטמיע את onPostviewBitmapAvailable ואת onCaptureProcessProgressed ב-OnImageSavedCallback או ב-OnImageCapturedCallback כדי לקבל את ההתראה על התקדמות העיבוד והתצוגה המקדימה, אם יש תמיכה. (I5cd88)
  • ממשקי API לחישוב טרנספורמציה של קואורדינטות מהחיישן למאגר הנתונים הזמני הנוכחי, עם דגל שמציין אם ה-Surface מכיל את פרטי הכיוון של המצלמה. (I59096)
  • חשיפת ה-API לשאילתה PreviewCapabitlity בתצוגה המקדימה UseCase. (Ie5b6c)
  • הוספנו ממשקי API כדי לתמוך באיכויות נוספות של VideoCapture. אפשר להשתמש ב-Recorder.Builder#setVideoCapabilitiesSource(int) עם VIDEO_CAPABILITIES_SOURCE_CODEC_CAPABILITIES כדי ליצור מופע של Recorder שתומך ביותר איכויות מאשר VIDEO_CAPABILITIES_SOURCE_CAMCORDER_PROFILE. תרחיש נפוץ הוא כשהאפליקציה מנסה להקליט סרטון באיכות UHD בכל פעם שאפשר, אבל ה-CamcorderProfile של המכשיר לא כולל הגדרות UHD, למרות שהקודק מסוגל להקליט סרטון באיכות UHD. (Iedbe2, b/263961771)
  • מוסיפים את ה-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)
  • תוקנה בעיה בביצועים שבה העומס על המעבד וצריכת החשמל גדלו כשהתוספים הופעלו. (Ibdccb)
  • הוספנו את Snapdragon 480 ל-CameraUseInconsistentTimebaseQuirk. העדכון הזה פותר בעיה ב-Android 12 במכשירים עם ערכת השבבים הזו, שבה האודיו בהקלטות מוסט לפי משך הזמן שבו המכשיר נמצא במצב מושהה. (I58010)

גרסה 1.4.0-alpha02

‫18 באוקטובר 2023

‫androidx.camera:camera-*:1.4.0-alpha02 מופץ. גרסה 1.4.0-alpha02 מכילה את השינויים האלה.

שינויים ב-API

  • משנים את שם ה-API ל-setCameraOpenRetryMaxTimeoutInMillisWhileResuming ואת שם הארגומנט. (I72370)
  • הוספת ממשקי API כדי לשלוח שאילתות לגבי יכולות המכשיר ולהפעיל ייצוב של הסרטון או התצוגה המקדימה. (I87544)
  • לספק API להתאמה אישית של הזמן הקצוב לתפוגה של ניסיון חוזר לפתיחת המצלמה. (I0c642)
  • השקנו את ProcessCameraProvider.shutdownAsync כ-API לבדיקה ציבורית כדי לאפשר שימוש בספק המצלמה של התהליך בחבילות מקרים לבדיקה, שבהן יכול להיות שיהיה צורך להפעיל את CameraX בדרכים שונות בין הבדיקות. (I9eca7)
  • הוספת ממשקי API להגדרת הטווח הדינמי, קצב הפריימים ומצב ההשתקפות במראה של צילום הווידאו. (Ifb8f7)
  • הוצאה משימוש של OutputSize והחלפה ב-ResolutionSelector. ‫ResolutionSelector היא דרך מקיפה יותר לבחור רזולוציות, והיא תואמת ל-API של camera-core. (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 ממתינות עד שהמצלמה מוכנה. הוספנו גם מידע על איך להשיג את שדה הראייה המקסימלי באמצעות ה-API של #takePicture. (I23588)

גרסה 1.3

גרסה 1.3.4

‫12 ביוני 2024

‫androidx.camera:camera-*:1.3.4 מופץ. גרסה 1.3.4 מכילה את השמירות האלה.

תיקוני באגים

  • תוקנה הבעיה שבה getZoomRatio החזיר ערך מופחת באופן שגוי כשמחילים יחס זום הולך וגדל. (I4aa0d, b/317543616)
  • תוקנה בעיה שבה צילום תמונה סטטית או לחיצה למיקוד לא השתמשו בערכי מצב הייצוב או ה-FPS של הבקשה החוזרת, מה שעלול ליצור מחדש סשן צילום ולגרום לבעיות זמן אחזור או להקפאת התצוגה המקדימה במכשירים מסוימים. (I7dc0b)
  • תוקנה הבעיה שבה קצב הפריימים מוגדר לערך נמוך יותר כשמתבצעת קריאה ל-setTargetFrameRate עם FRAME_RATE_RANGE_UNSPECIFIED. (I78c61)

גרסה 1.3.3

‫17 באפריל 2024

‫androidx.camera:camera-*:1.3.3 מופץ. גרסה 1.3.3 מכילה את השמירות האלה.

תיקוני באגים

  • תוקנה בעיה בבחירת הרזולוציה של ImageAnalysis שקשורה להגדרת ברירת המחדל של רזולוציית היעד של המנתח: רזולוציית היעד נשמרה באופן שגוי כ-‎640x480 גם אם האפליקציות הגדירו הגדרה אחרת של ברירת המחדל של רזולוציית המנתח. אם באפליקציות נתקלים בבעיה הזו (1.3.0 עד 1.3.2) ואי אפשר לשדרג כדי להשתמש בגרסאות החדשות יותר שמכילות את הפתרון, אפשר לעקוף את הבעיה על ידי הגדרה ישירה של ResolutionSelector עם הרזולוציה המועדפת ו-AspectRatioStrategy תואם ל-ImageAnalysis UseCase. (I81f72, b/330091012)

גרסה 1.3.2

6 במרץ 2024

‫androidx.camera:camera-*:1.3.2 מופץ. גרסה 1.3.2 מכילה את השמירות האלה.

תיקוני באגים

  • תוקנה בעיה במטא-נתונים של JPEG במכשירי Samsung A24. עכשיו CameraX שומרת תמונות בצורה מדויקת, והפונקציה ImageProxy.toBitmap() מחזירה אובייקטים נכונים של מפת סיביות (bitmap). (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)

הנה כמה תוצאות לדוגמה בתרחישים שונים:

  • ‫4 UseCases: Preview + ImageCapture + ImageAnalysis + VideoCapture

    • ‫Google Pixel 7: בערך 430 מילישניות עד 60 מילישניות
    • ‫Samsung Galaxy S23 Ultra: בערך 540 מילישניות עד 45 מילישניות
    • ‫Samsung A53 5G: בערך 115 מילישניות עד 70 מילישניות
  • שלושה UseCases: Preview + ImageCapture + ImageAnalysis

    • ‫Google Pixel 7: בערך 9 מילישניות עד 7 מילישניות
    • ‫Samsung Galaxy S23 Ultra: בערך 6 מילישניות עד 5 מילישניות
    • ‫Samsung A53 5G: בערך 32 מילישניות עד 12 מילישניות
  • הוספנו את Snapdragon 480 ל-CameraUseInconsistentTimebaseQuirk. העדכון הזה פותר בעיה ב-Android 12 במכשירים עם ערכת השבבים הזו, שבה האודיו בהקלטות מוסט לפי משך הזמן שבו המכשיר נמצא במצב מושהה. (I58010)

גרסה 1.3.0

‫18 באוקטובר 2023

‫androidx.camera:camera-*:1.3.0 מופץ. גרסה 1.3.0 מכילה את השינויים האלה.

שינויים חשובים מאז גרסה 1.2.0

גרסה ‎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 וגם עם Preview. תוקנה גם בעיה של מסך שחור במכשירים מדור קודם כששיתוף הסטרימינג מופעל.
  • תוקנה בעיה שקשורה לתמונות 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. היא גורמת לכך שהתמונות שצולמו יהיו בגודל קובץ גדול של כ-13MB במכשיר S22 SM-S901B/DS. הנתונים המיותרים של הספרה 0 יוסרו כדי שגודל הקובץ של קובצי התמונה שצולמו יהיה רגיל. (I73be9, b/288828159)
  • תוקנה בעיה שקשורה לתמונות JPEG גדולות שצולמו במכשירים מסדרות Samsung A5, ‏ A52, ‏ A70 ו-A72. תמונות ה-JPEG שצולמו מכילות נתוני ריפוד מיותרים של 0 בפלח הנתונים הדחוסים של JFIF. היא גורמת לכך שהתמונות שצולמו יהיו בגודל קובץ קיצוני (למשל כ-32MB או אפילו 96MB). הנתונים המיותרים של הספרה 0 יוסרו כדי שגודל קובץ התמונה של התמונות שצולמו יהיה רגיל. (I97c4d, b/288828159)
  • תוקנה הקריסה ברמת שפת המכונה שמתרחשת כשמצלמים תמונות כשהתוספים מופעלים (I698f5)

גרסה ‎1.3.0-beta02

26 ביולי 2023

‫androidx.camera:camera-*:1.3.0-beta02 מופץ. גרסה 1.3.0-beta02 מכילה את השינויים האלה.

תיקוני באגים

  • שימוש בפנס כפלאש בגרסאות של Pixel 4 ו-Pixel 5 כדי לשפר את איכות הצילום בתאורה חלשה (I56ff5, ‏ b/280221967)
  • תוקנה בעיה שקשורה לתמונות JPEG גדולות שצולמו במכשירי Samsung מסדרת A5 ‏ (2017). תמונות ה-JPEG שצולמו מכילות נתוני ריפוד מיותרים של 0 בפלח הנתונים הדחוסים של JFIF. התמונות שצולמו יהיו בגודל של כ-32MB. הנתונים המיותרים של הספרה 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 מייצגת את הטווח הדינמי של התמונות. אפשר להשתמש בזה כדי לבחור פורמטים של טווח דינמי גבוה (HDR) כפלט של VideoCapture עד VideoCapture.Builder#setDynamicRange(). (Ib0377)
  • הוספנו ממשק API של isImageAnalysisSupported ל-ExtensionsManager, שבאמצעותו אפליקציות יכולות לקבוע אם אפשר לקשר תרחיש לדוגמה של ImageAnalysis יחד עם תצוגה מקדימה ו-ImageCapture כשהתוספים מופעלים. (I1bc63)
  • אפשר להשתמש במחלקה החדשה VideoCapabilities שהתקבלה מ-Recorder כדי לשלוח שאילתות לגבי טווחים דינמיים ואיכויות שנתמכים להקלטת וידאו במכשיר. ה-methods‏ 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 מכילה את השינויים האלה.

תכונות חדשות

  • ה-API החדש של VideoCapture.Builder# setTargetFrameRate(Range) מאפשר לצלם הקלטות וידאו בקצבי פריימים אחרים מלבד ברירת המחדל של המכשיר. אפשר לשלוח שאילתה לגבי קצבי הפריימים הזמינים להקלטות באמצעות ה-API החדש של CameraInfo#getSupportedFrameRates().

שינויים ב-API

  • שינינו את השם של הקבועים ResolutionSelector#HIGH_RESOLUTION_FLAG_OFF/ON ל-ALLOWED_RESOLUTIONS_NORMAL/SLOW ואת השם של הפונקציה setHighResolutionEnabledFlag של ה-builder ל-setAllowedResolutionMode. (Iae817)
  • הפונקציה CameraInfo#getSupportedFrameRateRanges() מחזירה עכשיו Set במקום List כדי לייצג טוב יותר את העובדה שהטווחים לא מסודרים. (I02f43)
  • צריך להוסיף מאזין שגיאות אל CameraEffect כדי לטפל בשגיאות שבעקבותיהן אי אפשר לשחזר (Ice471)
  • הוספת constructor ציבורי ב-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 הם null. (Idf124, ‏ b/282025204)
  • תוקנה הבעיה שבה Preview.setSurfaceProvider(null) לא משהה את התצוגה המקדימה בתוספים (Ia903e)
  • תוקנה בעיה שבה ConcurrentModificationException נזרק במהלך פתיחת המצלמה כש-VideoCapture קשור. (Ic8ac4)

גרסה 1.3.0-alpha06

19 באפריל 2023

‫androidx.camera:camera-*:1.3.0-alpha06 מופץ. גרסה 1.3.0-alpha06 מכילה את השינויים האלה.

תכונות חדשות

  • "מצלמה בו-זמנית" היא תכונה חדשה שהושקה ב-Android 11. היא מאפשרת סטרימינג בו-זמני ממצלמות של מכשירים, למשל, הפעלה בו-זמנית של המצלמה הקדמית והמצלמה האחורית במכשיר. ‫CameraX תומך כרגע רק בשתי מצלמות בו-זמנית, מה שמאפשר לשתי מצלמות לפעול בו-זמנית, עם עד שני {@link UseCase}s שקשורים לכל אחת מהן. הרזולוציה המקסימלית היא 720p או 1440p. פרטים נוספים זמינים בקישור הבא, בקטע CameraManager#getConcurrentCameraIds()‎
  • אנחנו משיקים את ResolutionSelector API החדש, שכולל את התכונות הבאות:
    • אפליקציות יכולות לציין אסטרטגיות של יחס גובה-רוחב ורזולוציה כדי לבחור את הרזולוציה שהכי מתאימה לצרכים שלהן.
    • כל הפרמטרים של הגודל ויחס הגובה-רוחב מבוטאים בקואורדינטות של חיישן המצלמה במכשיר.
    • אפליקציות יכולות להטמיע מסנן רזולוציה בהתאמה אישית כדי לסדר את הגדלים הנתמכים בסדר הרצוי.
    • אפליקציות יכולות גם להפעיל צילום ברזולוציה גבוהה כדי לקבל תמונות ברזולוציה גבוהה יותר. עם זאת, חשוב לזכור ששימוש ברזולוציה גבוהה עלול להאט את זמני הצילום.
    • נוספו ממשקי API לשיקוף של VideoCapture. כברירת מחדל, סרטונים שצולמו באמצעות VideoCapture לא מוצגים בתמונת ראי. עם זאת, כברירת מחדל, התצוגה המקדימה של המצלמה הקדמית מוצגת כתמונת ראי. ממשקי API לשיקוף של VideoCapture מאפשרים להתיישר לפי התצוגה המקדימה של המצלמה כשמשתמשים במצלמה הקדמית. יש שלוש MirrorMode, OFF, ON ו-ON_FRONT_ONLY. כדי להתאים לתצוגה המקדימה של המצלמה, מומלץ להשתמש ב-ON_FRONT_ONLY, כלומר שיקוף לא מופעל במצלמה האחורית אבל מופעל במצלמה הקדמית.

שינויים ב-API

  • חשפנו ממשק API חדש של ResolutionSelector. אפליקציות יכולות לציין אסטרטגיות של יחס גובה-רוחב ורזולוציה עם כללי חלופות או מסנן רזולוציה בהתאמה אישית כדי לקבל את התוצאות הרצויות. אפליקציות יכולות לציין דגל כדי להפעיל צילום ברזולוציה גבוהה. כך CameraX תוכל לבחור רזולוציות גבוהות יותר כשמצלמים תמונות או סרטונים. עם זאת, חשוב לזכור ששימוש ברזולוציה גבוהה עלול להאט את זמני הצילום. (Ibed95)
  • עכשיו אפשר לשלוח שאילתות לגבי טווחי ה-FPS שנתמכים על ידי אלגוריתם ה-AE באמצעות CameraInfo#getSupportedFrameRateRanges(). (Iaa67f)
  • איחוד השמות של כל השיטות של קצב הפריימים לשימוש ב-FrameRate. תקן את השגיאה ב-javadoc ב-VideoCapture#getTargetFrameRate() (I83304)
  • הוצאנו משימוש את ה-API מהדור הקודם של setTargetAspectRatio ו-setTargetResolution. במקומו צריך להשתמש ב-API החדש ResolutionSelector. (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)
  • הוספת ה-API של setTargetFrameRate() ב-VideoCapture.Builder וה-API של getTargetFramerate() ב-VideoCapture (I109d4)
  • צריך להגדיר את SurfaceOutput כך שיאריך את Closable ולהסתיר את ה-constructor הציבורי של urfaceOutput.Event. (I60ea8)
  • הוספנו את Recording.mute כדי להשתיק או לבטל את ההשתקה של הקלטה שנמצאת בתהליך עיבוד. השדה RecordingStats יכיל את הערך AudioStats.AUDIO_STATE_MUTED כשההקלטה שבעיבוד מושתקת באופן מפורש. (Ie17fc)
  • הפרמטר #setEffects() הוגדר כ-non-null. הוספת API של #clearEffects() לניקוי אפקטים. האפליקציה צריכה להפעיל את #clearEffects() כדי להסיר אפקטים. (I4b4d9)
  • הוספת בנאי שני ל-ViewfinderSurfaceRequest.Builder כדי להשתמש ב-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

  • הוספנו VideoCapture ממשקי API לסיבוב, כולל 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 יופעלו על UseCase של 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 מכילה את השינויים האלה.

תכונות חדשות

תכונה חדשה שמאפשרת לשתף סטרימינג אחד עם כמה UseCases, וכך תומכת בשילובים של Surface שלא נתמכו בעבר.

  • בעבר, כשבוצע קישור של "Preview, VideoCapture, ImageAnalysis" ברמת החומרה FULL ומטה של המצלמה, או קישור של "Preview, VideoCapture, ImageCapture" ברמת החומרה LEGACY, ‏CameraX זרק את השגיאה IllegalArgumentException.
  • בהתנהגות החדשה, הקישורים יפעלו בלי להציג חריגות. במקום זאת, CameraX משתמש ב-OpenGL כדי להעתיק שידור משותף גם לתצוגה המקדימה וגם ל-VideoCapture.
  • האפליקציה עלולה לחוות עלייה בזמן האחזור ובצריכת החשמל בגלל העלות של העתקת המאגר.

שינויים ב-API

  • הוספת API להמרת ImageProxy ל-Bitmap. הפורמטים הנתמכים של ImageProxy הם ImageFormat.YUV_420_888 ו-PixelFormat.RGBA_8888. אם הפורמט לא תקין, תתקבל השגיאה IllegalArgumentException. (Ic7110)
  • מוסיפים את CoroutineCameraViewfinder כדי לתמוך בהגדרת תצוגת הצילום באמצעות פונקציות השעיה ב-Kotlin. (I657bc)
  • הוספת constructor ציבורי חדש ל-ViewfinderSurfaceRequest. היא מספקת גמישות כשהמשתמש לא יכול לספק את CameraCharacteristics. (Ie6549)

תיקוני באגים

  • תוקנה קריסה של התוספים שמתרחשת בחלק ממכשירי סמסונג כשמשהים או מפעילים מחדש את האפליקציה מהר מדי (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)
  • מוסיפים API של ImageProcessor. הממשק הזה מיועד להוספת אפקטים של עיבוד לאחר הצילום לצינור עיבוד הנתונים של ImageCapture. (I575c6)
  • הוספנו את ה-API‏ Recorder.Builder.setAspectRatio() שאפשר לשלב עם QualitySelector כדי לתמוך ברזולוציות נוספות של סרטונים. (I8a082)
  • הוספנו את Recorder.Builder#setTargetVideoEncodingBitRate כדי להגדיר את קידוד הסרטון לטירגוט BitRate ואת Recorder#getTargetVideoEncodingBitRate כדי לקבל את קצב העברת הנתונים של קידוד הסרטון לטירגוט. (I5984d)

תיקוני באגים

  • תוקנה בעיה שבה ImageCapture נכשל כשאין מבזק ומצב המבזק מופעל. (I9e8b4, b/263391112)
  • תוקנה בעיה שגרמה לפגיעה בתמונות JPEG אם נכתבו נתוני מיקום Exif במכשירי Samsung Android 12 מסוימים. ‫(Ib7086, ‏ b/263747161, ‏ b/263289024)
  • כשמגדירים פנס/זום לפני שהמצלמה מסיימת את תהליך האתחול, למשל כשמפעילים את CameraController#enableTorch, הפעולה שבהמתנה נשמרת במטמון ונשלחת אחרי שהאתחול מסתיים. (I11e92, b/264157663)

גרסה ‎1.3.0-alpha02

‫7 בדצמבר 2022

‫androidx.camera:camera-*:1.3.0-alpha02 מופץ. גרסה 1.3.0-alpha02 מכילה את השינויים האלה.

שינויים ב-API

  • להוסיף API חדש להחלת אפקט עיבוד לאחר הצילום על הפלט של התצוגה המקדימה. (Ic17d5)
  • השם של OutputOptions.getDurationLimit השתנה ל-OutputOptions.getDurationLimitMillis והשם של OutputOptions.setDurationLimit השתנה ל-OutputOptions.setDurationLimitMillis. (I91f0c)
  • מוסיפים את המחלקה AudioConfig כדי לטפל בהגדרה שקשורה לאודיו בזמן הקלטת סרטון. ההערה @RequiresPermission הועברה מהפונקציות startRecording אל AudioConfig כדי למנוע בקשות הרשאה מיותרות במקרים שבהם לא נדרש אודיו. (I28755)
  • הסרת המחלקות Metadata, ‏ OnVideoSavedCallback, ‏ OutputFileOptions ו-OutputFileResults שלא משתמשים בהן יותר אחרי שמחילים את ה-API החדש לצילום וידאו. (I38cd8)
  • מפעילים את ה-API החדש לצילום וידאו. השיטות getVideoCaptureTargetSize ו-setVideoCaptureTargetSize מוחלפות בשיטות getVideoCaptureTargetQuality ו-setVideoCaptureTargetQuality בהתאמה, כי אין יותר תמיכה ב-setTargetResolution. (I2a1d5)

תיקוני באגים

  • הסרת ה-API של core.VideoCapture שהוצא משימוש. (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)
  • פתרון בעיה של מסך שחור בהטמעה של PreviewView SurfaceView ב-ViewPager2. כחלק מהתיקון, PreviewView ישתמש שוב ב-SurfaceView אם הרזולוציה המבוקשת לא תשתנה. (Ib3f27)
  • תמיכה בחיתוך סרטונים (תכונת WYSIWYG) כשמשתמשים ב-API של ViewPort או CameraController. (Ifbba8, ‏ b/201085351)
  • תוקנה בעיה שבה סרטון שצולם במצלמה הקדמית לא הוקלט ב-Huawei P40 lite. (I87c57, b/250807400)

גרסה 1.2

גרסה 1.2.3

‫24 במאי 2023

‫androidx.camera:camera-*:1.2.3 מופץ. גרסה 1.2.3 מכילה את השינויים האלה.

תיקוני באגים

  • תוקנה בעיה שבה VideoCapture לא פעל עם המצלמה הקדמית במכשירים מסוימים. לדוגמה, במכשירים מדגם Samsung Galaxy S23 ו-Xiaomi 2107113SG. (Ibec7e, b/270656244)

גרסה 1.2.2

‫22 במרץ 2023

‫androidx.camera:camera-*:1.2.2 מופץ. גרסה 1.2.2 מכילה את השינויים האלה.

תיקוני באגים

  • תוקנה הבעיה שבה תוספי CameraX לא פועלים כמו שצריך כש-proguard מופעל במכשירים מסוימים כמו Pixel‏ (I90aa2)

גרסה 1.2.1

‫25 בינואר 2023

‫androidx.camera:camera-*:1.2.1 מופץ. גרסה 1.2.1 מכילה את השינויים האלה.

תיקוני באגים

  • תיקון בעיה של פגיעה בתמונות JPEG אם כותבים נתוני מיקום Exif במכשירי Samsung Android 12 מסוימים. (b/263289024)

גרסה 1.2.0

‫7 בדצמבר 2022

‫androidx.camera:camera-*:1.2.0 מופץ. גרסה 1.2.0 מכילה את השינויים האלה.

שינויים חשובים מאז גרסה 1.1.0

  • ספרייה חדשה: camera-mlkit-vision. שילוב קל של CameraX עם הרבה תכונות של MLKit, כולל סריקת ברקודים, זיהוי פנים, זיהוי טקסט וכו'. הוספנו את MLKitAnalyzer כממשקי API חדשים.
  • ממשק API ניסיוני חדש ל-Zero-Shutter Lag. אופטימיזציה של צינור עיבוד הנתונים של הצילום כדי לשפר את זמן האחזור תוך שמירה על איכות תמונה טובה. כשמצב הצילום מוגדר ל-CAPTURE_MODE_ZERO_SHUTTER_LAG, זמן האחזור בין הלחיצה על כפתור הצילום לבין צילום התמונה צפוי להיות קצר יותר בהשוואה למצבי צילום אחרים. במכשירים שלא תומכים ב-ZERO_SHUTTER_LAG, המערכת תשתמש ב-CAPTURE_MODE_MINIMIZE_LATENCY.
  • הוצאה משימוש של android.camera.core.VideoCapture.
  • הוספנו את setStreamUseCase() בתור API ציבורי של Camera2Interop.
  • נוספה דרישה לגבי רמת ה-API ל-setOutputImageRotationEnabled.
  • השם של ImageAnalysis.Analyzer#getTargetResolutionOverride() שונה ל-ImageAnalysis.Analyzer#getDefaultTargetResolution().
  • הוספנו API להגדרת מטא-נתונים של מיקום בסרטון השמור.
  • תוקן קצב הפריימים הנמוך בשימוש ב-VideoCapture ובתצוגה מקדימה ביחס גובה-רוחב של 16:9
  • תוקנה הבעיה של תצוגה מקדימה שחורה שמתרחשת כשתוסף BOKEH מופעל במכשירי סמסונג מסוימים והמשתמש מחליף בין המצלמות.
  • תוקנה בעיית המתיחה של Preview/VideoCapture במכשירי Samsung J7 Prime (SM-G610M)‎ ו-J7 (SM-J710MN)‎ עם רמת API‏ 27.
  • השבתנו את הפתרון הזמני להיפוך אופקי של אזור המיקוד האוטומטי במצלמות הקדמיות ב-Samsung Android T, כי הבעיה נפתרה

גרסה ‎1.2.0-rc01

‫24 באוקטובר 2022

‫androidx.camera:camera-*:1.2.0-rc01 מופץ. גרסה 1.2.0-rc01 מכילה את השינויים האלה.

שינויים ב-API

  • ‫setStreamUseCase API נוסף ל-OutputConfiguration. המשתמש יכול לציין את תרחיש השימוש בסטרימינג לסשן הסטרימינג, ולבטל את הלוגיקה הפנימית של CameraX כדי לבחור את תרחיש השימוש בסטרימינג ולבצע אופטימיזציה בהתאם לצורך שלו. (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 של Preview. כחלק מהתיקון, אם לא מוגדר 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)

תיקוני באגים

  • השבתנו את הפתרון הזמני להיפוך אופקי של אזור המיקוד האוטומטי במצלמות הקדמיות במכשירי Samsung Android T, כי הבעיה נפתרה. (I05f69)
  • תוקנה הבעיה שבה התצוגה המקדימה מוצגת בצבע שחור כשתוסף BOKEH מופעל במכשירי סמסונג מסוימים והמשתמש מחליף בין המצלמות. (If6168)

גרסה ‎1.2.0-beta01

‫24 באוגוסט 2022

‫androidx.camera:camera-*:1.2.0-beta01 מופץ. גרסה 1.2.0-beta01 מכילה את השינויים האלה.

תכונות חדשות

  • ספרייה חדשה camera-mlkit-vision. אפשר לשלב בקלות את CameraX עם הרבה תכונות של MLKit, כולל סריקת ברקודים, זיהוי פנים, זיהוי טקסט ועוד. כאן אפשר למצוא את הקוד לדוגמה.
  • API חדש ל-Zero-Shutter Lag (השהיית תריס אפסית) בשלב הניסוי. אופטימיזציה של צינור עיבוד הנתונים של הצילום כדי לשפר את זמן האחזור תוך שמירה על איכות תמונה טובה. כאשר מצב הצילום מוגדר ל-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)

תיקוני באגים

  • נוסף זמן קצוב לתפוגה של 5,000 אלפיות השנייה כברירת מחדל לפוקוס האוטומטי. אם לא מבטלים את FocusMeteringAction והפוקוס האוטומטי לא מתכנס במהלך הזמן הזה, החלק של הפוקוס האוטומטי יסתיים עם הערך false ב-isFocusSuccessful. (Ibc2e3)
  • תיקון הבעיה בצילום תמונה עם תצוגה מקדימה לא מקושרת (I1d3a2, ‏ b/235119898)
  • הפעלת הטמעה מתקדמת של Extender ועדכון גרסת ממשק התוספים של תמיכת CameraX ל-1.2 (I92256)

גרסה 1.2.0-alpha02

‫1 ביוני 2022

‫androidx.camera:camera-*:1.2.0-alpha02 מופץ. גרסה 1.2.0-alpha02 מכילה את השינויים האלה.

תכונות חדשות

  • ה-API של CameraX Zero-Shutter Lag זמין כניסיוני.

שינויים ב-API

  • מוסיפים מצב צילום חדש CAPTURE_MODE_ZERO_SHUTTER_LAG ב-ImageCapture ומוסיפים את isZslSupported ב-CameraInfo כדי לשלוח שאילתה לגבי יכולת המכשיר. מצב CAPTURE_MODE_ZERO_SHUTTER_LAG נועד לספק את זמן האחזור המינימלי לצילום מיידי. הוא מיושם על סמך מאגר נתונים זמני (buffer) מעגלי, ששומר במטמון תוצאות ביניים של צילום לצורך עיבוד מחדש בשלב מאוחר יותר, כשהמשתמש לוחץ על לחצנים כדי לצלם תמונות. אם {@link VideoCapture} קשור או שמצב הפלאש לא כבוי או שתוסף ה-OEM מופעל, המצב הזה יושבת באופן אוטומטי. (I9ae74)
  • הוספת השיטה ImageAnalysis.getBackgroundExecutor()‏ (Icc945)

תיקוני באגים

  • תוקנה הבעיה שבה השיטה takePicture של 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 נתמכת בשילוב הזה של תרחישי שימוש, וכדאי להשתמש בה. (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 הראשונה של הספריות Landed View, ‏ Extension ו-Video Capture. החל מגרסה 1.1.0-beta01, כל ספריות CameraX יתאימו לאותו מספר גרסה. כך המפתחים יוכלו לעקוב אחרי הגרסאות בקלות רבה יותר, וזה יפחית את המורכבות של מטריצות תאימות של גרסאות גדולות.
  • הוספנו ממשקי API ציבוריים ותכונות חדשות, כולל:
  • הוספת הספרייה הרשמית camera-video כדי לתמוך בתרחישים לדוגמה של צילום וידאו.
  • יכולת המרה וסיבוב של YUV ל-RGB (ImageAnalysis.Builder.setOutputImageRotationEnabled ו-setOutputImageFormat)
  • תמיכה במצב ריבוי חלונות: אפליקציות CameraX יכולות להמשיך להשתמש במצלמה כשהיא מופסקת על ידי אפליקציה אחרת והמיקוד חוזר.
  • תיקון של כמה בעיות בתצוגה המקדימה כדי לוודא ש-CameraX פועלת היטב במכשירים מתקפלים.
  • הוספנו API של CameraState שייחשף דרך CameraInfo.
  • נוסף API ProcessCameraProvider.getAvailableCameraInfos() כדי לאחזר ישירות מידע על המצלמות הזמינות
  • פורמט הפלט של ImageCapture#OnImageCapturedCallback הוא JPEG כשהתוספים מופעלים.
  • נוסף ממשק API isFocusMeteringSupported ב-CameraInfo שמאפשר לאפליקציות לבדוק אם FocusMeteringAction נתמך במצלמה הנוכחית או לא.
  • חשפנו את ה-API של getResolutionInfo כדי לספק את פרטי הרזולוציה של התצוגה המקדימה, ImageCapture ו-ImageAnalysis.
  • נוסף API חדש, ImageCapture.Builder#setJpegQuality, שמאפשר לשנות את איכות הדחיסה של תמונות JPEG שנוצרות כשמצלמים תמונות.
  • הוספנו את CameraSelector#filter ל-API הציבורי כדי לסנן רשימה של CameraInfos על סמך CameraSelector.
  • הוספנו את Camera2CameraControl.clearCaptureRequestOptions כדי לנקות את האפשרויות הקיימות של בקשות הצילום.
  • נוסף API ניסיוני לשימוש ב-CameraController עם ספריות חיצוניות לעיבוד תמונות, למשל MLKit
  • נוסף API ניסיוני CameraInfo#getCameraSelector() שמחזיר CameraSelector ייחודי למצלמה שלו
  • העברנו כמה ממשקי API ניסיוניים לממשקי API ציבוריים רשמיים
  • החלפנו את ההערה @Experimental ב-@RequiresOptIn לממשקי API ניסיוניים. כדי להפעיל ממשקי API ניסיוניים, צריך להשתמש ב-androidx.annotation.OptIn במקום ב-androidx.annotation.experimental.UseExperimental שהוצא משימוש.
  • קידמו את ממשקי ה-API הניסיוניים הבאים ל-API רשמיים: CameraXConfig.Builder#setAvailableCamerasLimiter(), CameraXConfig.Builder#setMinimumLoggingLevel(), CameraXconfig.Builder#setSchedulerHandler(), CameraXConfig#getAvailableCamerasLimiter(), CameraXConfig#getMinimumLoggingLevel(), CameraXConfig#getCameraExecutor(), CameraXConfig#getSchedulerHandler(),
  • @ExperimentalCameraFilter ממשקי API
  • ממשקי API ניסיוניים לפיצוי חשיפה.
  • קידום ה-API הניסיוני UseCaseGroup עבור camera-core, ‏ camera-lifecycle ו-camera-video. הוספנו את ViewPort#getLayoutDirection, ViewPort.Builder#setLayoutDirection ו-ViewPort.Builder#setScaleType להתאמה אישית של אזור התצוגה.
  • העברנו את ExperimentalUseCaseGroupLifecycle לממשקי API ציבוריים רשמיים.
  • שינויים בממשקי ה-API הקיימים
  • Renamed MediaStoreOutputOptions.getCollection כדי MediaStoreOutputOptions.getCollectionUri.
  • השם של ActiveRecording שונה ל "הקלטה" כדי לקצר את המלל.
  • שינינו את ה-API של יוצר QualitySelector ל-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

תיקוני באגים

  • תוקנה בעיה שבה ה-codec של הסרטון לא שוחרר כש-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

  • ה-constructor של CaptureRequestOptions הוגבל. (I261b6)
  • נוסף API ניסיוני לשימוש ב-CameraController עם ספריות חיצוניות לעיבוד תמונות, למשל MLKit‏ (I4ea71)

תיקוני באגים

  • תוקנה הבעיה שבה התצוגה המקדימה מוצגת על הצד ב-PreviewView כשהפעילות לא מופעלת מחדש אחרי סיבוב המכשירים במצב ריבוי חלונות. (I1ea36, b/223488673)
  • תוקנה בעיה שקשורה לריבוי חלונות: כשהמיקוד חוזר לאפליקציה, היא לא מצליחה להפעיל מחדש את המצלמה כש-(1) אפליקציה אחרת בעדיפות גבוהה פותחת מצלמה אחרת (2) המכשיר הוא Samsung Android 12. (I7e9f2)
  • כולל פתרון עקיף למכשירים שקורסים כשבודקים את הזמינות של הפלאש. במכשירים האלה לא תהיה אפשרות להשתמש בפנס. ‫(If26a3, b/216667482)
  • תוקנה בעיה ב-AbstractMethodError שקרתה כשאפליקציות השתמשו בתוספים והפעילו את ProGuard. (I7cbaf, ‏ b/222726805)
  • השבתה כפויה של מצב התוסף "אפקט בוקה" במכשיר Motorola razr 5G, שתגרום לבעיה של מסך תצוגה מקדימה שחור. (I35d49)
  • תוקנה בעיה שבה האודיו או הווידאו לא מסונכרנים אחרי השהיה והמשך בחלק ממכשירי סמסונג עם API ברמה 29 ומטה. (I64622, b/202798609, b/202798572)
  • תוקנה בעיה שבה האודיו והווידאו לא היו מסונכרנים אחרי השהיה והמשך הפעלה במכשיר Sony G3125. (I2a1a5, b/202799148)
  • תוקנה קריסה שקרתה כשמכשיר ההקלטה נתקל ב-InvalidConfigException. עם זאת, התיקון הזה רק מונע מהאפליקציה לקרוס, אבל לא פותר את הגורם ל-InvalidConfigException. אם עדיין לא ניתן להגדיר את Recorder, האפליקציות יקבלו קריאה חוזרת (callback) של שגיאה כשהן יתחילו להקליט. (I89c29, b/213617227)

תרומה חיצונית

  • עודכן ה-API של ‎ :compose:ui:ui-test‏ (updateApi) בגלל ההעברה של test-coroutines-lib‏ (I3366d)

גרסה ‎1.1.0-beta02

‫23 בפברואר 2022

‫androidx.camera:camera-*:1.1.0-beta02 מופץ. גרסה 1.1.0-beta02 כוללת את השינויים האלה.

שינויים ב-API

  • הוספת היכולת לציין מזהה מצלמה פיזית באמצעות Camera2Interop. (I5aed8)

תיקוני באגים

  • תוקנה הבעיה של תצוגה מקדימה מתוחה ב-Oppo Find N‏ (I7d004)
  • תוקנה בעיה ב-Galaxy J7 Prime שבה התצוגה המקדימה מעוותת. (I4c500)
  • כדי למצוא מקודד וידאו, צריך להשתמש בקצב העברת נתונים תואם. (d969052)

‫גרסה ‎1.1.0-beta01

‫26 בינואר 2022

‫androidx.camera:camera-*:1.1.0-beta01 מופץ. גרסה ‎1.1.0-beta01 מכילה את השמירות האלה.

תכונות חדשות

  • החל מגרסה 1.1.0-beta01, כל ספריות CameraX יתאימו לאותו מספר גרסה. כך המפתחים יוכלו לעקוב אחרי הגרסאות בקלות רבה יותר, וזה יפחית את המורכבות של מטריצת התאימות של גרסאות גדולות.

שינויים ב-API

  • הוספנו את Camera2CameraControl.clearCaptureRequestOptions כדי לנקות את האפשרויות הקיימות של בקשות הצילום. (Ifa07d)

תיקוני באגים

  • תוקנה הקריסה שמתרחשת כשמקליטים סרטון בחלק מהמכשירים עם גרסה קודמת ל-Android O‏(API 26). (I88fdf, b/212328261)
  • תוקנה הבעיה שקשורה לאזור AF שגוי כשמשתמשים ב-cameraControl#startFocusAndMetering() במצלמה הקדמית במכשירי סמסונג (Ifbf59, ‏ b/210548792)
  • שימוש בפנס כמבזק ב-Pixel 3a או ב-Pixel 3a XL כדי לשפר את המהירות ואת איכות התמונה שצולמה בחושך (Ib12b6, ‏ b/211474332)
  • האפליקציות יכולות להמשיך להשתמש במצלמה כשהשימוש בה מופסק על ידי אפליקציה אחרת עם עדיפות גבוהה יותר במצב ריבוי חלונות, והמיקוד חוזר לאפליקציה. לתשומת ליבכם: יכול להיות שיהיה עיכוב קל(בין שנייה אחת ל-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() הוסרה ועכשיו צריך להעביר את רכיב ה-event listener אל PendingRecording.start(). דרישת רכיב ה-event listener נועדה לעודד טיפול בשגיאות אסינכרוניות שמדווחות באירוע VideoRecordEvent.Finalize. (I1e71d)
  • השם של ActiveRecording השתנה לשם Recording כדי לקצר את המלל. (I77ceb)

תיקוני באגים

  • תוקנה הבעיה שבה תמונות שצולמו במצב FLASH_AUTO בתנאי חושך היו בחשיפת חסר במכשירי Pixel 3a ו-Pixel 3a XL‏ (I13f19, ‏ b/205373142)
  • תמיד להשתמש בגודל התצוגה האחרון כדי לקבוע את Resolution של התצוגה המקדימה. (I4a694)
  • המצלמות שאין להן REQUEST_AVAILABLE_CAPABILITIES_BACKWARD_COMPATIBLE סוננו. למצלמות עם REQUEST_AVAILABLE_CAPABILITIES_BACKWARD_COMPATIBLE יש את קבוצת היכולות המינימלית שכל מכשיר מצלמה תומך בה. מצלמה בלי REQUEST_AVAILABLE_CAPABILITIES_BACKWARD_COMPATIBLE עשויה להיות מצלמה שתומכת בפונקציונליות מיוחדת ולא תומכת בפלט צבע רגיל. ‫CameraX לא יכול לתמוך בתרחישי השימוש Preview, ‏ ImageCapture, ‏ ImageAnalysis או VideoCapture במצלמות האלה. לכן, צריך לסנן את המצלמות האלה כדי למנוע שימוש שגוי. (Ib8cda)
  • הפונקציה CameraSelector#filter לא מחזירה יותר שגיאת IllegalArgumentException כשקבוצת התוצאות ריקה. (I27804)
  • עכשיו המערכת משתמשת ביוריסטיקה חכמה יותר כדי לבחור את הגדרות המקודד על סמך פרופילים שצוינו על ידי יצרן הציוד המקורי (OEM). (Iaeef0)
  • תוקנה בעיה שבה בתצוגה המקדימה הופיעו קווי צבע שזורים אחרי התחלת צילום סרטון 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 ל-API הציבורי כדי לסנן רשימה של CameraInfos על סמך CameraSelector. (I105d0)
  • הוספת setOutputImageRotationEnabled API להגדרת ImageAnalysis. המשתמש יכול להפעיל סיבוב של מאגר התמונות YUV/RGB. זווית הסיבוב היא סיבוב יחסי שמחושב על סמך סיבוב החיישן וסיבוב היעד כדי שהתמונה תישאר בחזית.

  • הוספת setOutputImageRotationEnabled API להגדרת ImageAnalysis. המשתמש יכול להפעיל סיבוב של מאגר התמונות YUV/RGB. זווית הסיבוב היא סיבוב יחסי שמחושב על סמך סיבוב החיישן וסיבוב היעד כדי שהתמונה תישאר בחזית.

    ‫getSensorToBufferTransformMatrix API נוסף ב-ImageInfo. המטריצה שמוחזרת היא מיפוי מקואורדינטות של החיישן לקואורדינטות של המאגר, כלומר מהערך של CameraCharacteristics.SENSOR_INFO_ACTIVE_ARRAY_SIZE ל-(0, 0, image.getWidth, image.getHeight). אפשר להשתמש במטריצה כדי למפות את הקואורדינטות מ-{UseCase} אחד לאחר. לדוגמה, מיפוי קואורדינטות של איתור הפנים שזוהו באמצעות ImageAnalysis לתצוגה מקדימה. (I9ff1e)

  • הוספנו ממשק API חדש, ImageCapture.Builder#setJpegQuality, שמאפשר לשנות את איכות הדחיסה של תמונת הפלט בפורמט JPEG כשמצלמים תמונה. (I8dcf4)

  • השם של MediaStoreOutputOptions.getCollection השתנה ל-MediaStoreOutputOptions.getCollectionUri. (I16639)

תיקוני באגים

  • תוקנה הבעיה שבה הפלאש הופעל במהלך לחיצה למיקוד (startFocusAndMetering) כשמצב הפלאש היה אוטומטי או always_on בסביבה עם תאורה חלשה. (Id4c11)
  • השבתנו את HDR+‎ ב-Pixel 2 XL וב-Pixel 3 XL במצב MINIMIZE_LATENCY כדי לצמצם את זמן האחזור. (Ib6270, b/203505523)

תרומה חיצונית

גרסה 1.1.0-alpha10

‫13 באוקטובר 2021

‫androidx.camera:camera-*:1.1.0-alpha10 מופץ. גרסה 1.1.0-alpha10 מכילה את השמירות האלה.

תכונות חדשות

  • גרסה androidx.camera:camera-video:1.1.0-alpha10 הושקה רשמית כגרסת האלפא הראשונה של Video. יש כמה בעיות ידועות שיתוקנו בגרסאות הבאות.

שינויים ב-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. מכשיר ברמת LIMITED יכול לתמוך ברזולוציה בגודל 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. הגודל המקסימלי מתייחס לרזולוציית הפלט המקסימלית של המצלמה בפורמט או ביעד הזה, מתוך 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)
  • תוקנה בעיית EOFException ב-YuvToJpegProcessor כשמצב התוסף מופעל ומוגדר מצב 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)
  • קידום ה-API הניסיוני UseCaseGroup ל-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)
  • ממשקי ה-API של ExperimentalCameraFilter יצאו משלב הניסוי והפכו לממשקי 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 מכילה את השמירות האלה.

תיקוני באגים

  • תוקנה דליפת זיכרון שנגרמה מכך שכמה שרשורים ניגשו בו-זמנית לאותו אוסף. דליפת הזיכרון עלולה לגרום לכך שהפעילות או החלק יישמרו על ידי מופע של תצוגה מקדימה. (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)
  • תוקנה התצוגה המקדימה המתוחה ב-PreviewView ב-Samsung A3. (Iacb30, ‏ b/180121821)

גרסה ‎1.1.0-alpha02

‫24 בפברואר 2021

‫androidx.camera:camera-camera2:1.1.0-alpha02,‏ androidx.camera:camera-core:1.1.0-alpha02 ו-androidx.camera:camera-lifecycle:1.1.0-alpha02 שוחררו. גרסה 1.1.0-alpha02 מכילה את השמירות האלה.

שינויים ב-API

  • הוספנו ממשק API‏ ProcessCameraProvider.getAvailableCameraInfos() כדי לאחזר ישירות מידע על המצלמות הזמינות, שהן כל המצלמות של המכשיר או אלה שנבחרו על ידי CameraSelector שסופק ב-CameraXConfig.Builder.setAvailableCamerasLimiter(CameraSelector). (Ieac08)

תיקוני באגים

  • עכשיו CameraX מנסה לפתוח את המצלמה בניסיון הראשון. כתוצאה מכך, יכול להיות ש-CameraX תגנוב את המצלמה מלקוחות אחרים של המצלמה כשהאפליקציה שלה בעדיפות גבוהה יותר. (Iab069, b/175820568)
  • תוקנה שגיאת הבדיקה של Robolectric כשמשתמשים ב-setAvailableCamerasLimiter ב-CameraXConfig. (Ice307)
  • השינוי הזה מטפל בחריגה כשמגיעים למספר המקסימלי של תמונות בתור ב-ImageAnalysis. לכן, במקום קריסה, יכול להיות שתבחינו בתרחישי שימוש אחרים שקופאים או פועלים באיטיות. לדוגמה, תצוגה מקדימה קפואה או איטית. (Ic12da, b/175851631)
  • תוקן ExtensionsErrorListener כדי לדווח על שגיאות כש-Preview או ImageCapture בלבד מקושרים. (I5ae39)
  • תוקנה רגרסיה בביצועים של ImageCapture על ידי הסרת האימות של מיקום התמונה השמורה לפני הצילום. אחרי השינוי הזה, אם יעד השמירה לא תקין, ייקח יותר זמן לקבל את תגובת הכישלון כי המערכת תנסה לשמור את התמונה אחרי שהיא תצולם. (I1fd4e, b/177061560)
  • תוקנה רגרסיה בביצועים של ImageCapture עם OutputFileOptions מסוג "קובץ". (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. לכן, במקום קריסה, יכול להיות שתבחינו בתרחישי שימוש אחרים שבהם המכשיר קופא או איטי. לדוגמה, תצוגה מקדימה קפואה או איטית.
  • כולל פתרון עקיף לנתוני תמונה פגומים לסירוגין בקובצי JPEG במצלמה האחורית של SM-G930T. (I52001, b/159831206)
  • השינוי הזה מטפל בחריגה כשמגיעים למספר המקסימלי של תמונות בתור ב-ImageAnalysis. לכן, במקום קריסה, יכול להיות שתבחינו בתרחישי שימוש אחרים שקופאים או פועלים באיטיות. לדוגמה, תצוגה מקדימה קפואה או איטית. (Ic12da, b/175851631)
  • תוקנה שגיאת הבדיקה של Robolectric כשמשתמשים ב-setAvailableCamerasLimiter ב-CameraXConfig. (Ice307)
  • תוקנה רגרסיה בביצועים של ImageCapture על ידי הסרת האימות של מיקום התמונה שנשמרה לפני הצילום. אחרי השינוי הזה, אם יעד השמירה לא תקין, ייקח יותר זמן לקבל את תגובת הכישלון כי המערכת תנסה לשמור את התמונה אחרי שהיא תצולם. (I1fd4e, b/177061560)
  • תוקנה רגרסיה בביצועים של ImageCapture עם OutputFileOptions מסוג "קובץ". (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 כדי לאפשר פעולה הדדית עם ממשקי API של Camera2 באופן דינמי. (I45cf3)
  • שינינו את השם של Camera2CameraInfo#fromCameraInfo ל-#from. (Ia2bd6)
  • הוספנו ל-CameraXConfig ממשק API ניסיוני בשם setAvailableCamerasLimiter, שמאפשר לאפליקציות לבצע אופטימיזציה של זמן האחזור של האתחול על ידי הימנעות מאתחול של מצלמות שלא בשימוש. (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)

גרסה ‎1.0.0-beta12 של Camera Camera2,‏ Core ו-Lifecycle

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)
  • ההטמעה של המחלקה הבסיסית (base class) OnImageCapturedCallback#onCaptureSuccess לא סוגרת יותר את התמונה. כדי למנוע התנהגות לא צפויה למפתחים. המפתחים לא צריכים להסתמך על super.onCaptureSuccess כדי לסגור את התמונה. (Ifbf9c)
  • הווריאציה androidx של ההערה Experimental הוצאה משימוש כדי לספק שוויון עם Kotlin. היא הוחלפה באנוטציה RequiresOptIn, וה-linter שפונה ל-Java עודכן כדי לתמוך גם באנוטציה החדשה של Kotlin וגם בווריאנט החדש של androidx. (I52495, b/151331381)

‫Camera-Camera2 גרסה 1.0.0-beta11

‫14 באוקטובר 2020

‫androidx.camera:camera-camera2:1.0.0-beta11 מופץ. גרסה 1.0.0-beta11 כוללת את השינויים האלה.

תכונות חדשות

  • תמיכה ב-API של Android 11 CONTROL_ZOOM_RATIO לזום במכשירי Android 11 ואילך שמכילים CONTROL_ZOOM_RATIO_RANGE תקין. (I62cc6)

תיקוני באגים

  • תוקנה הבעיה NumberFormatException שקרתה כשמזהה המצלמה לא היה מספר שלם. (Ib2228)
  • שיפור זמן האחזור של האתחול של CameraX ו-bindToLifecycle‏ (I61dc5)
  • כדי ליצור UseCases, לא צריך להשלים את ההפעלה של CameraX. כל ההגדרות הספציפיות להטמעה נקבעות ב-UseCase אחרי שהוא מצורף למכונה של Camera, שב-API הציבורי היא ProcessCameraProvider.bindToLifecycle(). (Ia5411)
  • הפונקציה <UseCase>.getTargetRotation() תחזיר את הערך Surface.ROTATION_0 אם היא נקראת לפני שהיא מצורפת למכונה של מצלמה, אלא אם הוגדר targetRotation ב-Builder או ב-UseCase. (I80fcd)

‫Camera-Core גרסה ‎1.0.0-beta11

‫14 באוקטובר 2020

‫androidx.camera:camera-core:1.0.0-beta11 מופץ. גרסה 1.0.0-beta11 מכילה את השינויים האלה.

תכונות חדשות - תמיכה ב-API של Android 11 CONTROL_ZOOM_RATIO לזום במכשירי Android 11 ואילך שמכילים CONTROL_ZOOM_RATIO_RANGE תקין. (I62cc6)

תיקוני באגים

  • תוקנה הבעיה NumberFormatException שקרתה כשמזהה המצלמה לא היה מספר שלם. (Ib2228)
  • כדי ליצור UseCases, לא צריך להשלים את ההפעלה של CameraX. כל ההגדרות הספציפיות להטמעה נקבעות ב-UseCase אחרי שהוא מצורף למכונה של Camera, שב-API הציבורי היא ProcessCameraProvider.bindToLifecycle(). (Ia5411)
  • הפונקציה <UseCase>.getTargetRotation() תחזיר את הערך Surface.ROTATION_0 אם היא נקראת לפני שהיא מצורפת למכונה של מצלמה, אלא אם הוגדר targetRotation ב-Builder או ב-UseCase. (I80fcd)

גרסה 1.0.0-beta10 של Camera-Core

‫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)

גרסה 1.0.0-beta09 של Camera-Core

16 בספטמבר 2020

‫androidx.camera:camera-core:1.0.0-beta09 מופץ. גרסה 1.0.0-beta09 מכילה את השינויים האלה.

שינויים ב-API

  • תוקן הבאג שבו אזור התצוגה מסומן כ-non-null ב-UseCaseGroup. מפתחים צריכים להיות מסוגלים ליצור אזור תצוגה בלי להגדיר אותו. (Ie3d2e)
  • נוספו ממשקים ניסיוניים ל-ExposureCompensation (If96c7)
  • אפשר להגדיר סיבוב שרירותי של היעד בתצוגה המקדימה. פרטי הטרנספורמציה מחושבים ומוחזרים למשתמש בזמן אמת באמצעות קריאה חוזרת (callback) חדשה של TranformationInfoListener. (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)
  • תוקנה בעיה בקיבוץ הגדלים של יחס הגובה-רוחב ברזולוציה האוטומטית, שבה נבחר גודל mod16 של 16:9 ‏ (864x480) כשהגדרת רזולוציית היעד היא 2016x1080 ויש גודל נוסף של 1920x1080 ביחס 16:9 שנתמך. (I53167, b/159363774)
  • תיקון הבעיה ב-CameraControl שבה הוא לא יכול לפעול בגלל מרוץ תהליכים (I2279f, ‏ b/152333890, ‏ b/160714166)

גרסה 1.0.0-beta08 של Camera-Core

‫19 באוגוסט 2020

‫androidx.camera:camera-core:1.0.0-beta08 מופץ. גרסה 1.0.0-beta08 כוללת את השינויים האלה.

שינויים ב-API

  • הפונקציה DisplayOrientedMeteringPointFactory מקבלת מופע של CameraInfo במקום CameraSelector, כך שיש מיפוי ישיר למצלמה שעבורה המפעל ייצור נקודות. כל המחלקות שמשתמשות ב-DisplayOrientedMeteringPointFactory מקבלות גם מופע של CameraInfo במקום CameraSelector. (I400c1)

תיקוני באגים

  • בצילום תמונות, החלפת הדגל של ההיפוך האופקי במטא-נתונים על סמך כיוון המצלמה. (I28499)
  • האתחול לא אמור לקרוס יותר כשמשתמשים בהקשר שלא מחזיר אובייקט של אפליקציה מ-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)

גרסה 1.0.0-beta07 של Camera-Core

‫22 ביולי 2020

‫androidx.camera:camera-core:1.0.0-beta07 מופץ. גרסה 1.0.0-beta07 מכילה את השינויים האלה.

שינויים ב-API

  • מיזוג של סגנון ההתאמה של FIT_CENTER, FIT_START ו-FIT_END עם FIT. FITפירושו שריבוע החיתוך שיוחזר יהיה ריבוע החיישן המקסימלי האפשרי. (Ia73c3)
  • מלבן החיתוך של התצוגה המקדימה מוגדר לפי אזור התצוגה. רק האזור שמוגדר על ידי מלבן החיתוך צריך להיות גלוי למשתמשי הקצה. (I142a4)

תיקוני באגים

  • תוקנה הבעיה שבה התצוגה המקדימה נמתחת במכשיר Android 5.0 מדור קודם. (I0c03a)
  • תוקנה הבעיה שגרמה לחריגה ConcurrentModificationException כשמבטלים את הקישור של תרחישי שימוש. (I371c0)

‫Camera-Camera2 גרסה ‎1.0.0-beta06

‫24 ביוני 2020

‫androidx.camera:camera-camera2:1.0.0-beta06 מופץ. גרסה 1.0.0-beta06 מכילה את השמירות האלה.

שינויים ב-API

  • הוספנו ממשקים ניסיוניים לסינון מצלמות לפי מזהה מצלמה ומאפייני מצלמה. (I28f61)

תיקוני באגים

  • תוקנה הבעיה שבה startFocusAndMetering לא מצליח להתמקד ב-Samsung Galaxy S7. (If3be7, b/159039233)
  • תיקון: אי אפשר לסגור את המצלמה אחרי שיוצאים מהאפליקציה. (I7a7b3)
  • תיקון: מעבר חוזר בין מצלמות משבש את התצוגה המקדימה כשמשתמשים בהטמעה של SurfaceView ב-PreviewView‏ (I920ce)
  • הפונקציה CameraControl#startFocusAndMetering תיכשל אם אף אחד מהאובייקטים מסוג MeteringPoint שצוינו לא יכול ליצור מלבני מדידה תקינים. (Id53ce)

גרסה 1.0.0-beta06 של Camera-Core

‫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 הוא null. (Ife55e, b/157084254)

גרסה 1.0.0-beta05 של Camera-Core

‫10 ביוני 2020

‫androidx.camera:camera-core:1.0.0-beta05 מופץ. גרסה ‎1.0.0-beta05 מכילה את השמירות האלה.

שינויים ב-API

  • תיקון הקריסה בהפעלת האפליקציה כשמפעילים את CameraX כשהטלפון במצב "נא לא להפריע". אם InitializationException מכיל CameraUnavailableException, הוא יוגדר ל-ListenableFuture של תוצאת האיניציאליזציה במקום לגרום לקריסת האפליקציה. (I9909a, ‏ b/149413835)

תיקוני באגים

  • עדכון של javadocs של 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)
  • יומן השגיאות שקשור לתרחיש השימוש המנותק הומר ליומן ניפוי באגים ב-Camera2CameraImpl. (I1a565, b/154422490)
  • תוקנה בעיה שבה התמונה שצולמה כהה מדי לפעמים, למרות שהופעל פלאש. (I5d9fa, ‏ b/149729613)
  • תוקן באג שבו המאגר ב-ImageProxy מ-ImageCapture לא הוחזר אחורה (I0c455, ‏ b/153249512)
  • תוקנו הבעיות שבהן קישור ImageCapture בלבד: (1) נכשל בצילום תמונות עם MAX_QUALITY; (2) יצר איכות תמונה גרועה כי החשיפה האוטומטית לא עובדת. (I17782, b/145326998)
  • שיפור האמינות של פתיחת המצלמה מחדש כש-CameraX מנותק על ידי תהליך אחר או נתיב קוד שמשתלט על המצלמה (I1fbc3, ‏ b/153714651)

גרסה 1.0.0-beta04 של Camera-Core

‫27 במאי 2020

‫androidx.camera:camera-core:1.0.0-beta04 מופץ. גרסה ‎1.0.0-beta04 מכילה את השמירות האלה.

שינויים ב-API

  • נוסף API ניסיוני, CameraXConfig.Builder#setSchedulerHandler(), להגדרת ה-handler שמשמש באופן פנימי את מחסנית המצלמה של CameraX. ה-API החדש הזה, יחד עם CameraXConfig.Builder#setCameraExecutor(), אמור לאפשר שליטה מלאה בשרשורים שבהם משתמשת קבוצת המצלמות של CameraX. (I7bf32, b/121160431)

תיקוני באגים

  • תיקון קריסה ב-ImageAnalysis שבה מתבצעת גישה אל ImageProxy אחרי ש-ImageReaderProxy נסגר. בנוסף, כל ImageProxy שמתקבל על ידי Analyzer חייב להיסגר לפני ש-ImageReaderProxy ייסגר. (I4b299, b/145956416, b/154155377, b/156357269)
  • הפרמטר CameraInfo הוסר מ-PreviewView#createSurfaceProvider(), ועכשיו PreviewView מאחזר אותו באופן פנימי מ-SurfaceRequest. (If18f0, b/154652477)
  • ההפעלה האוטומטית תוקנה כשמשתמשים באפליקציה במכשיר שמשתמש בלוקאל מדומה. (I3bef3, ‏ b/154767663)
  • תוקנה בעיה שבה התמונה שצולמה כהה מדי לפעמים, למרות שהופעל פלאש. (I5d9fa, ‏ b/149729613)
  • תוקנה בעיה ב-ImageAnalysis שבה כמה קריאות ל-setAnalyzer/clearAnalyzer גרמו לכך שהמנתח לא קיבל תמונות לניתוח. (I6169f, b/151605317, b/153514544)
  • תוקן באג שבו המאגר ב-ImageProxy מ-ImageCapture לא הוחזר אחורה (I0c455, ‏ b/153249512)
  • תוקנה הבעיה שבה המצלמה הראשונה ברשימת המצלמות הנתמכות של CameraManager לא תמיד נבחרת לשימוש. (I4c624, b/153418028)
  • תוקנה קריסה לסירוגין שנגרמה בגלל שההגדרה Preview.SurfaceProvider לא שחררה את המשטח שהתבקש קודם לכן. “java.lang.IllegalStateException: Camera surface session should only fail with request cancellation” (I8e4e7, b/155936225)

‫Camera-Camera2 גרסה ‎1.0.0-beta03

15 באפריל 2020

‫androidx.camera:camera-camera2:1.0.0-beta03 מופץ. גרסה ‎1.0.0-beta03 מכילה את השינויים האלה.

תיקוני באגים

  • תיקונים לתמיכה בהשקה של camera-core

גרסה ‎1.0.0-beta03 של Camera-Core

15 באפריל 2020

‫androidx.camera:camera-core:1.0.0-beta03 מופץ. גרסה 1.0.0-beta03 מכילה את השינויים האלה.

תיקוני באגים

  • תוקנה רגרסיה מ-beta03 שבה קריאה ל-bindToLifecycle() עם אפס UseCase גרמה להקפצת חריגה. זה מנע אחזור של Camera בלי לקשר UseCase.

Camera-Camera2 גרסה ‎1.0.0-beta02

‫1 באפריל 2020

‫androidx.camera:camera-camera2:1.0.0-beta02 מופץ. גרסה 1.0.0-beta02 מכילה את השינויים האלה.

תיקוני באגים

  • תוקן ה-ImageInfo.getRotationDegrees() מה-ImageProxy שנוצר על ידי ImageCapture כך שיתאים לערך הסיבוב של כיוון ה-EXIF. thought (Id4281, b/150802561)
  • כדי להשתמש בהטמעה שמוגדרת כברירת מחדל של CameraX או Camera2, כבר לא צריך להגדיר סדר מפורש של יחסי תלות של CameraX בתוך build.gradle. במקרים שבהם נדרשת הצהרה על יחסי תלות מחמירים, עכשיו אפשר לכלול את כל יחסי התלות של CameraX בקובץ ה-build. (I46e88)
  • תוקנה הבעיה ב-IllegalArgumentException שמתרחשת במכשירים שבהם גודל התצוגה קטן מ-640x480. (Ife3f2, b/150506192)
  • תוקן bindToLifecycle כך שהוא משנה את UseCase רק אם הוא נקשר בהצלחה. בעבר, כשבוצעה קריאה ל-bindToLifecycle כדי לבצע חישובי רזולוציה, ה-UseCase עודכן. עכשיו כבר לא צריך לעדכן את UseCase כדי לבצע את החישובים (I78d9e)

גרסה ‎1.0.0-beta02 של Camera-Core

‫1 באפריל 2020

‫androidx.camera:camera-core:1.0.0-beta02 מופץ. גרסה 1.0.0-beta02 מכילה את השינויים האלה.

תיקוני באגים

  • תוקן ה-ImageInfo.getRotationDegrees() מה-ImageProxy שנוצר על ידי ImageCapture כך שיתאים לערך הסיבוב של כיוון ה-EXIF. thought (Id4281, b/150802561)
  • תוקן bindToLifecycle כך שהוא משנה את UseCase רק אם הוא נקשר בהצלחה. בעבר, כשבוצעה קריאה ל-bindToLifecycle כדי לבצע חישובי רזולוציה, ה-UseCase עודכן. עכשיו כבר לא צריך לעדכן את UseCase כדי לבצע את החישובים (I78d9e)
  • תוקנה בעיה שבה סשן הצילום של תרחיש השימוש Preview לא עודכן כשמשטח התצוגה המקדימה השתנה אחרי קריאה ל-Preview.setSurfaceProvider() יותר מפעם אחת.

‫Camera-Camera2 גרסה 1.0.0-beta01

‫26 בפברואר 2020

‫androidx.camera:camera-camera2:1.0.0-beta01 מופץ. גרסה 1.0.0-beta01 מכילה את השינויים האלה.

תיקוני באגים

  • השם של SurfaceRequest.setSurface(Surface) שונה ל-SurfaceRequest.provideSurface(Surface), והשם של SurfaceRequest.setWillNotComplete() שונה ל-SurfaceRequest.willNotProvideSurface(). (I224fe)
  • תוקנה בעיה ביחס הגובה-רוחב של תמונה שנשמרה, שלא היה נכון אחרי שינוי ערך סיבוב היעד באמצעות ImageCapture.setTargetRotation(). (I474ea, ‏ b/148763432)
  • תוקנה בעיה באתחול של גרסאות שונות של אפליקציות כש-ProGuard מופעל, על ידי שמירת הדגל שמגדיר את ספק ברירת המחדל של CameraXConfig. (I2d6c1)

גרסה 1.0.0-beta01 של Camera-Core

‫26 בפברואר 2020

‫androidx.camera:camera-core:1.0.0-beta01 מופץ. גרסה 1.0.0-beta01 מכילה את השינויים האלה.

שינויים ב-API

  • החלפנו את ListenableFuture ב-SurfaceRequest.provideSurface() ב-Executor וב-Callback. כך ה-API פשוט יותר, כי לא צריך יותר לטפל בחריגים ב-provideSurface(), ואי אפשר לבטל את הקריאה החוזרת (callback) של provideSurface(). כך אפשר למנוע קריסות במכשירים ישנים יותר שנגרמות בגלל שחרור מוקדם מדי של משטחים. האובייקט SurfaceRequest.Result משמש עכשיו למעקב אחרי האופן שבו SurfaceRequest משתמש ב-Surface שסופק. (I7854b)
  • השם של SurfaceRequest.setSurface(Surface) שונה ל-SurfaceRequest.provideSurface(Surface) והשם של SurfaceRequest.setWillNotComplete() שונה ל-SurfaceRequest.willNotProvideSurface(). (I224fe)

תיקוני באגים

  • תוקנה בעיה ביחס הגובה-רוחב של תמונה שנשמרה, שלא היה נכון אחרי שינוי ערך סיבוב היעד באמצעות ImageCapture.setTargetRotation(). (I474ea, ‏ b/148763432)
  • תוקנה בעיה באתחול של גרסאות שונות של אפליקציות כש-ProGuard מופעל, על ידי שמירת הדגל שמגדיר את ספק ברירת המחדל של CameraXConfig. (I2d6c1)
  • עדכון התיעוד של ממשקי ה-API של מצב הפלאש כך שיכלול ערכים אפשריים. (I4a3ec)

‫Camera-Camera2 גרסה 1.0.0-alpha10

‫10 בפברואר 2020

‫androidx.camera:camera-camera2:1.0.0-alpha10 מופץ. גרסה 1.0.0-alpha10 כוללת את השינויים האלה.

תיקוני באגים

  • שיפור היציבות במכשירי INFO_SUPPORTED_HARDWARE_LEVEL_LEGACY על ידי הבטחה ש-Surface יישמרו רק למשך השימוש ב-Camera2. (I9dac2)
  • תוקנה בעיה של תצוגה מקדימה בחשיפת חסר במכשירים מדור קודם על ידי התאמה נכונה של CONTROL_AE_TARGET_FPS_RANGE. (1224638)

‫Camera-Core גרסה 1.0.0-alpha10

‫10 בפברואר 2020

‫androidx.camera:camera-core:1.0.0-alpha10 מופץ. גרסה 1.0.0-alpha10 כוללת את השינויים האלה.

שינויים ב-API

  • האפליקציה ImageCapture עודכנה כדי לאפשר שמירת תמונות ב-Uri וב-OutputStream. שילוב של שיטות takePicture עמוסות מדי לשיטה אחת. אפליקציית הבדיקה עודכנה כך שתשתמש ב-Uri כדוגמה הקנונית. (Ia3bec)
  • השם של Preview.PreviewSurfaceProvider השתנה לשם Preview.SurfaceProvider. ב-SurfaceProvider, המפתחים כבר לא צריכים ליצור ListenableFuture משלהם, והוספת Surface מתבצעת עכשיו באמצעות אובייקט SurfaceRequest חדש. ה-method‏ Preview.getPreviewSurfaceProvider() הוסרה בגלל פוטנציאל לשימוש לרעה כש-Preview משויכת למחלקות אחרות כמו PreviewView. (I20105)
  • הוספת את getTargetRotation() ואת getTargetName() אל Preview. (Iceee7)
  • הוספנו את getTargetRotation(), getBackpressureStrategy() ו-getImageQueueDepth() ב-ImageAnalysis. (I9d6d9)
  • נוספו getTargetRotation() ו-getCaptureMode() ב-ImageCapture() (I5bc17)
  • הארגומנטים שהועברו בעבר ב-ImageCapture.OnImageSavedCallback.onError() וב-ImageCapture.OnImageCapturedCallback.onError() הוחלפו עכשיו בארגומנט יחיד ImageCaptureException, שעדיין מכיל את כל המידע שהועבר בעבר.
  • הארגומנט של הקובץ שהועבר בעבר ב-ImageCapture.OnImageSavedCallback.onImageSaved() הוסר. (I750d2)
  • הכיתות Preview ו-ImageCapture מסומנות עכשיו כסופיות. (I2500b)
  • ה-API עודכן, והשיטות getZoomRatio(), ‏ getMaxZoomRatio(),‏ getMinZoomRatio() ו-getLinearZoom() של CameraInfo מוזגו ל-getZoomState(), שמחזירה מופע של ZoomState. (Ib19fe)
  • השדות OPTION_TARGET_CLASS ו-OPTION_TARGET_NAME של ה-API הוסרו מ-CameraXConfig כי הם מיועדים לשימוש פנימי בספרייה בלבד. הוסר ה-constructor של CameraXConfig.Builder. (I96912)
  • הוסרה הדרישה שהאפליקציה תרחיב את Application כדי לאתחל את CameraX. עכשיו CameraX יופעל עם הגדרת ברירת המחדל של Camera2, כל עוד פריט המידע שנוצר בתהליך הפיתוח (artifact) של 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 דורשת את markerClass ExperimentalCamera2Interop.

גרסה 1.0.0-alpha09 של Camera-Core

‫22 בינואר 2020

‫androidx.camera:camera-core:1.0.0-alpha09 מופץ. גרסה 1.0.0-alpha09 מכילה את השמירות האלה.

שינויים ב-API

  • השם של הפרמטר SurfaceOrientedMeteringPointFactory useCaseForSurface השתנה ל-useCaseForAspectRatio, והרחבנו את מאמרי העזרה.
  • השיטות FocusMeteringAction.Builder.from() מוחלפות על ידי ה-constructors‏ FocusMeteringAction.Builder().
  • הסרת את DisplayOrientedMeteringPointFactory(android.content.Context, androidx.camera.core.CameraSelector, float, float). באפליקציות צריך להשתמש ב-constructor שמקבל פרמטר Display ולהעביר את התצוגה הנוכחית.
  • שיפורים ב-Javadoc לממשקי API של מיקוד ומדידה בנוגע ל-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 כדי לחלץ את מזהה המצלמה.

גרסה 1.0.0-alpha08 של Camera-Core

‫18 בדצמבר 2019

‫androidx.camera:camera-core:1.0.0-alpha08 מופץ. גרסה 1.0.0-alpha08 מכילה את השמירות האלה.

בעיות מוכרות

  • באפליקציות שמשתמשות ב-PreviewView או ב-CameraView, יכול להיות שיחס הגובה-רוחב בתצוגה המקדימה יהיה שגוי. זה קורה אחרי השהיה או המשך במכשירים מסוימים עם יכולות FULL, כמו Pixel 2.

תיקוני באגים

  • עדכנו את המסמכים של FocusMeteringAction ו-CameraControl.
  • הטמעתי את TorchControl ב-enableTorch() וב-getTorchState().

שינויים ב-API

  • הסתרת IntDefs והעברת קבועי IntDef אל מחוץ להגדרת IntDef.
  • העברת rotationDegrees מהכיתה OnImageCaptureCallback אל ImageInfo.
  • העברת rotationDegrees מהכיתה Analyzer אל ImageInfo.

גרסה ‎1.0.0-alpha07 של Camera-Camera2

‫4 בדצמבר 2019

‫androidx.camera:camera-camera2:1.0.0-alpha07 מופץ. גרסה 1.0.0-alpha07 של camera-camera2 מכילה את השינויים האלה

  • עכשיו אפשר להשתמש ב-Camera2Config כדי להפעיל ולהגדיר הטמעה של CameraX שמבוססת על Camera2. פרטים נוספים על השימוש בזה באתחול זמינים בקטע camera-core בהערות המוצר.
  • הפונקציונליות של יכולת הפעולה ההדדית של camera2 מסומנת עכשיו כניסיונית והועברה לחבילה נפרדת, androidx.camera.camera2.interop.

גרסה 1.0.0-alpha07 של Camera-Core

‫4 בדצמבר 2019

‫androidx.camera:camera-core:1.0.0-alpha07 מופץ. גרסה 1.0.0-alpha07 של camera-core מכילה את השינויים האלה

שימו לב שיש כמה שינויים משמעותיים בגרסת האלפא הזו, כחלק מההכנות שלנו לקראת גרסת הבטא. מומלץ לבדוק את השינויים ולשתף משוב בקבוצת Google של CameraX. למפתחים שמשתמשים ב-CameraX באפליקציות שנמצאות בחנות Play, אנחנו ממליצים להמתין לגרסת הבטא הרשמית לפני שמשדרגים את הספרייה באפליקציות.

שינויים ב-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(), שמחזירה listenable future, שמספק את ProcessCameraProvider בסיום. כאן הוא מוצג ב-onCreate() לשימוש אופייני. אפשר להפעיל קריאות ל-getInstance() בשלב מאוחר יותר במחזור החיים של הפעילות כדי לדחות את זמן האחזור של האתחול למועד מאוחר יותר (למשל, כשפעולת משתמש פותחת את ממשק המשתמש של המצלמה).

    import androidx.camera.lifecycle.ProcessCameraProvider
    import com.google.common.util.concurrent.ListenableFuture
    
    class MainActivity : AppCompatActivity() {
       private lateinit var cameraProviderFuture : ListenableFuture<ProcessCameraProvider>
       override fun onCreate(savedInstanceState: Bundle?) {
           cameraProviderFuture = ProcessCameraProvider.getInstance(this);
      }
    
  • אפשר להוסיף מאזין ל-ListenableFuture שמוחזר על ידי getInstance(). כך אפשר לאחזר את ספק המצלמה מ-Future בלי לחסום את Future.get()

    cameraProviderFuture.addListener(Runnable {
      val cameraProvider = cameraProviderFuture.get()
      cameraProvider.bindToLifecycle(...)
    }, ContextCompat.getMainExecutor(this))
    
  • עכשיו בוחרים מצלמה באמצעות בורר מצלמות, במקום לפי תרחיש שימוש

    val cameraSelector = CameraSelector.Builder().requireLensFacing(LensFacing.BACK).build()
    
  • CameraProvider.bindToLifecycle מקבל את בעלי מחזור החיים, את בורר המצלמה ואת תרחישי השימוש, שמשויכים לאחר מכן לבעלי מחזור החיים הנתון ומופעלים במצלמה שנבחרה.

    cameraProvider.bindToLifecycle(this as LifecycleOwner,
           cameraSelector, preview, imageAnalysis)
    
  • הסרנו את המחלקות של תרחיש השימוש Config. במקום זאת, צריך ליצור תרחישים לדוגמה באופן ישיר, ולהגדיר אפשרויות בכל כלי ליצירת תרחישים לדוגמה. לדוגמה:

    preview = Preview.Builder().setTargetAspectRatio(AspectRatio.RATIO_16_9).build()
    
  • התרחיש לדוגמה של התצוגה המקדימה עודכן כך שיקבל משטח שנוצר ומנוהל על ידי האפליקציה, כדי להבטיח שימוש בשיטות המומלצות של Android. מומלץ מאוד להשתמש במחלקת התצוגה PreviewView שכלולה בחבילה camera-view.

    preview.setPreviewSurfaceProvider(previewView.previewSurfaceProvider)
    
  • במסמכי התיעוד מוסבר איך לצרף משטח שמנוהל על ידי אפליקציה. במקרים כאלה, האפליקציה מנהלת את מחזור החיים של המשטח.

  • חשוב: ההטמעה של השיטה ImageAnalysis Analyzer חייבת להפעיל את image.close() בתמונות שהתקבלו בסיום השימוש בהן. אחרת, יכול להיות שלא יתקבלו תמונות חדשות או שהמצלמה תיתקע, בהתאם להגדרת הלחץ הנגדי. פרטים נוספים זמינים במסמכי העזרה.

  • ImageAnalysis ImageReaderMode השתנה לשיטת Backpressure‏ intdef.

  • ‫ImageProxy.getImage() מסומן כניסיוני. האפליקציות צריכות להוסיף הערות לגבי השימוש, למשל באמצעות @androidx.camera.core.ExperimentalGetImage

  • הדרישה להערה UIThread עבור Analyzer הוסרה.

  • הפונקציה ImageAnalysis.clearAnalyzer() נוספה כדי להסיר מנתח.

  • השם של מאזינים עם יותר משיטה אחת שונה ל-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 שדות הוחלפו ב-accessors מסוג get/set/is.

  • הפונקציות startFocusMetering ו-cancelFocusMetering מחזירות עכשיו את ListenableFutures, שמייצג את הפעולה האסינכרונית של הקריאה.

  • MeteringPoints פועלים עכשיו כנקודות אחיזה לפעולות מדידה, והם מיוצרים על ידי מפעלים. באפליקציות צריך להשתמש ב-factories הקיימים ולא ב-factories בהתאמה אישית.

בעיות שנפתרו

  • תוקנה בעיה שבה צילום תמונה בזמן המשך (אחרי השהיה קודמת שבה היו תמונות בהמתנה להשלמה).
  • בעיה ידועה: CameraControl.enableTorch() פועל, אבל הערך של ListenableFuture<Void> שמוחזר הוא תמיד complete(success) מיידי בעתיד, גם אם אין מבזק. בגרסאות עתידיות נתקן את זה להתנהגות הסופית: כשאין יחידת פלאש, enableTorch(true) נכשל מיד (לא ישלח בקשה אל CaptureSession), ו-TorchState נשאר כבוי.
  • בעיה ידועה: startFocusAndMetering ו-cancelFocusAndMetering מתחילים ומבטלים את מדידת המיקוד, אבל מחזירים מיד completed (success) עתידי שלא מייצג את ההתנהגות המתועדת. השדה FocusMeteringResult מ-ListenableFuture<FocusMeteringResult> CameraControl.startFocusAndMetering() הוא תוצאה מזויפת שisFocusSuccessful() והוא תמיד "FALSE", בניגוד להתנהגות המתועדת והמיועדת.
  • בעיה ידועה: אנחנו מפתחים מפעל לנקודות מדידה לשימוש עם אירועי מגע ב-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 מופצים. אלה ה-commits שנכללים ב-camera-camera2:1.0.0-alpha06 ואלה ה-commits שנכללים ב-camera-core:1.0.0-alpha06.

תכונות חדשות

שינויים בהגדרת יחסי הגובה-רוחב:

  • setTargetAspectRatioMode() נוסף ומקבל ארגומנט enum. ההגדרה הזו קובעת את מצב יחס הגובה-רוחב עם האפשרויות RATIO_4_3 או RATIO_16_9 במקום יחס גובה-רוחב שרירותי. ההגדרה הזו משקפת בצורה מדויקת יותר את העובדה שהמצלמה מספקת רק יחסי גובה-רוחב מסוימים, ולא יחס שרירותי כלשהו.
    • כרגע, יחסי הגובה-רוחב היחידים שזמינים הם 16:9 ו-4:3. במקרה של 1:1, רק במכשירים מסוימים אפשר להשתמש ביחס הזה במצלמה, וגם אז רק ברזולוציות מוגבלות. באפליקציות שבהן הממשק או העיבוד מתוכננים ליחס גובה-רוחב של 1:1, צריך להשתמש באפשרויות הגמישות יותר של 16:9 או 4:3 ולחתוך את התצוגה או לעבד אזור משנה.
    • יחסי הגובה-רוחב האלה מותאמים לשימוש בשטח המקסימלי של החיישן.
  • הוספנו את getTargetAspectRatio() לממשקי ה-API של הגדרות תרחישי השימוש, והוא מחזיר את יחס הגובה-רוחב שאליו מיועד הפלט של תרחיש השימוש.
  • השיטה setTargetAspectRatio(Rational aspectRatio) השתנתה ל-setTargetAspectRatioCustom(Rational aspectRatio) ב-ImageCapture. כשההגדרה הזו מופעלת, הפלט של ImageCapture נחתך בהתאם.

ממשקי API של Executor

  • הפונקציות הבאות מקבלות פרמטר של מפעיל, שמאפשר לאפליקציה לקבוע באיזה מפעיל הפונקציה תפעל.
    • Preview.setOnPreviewOutputUpdateListener() API. אם ה-executor לא קיים בפונקציה הזו, היא תפעל בשרשור הראשי.
    • Preview.setOnPreviewOutputUpdateListener
    • FocusMeteringAction.Builder.setAutoFocusCallback
    • ImageAnalysis.setAnalyzer
    • ImageCapture.takePicture
    • CameraView.takePicture
    • CameraView.startRecording
    • VideoCapture.startRecording

נוסף CameraInfo עם ממשקי 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(). אם קוראים לשניהם באותו בונה, מוחזרת שגיאה.
    • באופן כללי, מומלץ להשתמש ב-setTargetAspectRatio() בהתאם לעיצוב של ממשק המשתמש באפליקציה. הפתרונות הספציפיים מבוססים על תרחיש השימוש. לדוגמה, התצוגה המקדימה קרובה לרזולוציות המסך, וצילום התמונות מספק תמונות סטילס ברזולוציה גבוהה. מידע נוסף זמין בטבלה של פתרונות אוטומטיים.
    • אפשר להשתמש ב-setTargetResolution() במקרים ספציפיים יותר, למשל כשנדרשת רזולוציה מינימלית (כדי לחסוך במשאבי מחשוב) או מקסימלית (לעיבוד פרטים).
  • ‫Executor API: הוסרה הקריאה ל-setCallbackHandler() מממשקי ה-API להגדרת תרחישי שימוש. במקום זאת, אפליקציות יכולות להגדיר את ה-executor כפרמטר בממשקי API אחרים שמגדירים קריאה חוזרת (callback).
  • הערות null מעודכנות לפונקציות שונות.
  • תוקנה בעיה שגרמה להצגת השגיאה java.lang.IllegalStateException at Camera$StateCallback.onError בפתיחת המצלמה.
  • תוקנה בעיה שבה נבחרו רזולוציות קטנות מדי (פחות מ-640x480) כשהאפליקציה ביקשה רזולוציות גדולות יותר או רזולוציות ברירת מחדל, וכתוצאה מכך תמונת התצוגה המקדימה הייתה מטושטשת או עם פיקסלים גדולים. אפליקציות שצריכות רזולוציות קטנות יותר יכולות לבקש אותן באופן מפורש.
  • תוקנה בעיה שבה המצלמה הציגה מסך שחור (לא הצליחה להפעיל את המצלמה) אחרי חזרה מ-intent שהפעיל אפליקציית מצלמה אחרת.
  • תוקן באג שגרם להצגת השגיאה הבאה כשאפליקציות הופעלו או הופסקו שוב ושוב: java.lang.IllegalArgumentException: CaptureRequest contains unconfigured Input/Output Surface!
  • תוקנה השגיאה הבאה שמתרחשת כשמשביתים את ImageAnalysis: ‏java.lang.IllegalStateException: maxImages (4) has already been acquired, call #close before acquiring more.
  • נוספו בדיקות לתהליך הניתוק של המצלמה.
  • שיפרנו את היציבות של מערכת הבדיקה כשמריצים בדיקות מצלמה בזו אחר זו.

‫Camera-Camera2 ו-Camera-Core גרסה 1.0.0-alpha05

‫5 בספטמבר 2019

‫androidx.camera:camera-camera2:1.0.0-alpha05 ו-androidx.camera:camera-core:1.0.0-alpha05 מופצים. אלה ה-commits שנכללים ב-camera-camera2:1.0.0-alpha05 ואלה ה-commits שנכללים ב-camera-core:1.0.0-alpha05.

  • שינוי ב-API: שינוי השם של משתני השגיאה בתרחישי השימוש:

    • השם של ImageCapture.UseCaseError השתנה לשם ImageCapture.ImageCaptureError
    • השם של VideoCapture.UseCaseError השתנה לשם VideoCapture.VideoCaptureError
  • נוסף ממשק API של CameraControl עם ממשקי API של "לחיצה למיקוד"

    • נוסף API לקבלת CameraControl מ-CameraX למצלמה, שנבחרה לפי כיוון העדשה:

      CameraX.getCameraControl(LensFacing lensFacing)

    • הוספנו את MeteringPointFactory,‏ MeteringPoint,‏ MeteringMode ו-FocusMeteringAction כדי להפעיל את התכונה "התמקדות בנגיעה":

      MeteringPointFactory factory = new SensorOrientedMeteringPointFactory(width, height);
      MeteringPoint point = factory.createPoint(x, y);
      FocusMeteringAction action = FocusMeteringAction.Builder.from(point,
                                       MeteringMode.AF_ONLY)
          .addPoint(point2, MeteringMode.AE_ONLY) // could have many
          .setAutoFocusCallback(new OnAutoFocusListener(){
              public void onFocusCompleted(boolean isSuccess) {
              }
          })
          // auto calling cancelFocusAndMetering in 5 sec.
          .setAutoCancelDuration(5, TimeUnit.Second)
          .build();
      
    • נוסף API ל-CameraControl כדי להתחיל ולבטל את מדידת המיקוד:

      getCameraControl(lensFacing).startFocusAndMetering(action); getCameraControl(lensFacing).cancelFocusAndMetering();

    • הוספנו ממשקי API ל-Metering Point 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 בהגדרות שונות, ופונקציות getter תואמות עשויות להחזיר ערך 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 מתפשרת על הרזולוציה או על יחסי הגובה-רוחב בהתאם ליכולות של המכשיר, כדי להתחיל סשן צילום כמטרה ראשונה, ולכן יכול להיות שהבקשות המדויקות לא יכובדו. הסיבה לכך יכולה להיות:

  • מכשירים שלא תומכים ברזולוציה המבוקשת
  • בעיות תאימות, כמו במכשירים מדור קודם שבהם צריך להשתמש ברזולוציות מסוימות כדי לפעול בצורה תקינה
  • במכשירים מסוימים, פורמטים מסוימים זמינים רק ביחסי גובה-רוחב מסוימים
  • העדפה ל-"nearest mod16" לקידוד JPEG או וידאו. למידע נוסף, אפשר לעיין במאמר CameraCharacteristics#SCALER_STREAM_CONFIGURATION_MAP.

למרות ש-CameraX יוצרת ומנהלת את הסשן, תמיד צריך לבדוק את גודלי התמונות שמוחזרים בפלט של תרחיש השימוש בקוד, ולשנות אותם בהתאם.

ביצענו כמה שינויים בהגדרת הרזולוציות ויחסי הגובה-רוחב, במטרה להפוך את ה-API לברור יותר:

  • מעכשיו, אם לא מוגדר יחס גובה-רוחב, ברירת המחדל של תרחיש השימוש בתצוגה המקדימה היא 4:3.
  • כש-CameraX שוקלת באופן פנימי שינויים ברזולוציות וביחסי הגובה-רוחב המבוקשים על סמך יכולת המכשיר, היא מנסה קודם לשמור על אותו יחס גובה-רוחב (כפי שנקבע על ידי קריאות של setTargetAspectRatio או setTargetResolution)
  • גרסת "Nearest mod16" של הרזולוציה נחשבת לאותו יחס גובה-רוחב.

מצב ImageAnalysis ללא חסימה

  • ההתנהגות של ImageReaderMode.ACQUIRE_LATEST_IMAGE לא חוסמת עכשיו. הוא מקבל את התמונה האחרונה בתור, אבל נפטר מתמונות שלא נעשה בהן שימוש באופן רציף כדי למנוע חסימה של צינור עיבוד הנתונים של המצלמה.
  • המנתח יכול להחזיק תמונה אחת ללא הגבלת זמן בלי לעכב את הצינור.
  • אם האפליקציה מספקת מבצע (executor) שחוסם, תרחיש השימוש של ImageAnalysis חוסם.
  • מבצע המשימות שמוגדר כברירת מחדל באופן פנימי פועל כמבצע משימות שלא חוסם.

תיקוני באגים

  • תוקנו בעיות של זמן קצוב לתפוגה בהמתנה להתכנסות 3A בזמן צילום תמונות במכשירים ללא מיקוד אוטומטי, חשיפה אוטומטית ואיזון לבן אוטומטי
  • תוקנה בעיה שקרתה כשצילמו תמונות במהירות באמצעות ImageCapture. תיקון השגיאה: java.lang.IllegalStateException: maxImages (2) has already been acquired
  • תוקנה בעיה שבה לא בוצעה קריאה ל-setLensFacing בתרחיש לדוגמה, וכתוצאה מכך התקבלה השגיאה java.lang.IllegalArgumentException: Unable to get camera ID for use case.
  • תוקנה בעיה שבה מכשיר מדור קודם דרש יחס גובה-רוחב ספציפי כרזולוציית JPEG מקסימלית
  • תוקנה בעיה שקרתה כשהאפליקציה הועברה לרקע בזמן שהמצלמה נפתחה
  • תוקנה בעיה ב-API < 25, הסרת השגיאה checkAndUpdateEglState: invalid current EGLDisplay
  • תוקנה בעיה שבה התצוגה המקדימה לא בוטלה אחרי הפעלה של תוספים
  • רכיבי build של camera-view ו-camera-extensions מתפרסמים עכשיו כגרסאות אלפא

‫Camera-Camera2 ו-Camera-Core גרסה 1.0.0-alpha03

‫2 ביולי 2019

‫androidx.camera:camera-core:1.0.0-alpha03 ו-androidx.camera:camera-camera2:1.0.0-alpha03 מופצים. גרסה ‎1.0.0-alpha03 מכילה את השמירות האלה.

שינויים ב-API

  • הוספנו הבהרה ב-javadoc לגבי target בקריאות להגדרות אישיות של setTarget

Camera-Core

  • תוקנה קריסה של משטח קלט/פלט שלא הוגדר בפתיחה/סגירה מהירה או בקישור/ביטול קישור
  • מעבר להטמעות חדשות של Futures
  • תיקוני בדיקות לבדיקות חזקות יותר
  • בבדיקת השילוב של Core מוצג עכשיו זמן הצילום של התמונות
  • פיתוח מחלקת תאימות פנימית ל-Executors
  • בדיקת תזמון: האפליקציה לוכדת תמונות וממתינה להשלמת התמונה הקודמת, ושיפור היציבות

תוספים

  • נוספו בדיקות של ניהול גרסאות
  • כיסוי בדיקה נוסף – קריאות חוזרות (callbacks) של אירועי תוספים
  • שיפורים בתמונה ובמטא-נתונים שתואמים באופן פנימי
  • תיקונים למעבר בין מצבים באפליקציית הבדיקה

‫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 מכילה את השמירות האלה.

תיקוני באגים

  • תוקנה בעיה של חלוקה באפס כשמשתמשים באמולטור
  • תוקנה שגיאת NullPointerException/Surface Abandoned שמתרחשת במכשירים מסוימים כשמצלמים תמונות במהירות תוך כדי ביטול קישור וקישור מחדש של תרחישי שימוש במהירות.
  • תוקנה בעיה פנימית כדי לוודא שעדכונים של בקשות תיעוד משפיעים על כל הפלטפורמות באופן עקבי
  • שיפורים ביציבות כשמפעילים מחדש תרחישי שימוש במופעים חדשים של האפליקציה
  • שינויים בארכיטקטורה הפנימית כהכנה לתמיכה ב-executors ב-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 מכילה את השמירות האלה.

גרסה 1.0.0-beta11 של Camera-Lifecycle

‫14 באוקטובר 2020

‫androidx.camera:camera-lifecycle:1.0.0-beta11 מופץ. גרסה 1.0.0-beta11 כוללת את השינויים האלה.

תיקוני באגים

  • הפונקציה <UseCase>.getTargetRotation() תחזיר את הערך Surface.ROTATION_0 אם היא נקראת לפני שהיא מצורפת למכונה של מצלמה, אלא אם הוגדר targetRotation ב-Builder או ב-UseCase. (I80fcd)

גרסה 1.0.0-beta10 של Camera-Lifecycle

‫23 בספטמבר 2020

‫androidx.camera:camera-lifecycle:1.0.0-beta10 מופץ. גרסה 1.0.0-beta10 מכילה את השינויים האלה.

תיקוני באגים

גרסה 1.0.0-beta09 של Camera-Lifecycle

16 בספטמבר 2020

‫androidx.camera:camera-lifecycle:1.0.0-beta09 מופץ. גרסה 1.0.0-beta09 מכילה את השינויים האלה.

גרסה 1.0.0-beta08 של Camera-Lifecycle

‫19 באוגוסט 2020

‫androidx.camera:camera-lifecycle:1.0.0-beta08 מופץ. גרסה 1.0.0-beta08 כוללת את השינויים האלה.

תיקוני באגים

  • האתחול לא אמור לקרוס יותר כשמשתמשים בהקשר שלא מחזיר אובייקט של אפליקציה מ-Context.getApplicationContext(). (I3d3c9, b/160817073)

גרסה 1.0.0-beta07 של Camera-Lifecycle

‫22 ביולי 2020

‫androidx.camera:camera-lifecycle:1.0.0-beta07 מופץ. גרסה 1.0.0-beta07 מכילה את השינויים האלה.

גרסה 1.0.0-beta06 של Camera-Lifecycle

‫24 ביוני 2020

‫androidx.camera:camera-lifecycle:1.0.0-beta06 מופץ. גרסה 1.0.0-beta06 מכילה את השמירות האלה.

שינויים ב-API

  • עכשיו אפשר להגדיר את CameraX באמצעות ProcessCameraProvider#configureInstance()‎ לפני שקוראים ל-ProcessCameraProvider#getInstance()‎. כך אפשר להתאים אישית את CameraXConfig בלי להטמיע את CameraXConfig.Provider במחלקת האפליקציה. (Ia1a8d)

גרסה 1.0.0-beta05 של Camera-Lifecycle

‫10 ביוני 2020

‫androidx.camera:camera-lifecycle:1.0.0-beta05 מופץ. גרסה 1.0.0-beta05 מכילה את השינויים האלה.

תיקוני באגים

  • תיקון הקריסה בהפעלת האפליקציה כשמפעילים את CameraX כשהטלפון במצב "נא לא להפריע". אם InitializationException מכיל CameraUnavailableException, הוא יוגדר ל-ListenableFuture של תוצאת האיניציאליזציה במקום לגרום לקריסת האפליקציה. (I9909a, ‏ b/149413835)

גרסה 1.0.0-beta04 של Camera-Lifecycle

‫27 במאי 2020

‫androidx.camera:camera-lifecycle:1.0.0-beta04 מופץ. גרסה ‎1.0.0-beta04 מכילה את השמירות האלה.

גרסה 1.0.0-beta03 של Camera-Lifecycle

15 באפריל 2020

‫androidx.camera:camera-lifecycle:1.0.0-beta03 מופץ. גרסה ‎1.0.0-beta03 מכילה את השינויים האלה.

תיקוני באגים

  • תוקנה רגרסיה מ-beta03 שבה קריאה ל-bindToLifecycle() עם אפס UseCase גרמה להקפצת חריגה. זה מנע אחזור של Camera בלי לקשר UseCase.
  • תיקונים לתמיכה בהשקה של camera-core

גרסה 1.0.0-beta01 של Camera-Lifecycle

‫26 בפברואר 2020

‫androidx.camera:camera-lifecycle:1.0.0-beta01 מופץ. גרסה 1.0.0-beta01 מכילה את השינויים האלה.

תיקוני באגים

  • תיקון התיעוד כדי לציין שכאשר מקבלים ProcessCameraProvider במהלך האתחול, נעשה שימוש בהגדרת ברירת מחדל, ושהרחבת Application היא אופציונלית. (I5e395)

גרסה 1.0.0-beta02 של Camera-Lifecycle

‫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.

גרסה 1.0.0-alpha10 של Camera-Lifecycle

‫10 בפברואר 2020

‫androidx.camera:camera-lifecycle:1.0.0-alpha10 מופץ. גרסה 1.0.0-alpha10 כוללת את השינויים האלה.

שינויים ב-API

  • הוספנו את ההערה @MainThread לשיטות BindToLifecycle, ‏ unbind ו-unbindAll. (I990d2)

גרסה 1.0.0-alpha03 של Camera-Lifecycle

‫22 בינואר 2020

‫androidx.camera:camera-lifecycle:1.0.0-alpha03 מופץ. גרסה ‎1.0.0-alpha03 מכילה את השמירות האלה.

עדכונים

  • תיקונים ועדכונים שונים לתמיכה בשינויים ב-Camera Core וב-Camera2.

גרסה 1.0.0-alpha02 של Camera-Lifecycle

‫18 בדצמבר 2019

‫androidx.camera:camera-lifecycle:1.0.0-alpha02 מופץ. גרסה ‎1.0.0-alpha02 מכילה את השמירות האלה.

שינויים ביחסי תלות

  • ההגדרה עודכנה לשימוש ב-androidx.camera:camera-core:1.0.0-alpha08.

גרסה 1.0.0-alpha01 של Camera-Lifecycle

‫4 בדצמבר 2019

‫androidx.camera:camera-lifecycle:1.0.0-alpha01 מופץ. גרסה 1.0.0-alpha01 של camera-lifecycle מכילה את השינויים האלה

הערות לגבי ה-API

  • נוסף פריט המידע camera-lifecycle, שמספק את הממשק LifeCycleCameraProvider והטמעה שנקראת ProcessCameraProvider. ההטמעה הזו מספקת הרבה מהפונקציות של המחלקה הקודמת של CameraX בליבה, ומתקבלת באמצעות השיטה getInstance().
  • כדי להשתמש ב-CameraX, האפליקציות צריכות לכלול את הספרייה camera-lifecycle.
  • בקטע camera-core מוסבר איך לבצע אתחול של CameraX באמצעות ProcessCameraProvider.

גרסה 1.0.0 של Camera-Extensions ו-Camera-View

גרסה 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 של פריט המידע שנוצר בתהליך הפיתוח (artifact) של camera-extensions. (If683a, b/161377155)

תיקוני באגים

  • לא לאפשר לאפליקציה להפעיל מצבי תוספים בזמן הקישור של VideoCapture. תוספי CameraX תומכים רק ב-ImageCapture וב-Preview. עדיין אין תמיכה בVideoCapture. אם האפליקציה מקשרת את VideoCapture ומפעילה מצב תוסף כלשהו, תתקבל הודעת IllegalArgumentException. (I0d87b)
  • הפונקציה CameraSelector#filter לא מחזירה יותר שגיאת IllegalArgumentException כשקבוצת התוצאות ריקה. (I27804)
  • שינינו את השם של ה-API ‏ExtensionsManager#getInstance ל-getInstanceAsync כי הוא מחזיר ListenableFuture. הסיומת Async של שם הפונקציה יכולה להציג בבירור שמדובר בפונקציה אסינכרונית. (I279d2)
  • צריך להסיר את פרמטר הרזולוציה מה-API של ExtensionsManager#getEstimatedCaptureLatencyRange כי המשתמשים לא יכולים לדעת אילו גדלים נתמכים בתרחיש לדוגמה של ImageCapture, ולא יכולים להבחין אם מידע זמן האחזור שהוחזר הוא לגודל הפלט המקסימלי של הצילום או לפרמטר של רזולוציית הקלט. (I74bb2)
  • מעבירים את הפרמטר CameraProvider של הפונקציות ExtensionsManager ל-API של getInstance(). כדי שהמשתמשים לא יצטרכו להזין את הפרמטר CameraProvider בכל פעם שהם קוראים לפונקציות של ExtensionsManager. (Ic7e48)

גרסה 1.0.0-alpha31

17 בנובמבר 2021

‫androidx.camera:camera-extensions:1.0.0-alpha31 ו-androidx.camera:camera-view:1.0.0-alpha31 מופצים. גרסה 1.0.0-alpha31 מכילה את השינויים האלה.

שינויים ב-API

  • הוספנו את CameraSelector#filter ל-API הציבורי כדי לסנן רשימה של CameraInfos על סמך CameraSelector. (I105d0)

תיקוני באגים

  • תוקנה קריסה שקרתה כשעברו במהירות בין מצבי תוספים במכשירים מסוימים. (Iebbef)

גרסה 1.0.0-alpha30

‫13 באוקטובר 2021

‫androidx.camera:camera-extensions:1.0.0-alpha30 ו-androidx.camera:camera-view:1.0.0-alpha30 מופצים. גרסה 1.0.0-alpha30 כוללת את השינויים האלה.

שינויים ב-API

  • הוספנו את ההערה ‎ @RequiresApi(21)‎ לכל המחלקות של CameraX והסרנו את minSdkVersion מ-AndroidManifest.xml. כך אפשר לשלב בקלות את camera-core באפליקציות עם minSdkVersion נמוך מ-21, אבל רוצים להשתמש באופן מותנה בנתיבי קוד שמסתמכים על API 21 ואילך. אם minSdkVersion של האפליקציה הוא 21 ומעלה, לא צריך לעשות שום דבר. (Ie7f2e, b/200599470)

תיקוני באגים

  • תוקנה הבעיה AbstractMethodError שמתרחשת כש-proguard מופעל. (Iae468, b/201177844)

גרסה 1.0.0-alpha29

‫29 בספטמבר 2021

‫androidx.camera:camera-extensions:1.0.0-alpha29 ו-androidx.camera:camera-view:1.0.0-alpha29 מופצים. גרסה 1.0.0-alpha29 מכילה את השינויים האלה.

שינויים ב-API

  • ההערה ExperimentalUseCaseGroup הוסרה כי ממשקי ה-API כבר לא ניסיוניים. (I01ef5)
  • הסרה של RotationProvider#removeAllListeners(). במקומה יש להשתמש במדיניות RotationProvider#removeListener(...). (Id9d4a)
  • עדכנו את המחלקה RotationReceiver: שינינו את set/clear Listener ל-add/remove/removeAll, הסרנו את הווריאציה של setListener שמשתמשת בשרשור הראשי כברירת מחדל והוספנו הערות לשיטות. (Ib1669)

תיקוני באגים

  • שינינו את השם של ExtensionMode#BEAUTY ל-FACE_RETOUCH כדי להציג בצורה נכונה את הפעולה של מצב התוסף. (I61f54, b/198515274)
  • תוקנה הבעיה שבה המצלמה נסגרת באופן בלתי צפוי כשמשתמשים בכמה CameraController ו-PreviewView בפעילות אחת. (Ibfd18, b/197539358)

גרסה 1.0.0-alpha28

‫18 באוגוסט 2021

‫androidx.camera:camera-extensions:1.0.0-alpha28 ו-androidx.camera:camera-view:1.0.0-alpha28 מופצים. גרסה 1.0.0-alpha28 מכילה את השינויים האלה.

שינויים ב-API

  • ההערה ExperimentalUseCaseGroupLifecycle הוסרה כי ממשקי ה-API כבר לא ניסיוניים. (I17b85)
  • בוצע refactoring של RotationListener והשם שלו שונה ל-RotationProvider. הוא ממשיך לספק את אותה תכונה עם API שונה במקצת. (Idffc5)
  • לשנות את השם של TAP_TO_FOCUS_UNSUCCESSFUL ל-TAP_TO_FOCUS_NOT_FOCUSED ואת השם של TAP_TO_FOCUS_SUCCESSFUL ל-TAP_TO_FOCUS_FOCUSED. הגדרת OutputSize כ-final‏ (I099fa)

תיקוני באגים

  • הוסרו מחלקות <EffectName><UseCase>Extender שהוצאו משימוש, ExtensionsErrorListener וממשקי API קשורים של ExtensionsManager. (I3b8c3)

גרסה 1.0.0-alpha27

‫21 ביולי 2021

‫androidx.camera:camera-extensions:1.0.0-alpha27 ו-androidx.camera:camera-view:1.0.0-alpha27 מופצים. גרסה 1.0.0-alpha27 מכילה את השמירות האלה.

שינויים ב-API

  • העברנו את viewport API מסטטוס ניסיוני לסטטוס רגיל. מסירים את ההערה הניסיונית של ה-API. (I717ea)
  • שינוי השם של CoordinateTransform#getTransform ל-CoordinateTransform#transform ועדכון JavaDoc‏ (I864ae)

תיקוני באגים

  • תוקנה בעיה שגרמה למתיחה של מצב PreviewView PERFORMANCE כשמשתמשים בו יחד עם ממשק המשתמש של Compose. (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 ו-executors בהתאמה אישית. (Iea8f2)
  • מוסיפים את המחלקה RotationReceiver שמקבלת שינויים בסיבוב של Surface. אפשר להשתמש בזה כדי להגדיר את סיבוב היעד כשהמכשיר נמצא במצב קבוע של פריסה לאורך או לרוחב. (Ib278f)
  • חשפנו ממשקי API ציבוריים חדשים מסוג getEstimatedCaptureLatencyRange בכיתה ExtensionsManager. (I6a8ec)
  • הוצא משימוש: ExtensionsErrorListener. נכון לעכשיו, הממשק הזה משמש רק כדי לבדוק אם חסרה תצוגה מקדימה או ImageCapture כשמפעילים מצבי תוספים. ‫CameraX יוסיף באופן אוטומטי תצוגה מקדימה או ImageCapture נוספים כדי שפונקציות התוסף יפעלו היטב. אחרי שהתקופה הזו תסתיים, לא ידווחו שגיאות דרך הממשק הזה. (I47d9e)
  • חשפנו ממשקי API ציבוריים חדשים של ExtensionsManager getInstance,‏ isExtensionAvailable ו-getExtensionEnabledCameraSelector, והוצאנו משימוש מחלקות <EffectName><UseCase>Extender ישנות וממשקי API קשורים. (I329e6)

גרסה 1.0.0-alpha25

‫2 ביוני 2021

‫androidx.camera:camera-extensions:1.0.0-alpha25 ו-androidx.camera:camera-view:1.0.0-alpha25 מופצים. גרסה 1.0.0-alpha25 מכילה את השמירות האלה.

שינויים ב-API

  • ממשקי ה-API של ExperimentalCameraFilter יצאו משלב הניסוי והפכו לממשקי API רשמיים. אפשר להשתמש בהם בלי OptIn עם הערות. (I4bc94)
  • הוספת כלי שמשנה את הקואורדינטות בין תרחישים לדוגמה. דוגמה לשימוש: המרת הקואורדינטות שזוהו בתרחיש לדוגמה של ImageAnalysis והדגשת האובייקט שזוהה בתצוגה המקדימה. (I63ab1, b/137515129)
  • בוצעה הסרה של CameraView. ‫CameraView הוחלף על ידי CameraController. במדריך להעברת נתונים (מיגרציה) מוסבר איך מעבירים את הנתונים. (Id5005)

תיקוני באגים

  • ‫ExperimentalUseCaseGroupLifecycle הוחלף בטקסט ExperimentalUseCaseGroup. (I3b2ef, ‏ b/159033688)

גרסה 1.0.0-alpha24

‫21 באפריל 2021

‫androidx.camera:camera-extensions:1.0.0-alpha24 ו-androidx.camera:camera-view:1.0.0-alpha24 מופצים. גרסה 1.0.0-alpha24 מכילה את השינויים האלה.

תיקוני באגים

  • החלפנו את ההערה @Experimental ב-@RequiresOptIn לממשקי API ניסיוניים. כדי לקרוא לממשקי API ניסיוניים, צריך להשתמש ב-androidx.annotation.OptIn במקום ב-androidx.annotation.experimental.UseExperimental שהוצא משימוש. (Iff226)
  • תוקנה הבעיה של מתיחת PreviewView במכשיר Samsung J5 Prime‏ (Ib10b6)

גרסה 1.0.0-alpha23 של Camera Extensions ו-View

‫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 לקובצי ה-artifact העדכניים בגרסה 1.1.0, למרות ש-camera-view עדיין תואם לקובצי ה-artifact האלה אם הם מוגדרים באופן מפורש לשימוש בגרסה 1.1.0. (Ic8fa1, b/181599852)
  • תוקנה התצוגה המקדימה המתוחה ב-PreviewView ב-Samsung A3. (Iacb30, ‏ b/180121821)
  • תוקנה הבעיה שבה לא ניתן להגדיר את בורר המצלמה לפני שהמצלמה מופעלת. (Ic8bd0)

תוספים ותצוגה של המצלמה בגרסה 1.0.0-alpha22

‫24 בפברואר 2021

‫androidx.camera:camera-extensions:1.0.0-alpha22 ו-androidx.camera:camera-view:1.0.0-alpha22 מופצים. גרסה 1.0.0-alpha22 מכילה את השמירות האלה.

שינויים ב-API

  • הוספת פונקציית getter של CameraInfo ל-CameraController. (Ib8138, ‏ b/178251727)

תיקוני באגים

  • תוקן ExtensionsErrorListener כדי לדווח על שגיאות כש-Preview או ImageCapture בלבד מקושרים. (I5ae39)

Camera Extensions & View גרסה 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 של Camera Extensions ו-View

‫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 מכילה את השינויים האלה.

תיקוני באגים

  • שיפור זמן האחזור של האתחול של CameraX ו-bindToLifecycle‏ (I61dc5)
  • הפונקציה <UseCase>.getTargetRotation() תחזיר את הערך Surface.ROTATION_0 אם היא נקראת לפני שהיא מצורפת למכונה של מצלמה, אלא אם הוגדר targetRotation ב-Builder או ב-UseCase. (I80fcd)

‫Camera-View גרסה 1.0.0-alpha18

‫14 באוקטובר 2020

‫androidx.camera:camera-view:1.0.0-alpha18 מופץ. גרסה 1.0.0-alpha18 מכילה את השינויים האלה.

גרסה חדשה לתמיכה ברכיבים אחרים של ספריית המצלמה.

‫Camera-Extensions גרסה ‎1.0.0-alpha17

‫23 בספטמבר 2020

‫androidx.camera:camera-extensions:1.0.0-alpha17 מופץ. גרסה 1.0.0-alpha17 מכילה את השמירות האלה.

תיקוני באגים

‫Camera-View גרסה 1.0.0-alpha17

‫23 בספטמבר 2020

‫androidx.camera:camera-view:1.0.0-alpha17 מופץ. גרסה 1.0.0-alpha17 מכילה את השינויים האלה.

תיקוני באגים

‫Camera-Extensions גרסה ‎1.0.0-alpha16

16 בספטמבר 2020

‫androidx.camera:camera-extensions:1.0.0-alpha16 מופץ. גרסה 1.0.0-alpha16 מכילה את השינויים האלה.

תיקוני באגים

  • נוספה שיטה ב-ExtensionsManager כדי לקבל אובייקט Extensions שמשמש להפעלה ולשליחת שאילתות לגבי תוספים במופעים של מצלמה (I4fb7e)

‫Camera-View גרסה 1.0.0-alpha16

16 בספטמבר 2020

‫androidx.camera:camera-view:1.0.0-alpha16 מופץ. גרסה 1.0.0-alpha16 מכילה את השינויים האלה.

שינויים ב-API

  • הוסרו PreviewView#setDeviceRotationForRemoteDisplayMode() ו-PreviewView#getDeviceRotationForRemoteDisplayMode(). שתי השיטות מיועדות להתאמה אישית של סיבוב התצוגה המקדימה, כשהסיבוב הרצוי הוא לא סיבוב התצוגה, למשל תצוגה מרחוק. כדי לטפל בסיבוב של התצוגה המקדימה שלא מוצגת, מגדירים את הסיבוב הרצוי באמצעות Preview#setTargetRotation() ו-PreviewView#getViewPort(targetRotation) שנוסף לאחרונה. (Ib62cc)
  • השם של createSurfaceProvider() שונה ל-getSurfaceProvider(). השיטה תמיד תחזיר את אותו מופע של Preview.SurfaceProvider. (Iff83c)

תיקוני באגים

  • אילצנו את PreviewView להשתמש ב-TextureView אם אפקט התוסף מופעל וההטמעה של ספריית הספק צריכה לבצע תהליך מיוחד במשטח הפלט. (I0c3cc)
  • אפשר להגדיר סיבוב שרירותי של היעד בתצוגה המקדימה. פרטי הטרנספורמציה מחושבים ומוחזרים למשתמש בזמן אמת באמצעות קריאה חוזרת (callback) חדשה של TranformationInfoListener. (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 מכילה את השינויים האלה.

תיקוני באגים

  • ה-method‏ ExtensionsManager.init() מקבל עכשיו Context כפרמטר במקום 0 ארגומנטים. (Ife754)
  • ההפעלה לא אמורה לקרוס יותר כשמשתמשים ב-Context שלא מחזיר אובייקט של אפליקציה מ-Context.getApplicationContext(). (I3d3c9, b/160817073)

    ‫Camera-View גרסה 1.0.0-alpha15

    ‫19 באוגוסט 2020

‫androidx.camera:camera-view:1.0.0-alpha15 מופץ. גרסה 1.0.0-alpha15 מכילה את השינויים האלה.

תיקוני באגים

  • הפונקציה DisplayOrientedMeteringPointFactory מקבלת מופע של CameraInfo במקום CameraSelector, כך שיש מיפוי ישיר למצלמה שעבורה המפעל ייצור נקודות. כל המחלקות שמשתמשות ב-DisplayOrientedMeteringPointFactory מקבלות גם מופע של CameraInfo במקום CameraSelector. (I400c1)
  • בוצעה הסרה של TextureViewMeteringPointFactory. ‫PreviewView מספק API ציבורי (createMeteringPointFactory()) כדי ליצור מפעל לנקודות מדידה, בלי קשר לשימוש ב-TextureView או ב-SurfaceView. (Ide693)
  • שינוי השם של מצבי ההטמעה SURFACE_VIEW/TEXTURE_VIEW של PreviewView ל-PERFORMANCE/COMPATIBLE. PERFORMANCE הוא המצב הישן SURFACE_VIEW, ו-COMPATIBLE הוא המצב הישן TEXTURE_VIEW. (I0edc2)
  • בצילום תמונות, החלפת הדגל של ההיפוך האופקי במטא-נתונים על סמך כיוון המצלמה. (I28499)

‫Camera-Extensions גרסה 1.0.0-alpha14

‫22 ביולי 2020

‫androidx.camera:camera-extensions:1.0.0-alpha14 מופץ. גרסה 1.0.0-alpha14 מכילה את השינויים האלה.

‫Camera-View גרסה 1.0.0-alpha14

‫22 ביולי 2020

‫androidx.camera:camera-view:1.0.0-alpha14 מופץ. גרסה 1.0.0-alpha14 מכילה את השינויים האלה.

‫Camera-Extensions גרסה ‎1.0.0-alpha13

‫24 ביוני 2020

‫androidx.camera:camera-extensions:1.0.0-alpha13 מופץ. גרסה 1.0.0-alpha13 מכילה את השינויים האלה.

תיקוני באגים

  • הוספנו ממשקים ניסיוניים לסינון מצלמות לפי מזהה מצלמה ו-CameraCharacteristics. (I28f61)

גרסה ‎1.0.0-alpha13 של Camera-View

‫24 ביוני 2020

‫androidx.camera:camera-view:1.0.0-alpha13 מופץ. גרסה 1.0.0-alpha13 מכילה את השינויים האלה.

תיקוני באגים

  • ‫CameraView לא קורס יותר עם IllegalArgumentException כשמקשרים אותו ל-LifecycleOwner שה-Lifecycle שלו עובר למצב DESTROYED זמן קצר אחרי הקישור. אם מחזורי החיים של הקישור נמצאים במצב DESTROYED, לא יהיה ניסיון לפתוח את המצלמה. (I7c2b8)
  • ‫PreviewView StreamState זמין עכשיו דרך 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 מכילה את השמירות האלה.

תיקוני באגים

  • הוספת ממשק API של PreviewView#getBitmap() שמחזיר ייצוג של מפת סיביות (bitmap) של התוכן שמוצג במשטח התצוגה המקדימה. (I9b500, b/157659818)

‫Camera-Extensions גרסה 1.0.0-alpha11

‫27 במאי 2020

‫androidx.camera:camera-extensions:1.0.0-alpha11 מופץ. גרסה 1.0.0-alpha11 מכילה את השמירות האלה.

‫Camera-View גרסה 1.0.0-alpha12

‫10 ביוני 2020

‫androidx.camera:camera-view:1.0.0-alpha12 מופץ. גרסה 1.0.0-alpha12 מכילה את השמירות האלה.

תכונות חדשות

שינויים ב-API

תיקוני באגים

  • הוספת ממשק API של PreviewView#getBitmap() שמחזיר ייצוג של מפת סיביות (bitmap) של התוכן שמוצג במשטח התצוגה המקדימה. (I9b500, b/157659818)

גרסה ‎1.0.0-alpha11 של Camera-View

‫27 במאי 2020

‫androidx.camera:camera-view:1.0.0-alpha11 מופץ. גרסה 1.0.0-alpha11 מכילה את השמירות האלה.

שינויים ב-API

  • הוספת ה-API‏ PreviewView#getPreviewStreamState שמאפשר לאפליקציות לבדוק אם התצוגה המקדימה מועברת בסטרימינג או לא. כשה-PreviewView נמצא במצב TEXTURE_VIEW, המצב STREAMING גם מבטיח שתמונת התצוגה המקדימה תהיה גלויה. (Ic0906, b/154652477)
  • נוסף API של PreviewView#setDeviceRotationForRemoteDisplayMode() כדי לספק סיבוב מכשיר לחישובי טרנספורמציה אם האפליקציה פועלת במצב תצוגה מרחוק. (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)
  • צריך לעדכן את ה-API של CameraView#takePicture() כדי לאפשר שמירת תמונות ב-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

גרסה ‎1.0.0-alpha10 של Camera-View

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 מכילה את השינויים האלה.

תיקוני באגים

  • עודכן כדי לתמוך בתיקוני הבאגים בפריטי המידע שנוצרו בתהליך הפיתוח (artifacts) של camera-camera2:1.0.0-beta02,‏ camera-core:1.0.0-beta02 ו-camera-lifecycle:1.0.0-beta02

‫Camera-View גרסה 1.0.0-alpha09

‫1 באפריל 2020 ‫androidx.camera:camera-view:1.0.0-alpha09 מופץ. גרסה 1.0.0-alpha09 מכילה את השינויים האלה.

בעיות מוכרות

  • יכול להיות שהשימוש ב-ImplementationMode.SURFACE_VIEW עם PreviewView לא יפעל כמו שצריך במכשירים מסוימים, כי ה-SurfaceView שמשמש לתצוגה מקדימה מבטל את תוקף המשטח שלו כשמחזור החיים של החלון שבו הוא נמצא נעצר. כשהוא מופעל מחדש, המצלמה נפתחת שוב ויכול להיות שהיא תנסה להמשיך את התצוגה המקדימה לפני שהמשטח של ה-SurfaceView יהיה תקין שוב. בינתיים, כדאי להשתמש ב-ImplementationMode.TEXTURE_VIEW.

שינויים ב-API

  • השם של PreviewView.setImplementationMode() שונה ל-PreviewView.setPreferredImplementationMode().
  • השם של PreviewView.getImplementationMode() שונה ל-PreviewView.getPreferredImplementationMode().
  • החלפנו את PreviewView.getSurfaceProvider() ב-PreviewView.createSurfaceProvider(CameraInfo), שמקבל מופע CameraInfo שניתן לאפס, שמשמש לאופטימיזציה של התצוגה המקדימה באמצעות ImplementationMode.SURFACE_VIEW בכל פעם שאפשר. אם מועבר מופע null, או אם מגדירים את מצב ההטמעה המועדף ל-ImplementationMode.TEXTURE_VIEW, המערכת משתמשת ב-ImplementationMode.TEXTURE_VIEW באופן פנימי.
  • דוגמת הקוד הבאה מראה איך השתמשו בעבר בתרחיש לדוגמה של תצוגה מקדימה עם PreviewView.

    preview.setSurfaceProvider(previewView.previewSurfaceProvider)
    cameraProvider.bindToLifecycle(lifecycleOwner, cameraSelector, preview)
    

    כרגע, אתם יכולים לכתוב את הדברים הבאים:

    val camera = cameraProvider.bindToLifecycle(lifecycleOwner, cameraSelector, preview)
    previewView.preferredImplementationMode = ImplementationMode.TEXTURE_VIEW
    preview.setSurfaceProvider(previewView.createSurfaceProvider(camera.cameraInfo))
    
  • ההערה @UiThread נוספה אל PreviewView.getSurfaceProvider(), כלומר צריך לקרוא לה מה-thread הראשי. (I192f3)

  • נוסף PreviewView.setScaleType() שמאפשר להגדיר את סוג קנה המידה של התצוגה המקדימה. אפשר להזין בו אחד מהערכים ב-PreviewView.ScaleType, וברירת המחדל היא PreviewView.ScaleType.FILL_CENTER.

  • PreviewView.getScaleType() נוסף.

  • הוסרה התמיכה בהגדרת מצב ההטמעה של PreviewView בפריסת XML באמצעות המאפיין implementationMode.

  • הוספת API של createMeteringPointFactory() ל-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 מכילה את השמירות האלה.

‫Camera-View גרסה 1.0.0-alpha08

‫26 בפברואר 2020

‫androidx.camera:camera-view:1.0.0-alpha08 מופץ. גרסה 1.0.0-alpha08 מכילה את השינויים האלה.

תיקוני באגים

  • החלפנו את ListenableFuture ב-SurfaceRequest.provideSurface() ב-Executor וב-Callback. כך ה-API פשוט יותר, כי לא צריך יותר לטפל בחריגים ב-provideSurface(), ואי אפשר לבטל את הקריאה החוזרת (callback) של provideSurface(). כך אפשר למנוע קריסות במכשירים ישנים יותר שנגרמות בגלל שחרור מוקדם מדי של משטחים. האובייקט SurfaceRequest.Result משמש עכשיו למעקב אחרי האופן שבו SurfaceRequest משתמש ב-Surface שסופק. (I7854b)
  • השם של SurfaceRequest.setSurface(Surface) שונה ל-SurfaceRequest.provideSurface(Surface) והשם של SurfaceRequest.setWillNotComplete() שונה ל-SurfaceRequest.willNotProvideSurface(). (I224fe)
  • תוקנה בעיה באתחול של גרסאות שונות של אפליקציות כש-ProGuard מופעל, על ידי שמירת הדגל שמגדיר את ספק ברירת המחדל של CameraXConfig. (I2d6c1)

‫Camera-Extensions גרסה ‎1.0.0-alpha07

‫10 בפברואר 2020

‫androidx.camera:camera-extensions:1.0.0-alpha07 מופץ. גרסה 1.0.0-alpha07 מכילה את השמירות האלה.

תיקוני באגים

  • הארגומנטים שהועברו בעבר ב-ImageCapture.OnImageSavedCallback.onError() וב-ImageCapture.OnImageCapturedCallback.onError() הוחלפו עכשיו בארגומנט יחיד ImageCaptureException, שעדיין מכיל את כל המידע שהועבר בעבר.
  • הארגומנט של הקובץ שהועבר בעבר ב-ImageCapture.OnImageSavedCallback.onImageSaved() הוסר. (I750d2)

גרסה ‎1.0.0-alpha07 של Camera-View

‫10 בפברואר 2020

‫androidx.camera:camera-view:1.0.0-alpha07 מופץ. גרסה 1.0.0-alpha07 מכילה את השמירות האלה.

שינויים ב-API

  • ההטמעה של TextureView ב-PreviewView מגדירה עכשיו את הגודל של TextureView לגודל הפלט של חיישן המצלמה, לפני שינוי קנה המידה שלו כדי למלא את PreviewView ההורה. אם רוצים שהתצוגה המקדימה של המצלמה תמלא חלק שלם בממשק המשתמש (למשל, את כל המסך), לא כדאי להגדיר את הגודל של PreviewView לערך קבוע, או להגדיר שהתוכן יתאים לגודל של (למשל, באמצעות המאפיין "wrap_content"). אחרת, יכול להיות שהתצוגה המקדימה של המצלמה תמלא רק חלק מ-PreviewView (אם גודל הפלט של חיישן המצלמה קטן יותר). במקום זאת, צריך להגדיר את PreviewView כך שיהיה בגודל של מאגר האב שלו (לדוגמה, באמצעות המאפיין "match_parent"). (1204869)

תיקוני באגים

  • האפליקציה ImageCapture עודכנה כדי לאפשר שמירת תמונות ב-Uri וב-OutputStream. שילוב של שיטות takePicture עמוסות מדי לשיטה אחת. אפליקציית הבדיקה עודכנה כך שתשתמש ב-Uri כדוגמה הקנונית. (Ia3bec)
  • השם של Preview.PreviewSurfaceProvider השתנה לשם Preview.SurfaceProvider. ב-SurfaceProvider, המפתחים כבר לא צריכים ליצור ListenableFuture משלהם, והוספת Surface מתבצעת עכשיו באמצעות אובייקט SurfaceRequest חדש. ה-method‏ 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.

‫Camera-View גרסה 1.0.0-alpha06

‫22 בינואר 2020

‫androidx.camera:camera-view:1.0.0-alpha06 מופץ. גרסה 1.0.0-alpha06 מכילה את השמירות האלה.

עדכונים

  • תיקונים ועדכונים שונים לתמיכה בשינויים ב-Camera Core וב-Camera2.

‫Camera-Extensions גרסה ‎1.0.0-alpha05

‫18 בדצמבר 2019

‫androidx.camera:camera-extensions:1.0.0-alpha05 מופץ. גרסה 1.0.0-alpha05 מכילה את השינויים האלה.

תיקוני באגים

  • עודכן כדי להתאים לממשקי ה-API הפנימיים של Camera Core.

‫Camera-View גרסה ‎1.0.0-alpha05

‫18 בדצמבר 2019

‫androidx.camera:camera-view:1.0.0-alpha05 מופץ. גרסה 1.0.0-alpha05 מכילה את השינויים האלה.

בעיות מוכרות

  • יחס הגובה-רוחב עשוי להיות שגוי כשמשתמשים ב-PreviewView‏ (b/146215202).

תכונות חדשות

  • הטמענו מחלקה חדשה בשם PreviewView.TextureViewImplementation שמסנכרנת את מחזור החיים של SurfaceTexture עם השימוש של המצלמה במשטח של TextureView.

‫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 שמשמש לקישור תרחיש השימוש.

    val cameraSelector = CameraSelector.DEFAULT_BACK_CAMERA
    val builder = ImageCapture.Builder()
    val bokehImageCaptureExtender = BokehImageCaptureExtender.create(builder)
    if (bokehImageCaptureExtender.isExtensionAvailable(cameraSelector)) {
        bokehImageCaptureExtender.enableExtension(cameraSelector)
    }
    val imageCapture = builder.build()
    mCameraProvider?.bindToLifecycle(this, cameraSelector, imageCapture)
    
  • צריך להפעיל את התוספים לפני שמשתמשים בספריית התוספים.

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

‫Camera-View גרסה 1.0.0-alpha04

‫4 בדצמבר 2019

‫androidx.camera:camera-view:1.0.0-alpha04 מופץ. גרסה 1.0.0-alpha04 של camera-view מכילה את השינויים האלה

שינויים ב-API

  • המחלקה PreviewView מסופקת כדי להציג בקלות את הפלט מתרחיש השימוש של התצוגה המקדימה באפליקציה.
  • אפשר לכלול בפריסה את PreviewView:

    <androidx.camera.view.PreviewView
      android:id="@+id/preview_view"
      … />
    
  • ‫PreviewView מספק PreviewSurfaceProvider כדי לחבר בקלות תרחיש לדוגמה של גרסת טרום-השקה (Preview)

    preview.setPreviewSurfaceProvider(previewView.previewSurfaceProvider)
    
  • השם "ZoomLevel" השתנה ל-"ZoomRatio" בשמות של ממשקי ה-API

  • היכולת להכיל ערך null השתנתה בחלק מהפרמטרים של השיטה

גרסה ‎1.0.0-alpha03 של Camera-Extensions ו-Camera-View

‫9 באוקטובר 2019

‫androidx.camera:camera-extensions:1.0.0-alpha03 ו-androidx.camera:camera-view:1.0.0-alpha03 מופצים. אלה ה-commits שנכללים ב-camera-extensions:1.0.0-alpha03 ואלה ה-commits שנכללים ב-camera-view:1.0.0-alpha03.

תכונות חדשות

  • נוסף מאתחל הקשר לתוספים. גרסת התוספים עודכנה ל-1.1.0

גרסה ‎1.0.0-alpha02 של Camera-Extensions ו-Camera-View

‫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 מופצים. אלה ה-commits שנכללים ב-camera-extensions:1.0.0-alpha01 ואלה ה-commits שנכללים ב-camera-view:1.0.0-alpha01.

  • ספרייה חדשה לתוספי מצלמה עתידיים, שמאפשרת גישה לאפקטים במכשירים נתמכים. הספרייה הזו נמצאת בשלבי פיתוח.
  • מחלקה חדשה של Camera View. הספרייה הזו נמצאת בשלבי פיתוח.