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

בטבלה הזו מפורטים כל פריטי המידע שנוצרו בתהליך הפיתוח (Artifact) בקבוצה androidx.camera.

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

בדיקת המכשיר

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

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

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

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

Groovy

dependencies {
  // CameraX core library using the camera2 implementation
  def camerax_version = "1.5.0-alpha03"
  // The following line is optional, as the core library is included indirectly by camera-camera2
  implementation "androidx.camera:camera-core:${camerax_version}"
  implementation "androidx.camera:camera-camera2:${camerax_version}"
  // If you want to additionally use the CameraX Lifecycle library
  implementation "androidx.camera:camera-lifecycle:${camerax_version}"
  // If you want to additionally use the CameraX VideoCapture library
  implementation "androidx.camera:camera-video:${camerax_version}"
  // If you want to additionally use the CameraX View class
  implementation "androidx.camera:camera-view:${camerax_version}"
  // If you want to additionally add CameraX ML Kit Vision Integration
  implementation "androidx.camera:camera-mlkit-vision:${camerax_version}"
  // If you want to additionally use the CameraX Extensions library
  implementation "androidx.camera:camera-extensions:${camerax_version}"
}

Kotlin

dependencies {
    // CameraX core library using the camera2 implementation
    val camerax_version = "1.5.0-alpha03"
    // The following line is optional, as the core library is included indirectly by camera-camera2
    implementation("androidx.camera:camera-core:${camerax_version}")
    implementation("androidx.camera:camera-camera2:${camerax_version}")
    // If you want to additionally use the CameraX Lifecycle library
    implementation("androidx.camera:camera-lifecycle:${camerax_version}")
    // If you want to additionally use the CameraX VideoCapture library
    implementation("androidx.camera:camera-video:${camerax_version}")
    // If you want to additionally use the CameraX View class
    implementation("androidx.camera:camera-view:${camerax_version}")
    // If you want to additionally add CameraX ML Kit Vision Integration
    implementation("androidx.camera:camera-mlkit-vision:${camerax_version}")
    // If you want to additionally use the CameraX Extensions library
    implementation("androidx.camera:camera-extensions:${camerax_version}")
}

משוב

המשוב שלכם עוזר לנו לשפר את Jetpack. נשמח לשמוע אם נתקלתם בבעיות חדשות או שיש לכם רעיונות לשיפור הספרייה. לפני שיוצרים בעיה חדשה, כדאי לעיין בבעיות הקיימות בספרייה הזו. כדי להצביע על בעיה קיימת, לוחצים על לחצן הכוכב.

דיווח על בעיה חדשה

מידע נוסף זמין במסמכי התיעוד של Issue Tracker.

גרסה 1.0 של הכתיבה בעינית המצלמה

גרסה 1.0.0-alpha02

‫12 ביוני 2024

androidx.camera:camera-viewfinder-compose:1.0.0-alpha02 משוחרר. הגרסה 1.0.0-alpha02 כוללת את ההוספות האלה.

גרסה 1.0.0-alpha01

14 במאי 2024

androidx.camera:camera-viewfinder-compose:1.0.0-alpha01 משוחרר. גרסת 1.0.0-alpha01 כוללת את ההוספות האלה.

תכונות חדשות

  • ספרייה חדשה. בספרייה הזו מוצג רכיב Viewfinder Compose מקורי שאפשר להשתמש בו עם CameraX ו-Camera2. העינית הניתנת להתאמה תומכת ביחסי גובה-רוחב שונים ובטיפול באירועי מגע.

עינית המצלמה, גרסה 1.4

גרסה 1.4.0-alpha07

12 ביוני 2024

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

גרסה 1.4.0-alpha06

14 במאי 2024

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

שינויים ב-API

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

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

גרסה 1.5.0-alpha03

30 באוקטובר 2024

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

שינויים ב-API

  • הוספת ממשקי API לפורמט פלט ל-RAW ול-RAW + JPEG ImageCapture, בדיקת יכולות המכשיר מוצגת ב-ImageCaptureCapabilities#getSupportedOutputFormats. השיטה OUTPUT_FORMAT_RAW מיועדת לצלם תמונה בפורמט RAW, שהוא בפורמט Adobe DNG ו-OUTPUT_FORMAT_RAW_JPEG מאפשר לצלם תמונות בפורמט RAW ו-JPEG בו-זמנית. ה-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 כוללת את ההוספות האלה.

שינויים ב-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.0

30 באוקטובר 2024

androidx.camera:camera-*:1.4.0 משוחרר. גרסה 1.4.0 כוללת את ההתחייבויות האלה.

שינויים חשובים מאז גרסה 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.
  • Shutter Sound 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 כוללת את ההוספות האלה.

תיקוני באגים

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

גרסה 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 לתרחיש השימוש 'תצוגה מקדימה'. תהיה תמיכה בהפעלה ובהשבתה של מצב המראה בסטרימינג של תצוגה מקדימה דרך OutputConfiguration.setMirrorMode מ-API 33 ואילך. ב-API ישנים יותר, לא תהיה פעולה. (I821f4)

תיקוני באגים

  • תוקנה בעיה שבה אפליקציות לא הצליחו לצלם תמונות ב-Samsung Tab A8 כשImageCapture בוחרת באפשרות 1920x1080 בשילוב Preview + VideoCapture + ImageCapture UseCase. (I5a463, b/336925549)
  • יכול להיות שהקלטה קבועה ומתמשכת לא תמשיך אחרי שמחליפים מצלמה. (Icb0a1)

גרסה 1.4.0-beta01

14 במאי 2024

androidx.camera:camera-*:1.4.0-beta01 משוחרר. גרסת 1.4.0-beta01 כוללת את ההוספות האלה.

שינויים ב-API

  • נוספה ההגדרה ZoomGestureDetector.ZoomEvent כדי לכלול את המצבים של תנועת זום. (I84cdf)

תיקוני באגים

  • תוקן באג שבו עדיין בצילום ובלחיצה להתמקדות לא נעשה שימוש בערכי ה-FPS/מצב הייצוב של הבקשה החוזרת, דבר שעלול ליצור מחדש סשן צילום ולגרום לבעיות זמן אחזור או לקיפאון של התצוגה המקדימה במכשירים מסוימים. (I7dc0b)
  • תוקן באג שבו לא ניתן לבחור רזולוציות גבוהות כשהאפשרות CameraEffect מופעלת במכשירים מסוימים. (למשל, 4000x3000 ב-Samsung A32 5G). (Ie3ed3, ‏ b/337336152)
  • תוקנה קריסה במהלך צילום תמונה באמצעות תצוגה מקדימה, המכשירים ImageCapture ו-VideoCapture(UHD) מקושרים ל-Pixel 4XL API29. (I5b288)
  • תמיכה במכשירים וירטואליים: ההקשר שמוענק ל-ProcessCameraProvider ישמור את מזהה המכשיר כדי להבטיח את הפונקציונליות בסביבת מכשיר וירטואלי. (I5ba48)

גרסה 1.4.0-alpha05

17 באפריל 2024

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

תכונות חדשות

  • המרת ProcessCameraProvider להטמעה ב-Kotlin. (I46d4f)
  • נוספו פונקציות השהיה (suspend) של 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 כדי לבצע שאילתה על מידע על המצלמה הפיזית ולהוסיף מזהה/מקלט פיזי של המצלמה ב-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 אחד ל-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 ו-X60 Pro. הפעולה הזו יכולה לפתור בעיה של תמונות גדולות במיוחד במכשירים האלה. (I82247, b/288828159)
  • תוקנה הבעיה השגויה במטא-נתונים של תמונות בפורמט JPEG במכשירי Samsung A24. בעקבות התיקון, CameraX יכול לשמור את קובץ ה-JPEG של התמונה, או להחזיר אובייקטים נכונים של Bitmap כשקוראים לפונקציה ImageProxy.toBitmap() במכשירי Samsung A24. (I8d6eb, b/309005680)
  • בדיקת הנתונים הלא חוקיים של קובצי JPEG תחול על כל מכשירי Samsung אם התמונה שצולמה גדולה מ-10MB. הפעולה הזו יכולה לפתור בעיה של תמונות גדולות במיוחד במכשירי Samsung. (Ic2a65, ‏ b/288828159)
  • הסרנו את התמיכה ב-ImageAnalysis בתוספים של CameraX, כי הטמעות של תוספים רבים של יצרני ציוד מקורי לא פועלות טוב עם ImageAnalysis ועשויות לגרום לבעיות לא עקביות. (I2d926)

גרסה 1.4.0-alpha04

24 בינואר 2024

androidx.camera:camera-*:1.4.0-alpha04 משוחרר. גרסה 1.4.0-alpha04 מכילה את ההצהרות האלה על ביצוע שינויים (commits).

תכונות חדשות

  • פריט חדש: camera-effects: ספרייה להחלת אפקטים בזמן אמת על הפלט של CameraX, כולל Preview, ‏ VideoCapture ו/או ImageCapture. הארטיפקט הזה מכיל הטמעות OpenGL של ה-API CameraEffect שמאפשרות לבצע מניפולציות על הפלט של המצלמה בצורה יעילה.
  • OverlayEffect: לציור שכבות-על באמצעות Canvas API של Android. כך האפליקציה יכולה להחיל סימן מים או להדגיש אובייקטים שזוהו בפלט של המצלמה.
  • ממשקי API של DynamicRange לתרחיש לדוגמה של תצוגה מקדימה: עכשיו אפשר להגדיר את הטווח הדינמי בתרחיש לדוגמה של תצוגה מקדימה, בנפרד מתרחיש לדוגמה של Video. כך אפשר להשתמש בטווחים דינמיים של HDR כמו HLG10 בתצוגה מקדימה בלבד. ב-CameraInfo יש גם ממשקי API חדשים שמאפשרים לשלוח שאילתות לגבי טווחי הדינמיקה שכל מצלמה תומכת בהם.

שינויים ב-API

  • השם ScreenFlashUiCompleter שונה ל-ScreenFlashListener והועבר ScreenFlashUiCompleter#getExpirationTimeMillis לפרמטר expirationTimeMillis של ScreenFlash#apply. (I13944)
  • נוספו ממשקי API חדשים שמאפשרים להגדיר טווח דינמי בתרחיש לדוגמה של תצוגה מקדימה, ולבצע שאילתות לגבי טווחים דינמיים שנתמכים בכל מצלמה. כך אפשר להשתמש בטווחים דינמיים של HDR, כמו HLG10, בתרחיש לדוגמה של תצוגה מקדימה בלבד, בלי צורך לשייך VideoCapture בו-זמנית. (If25e3)
  • השם של getMirroring() שונה ל-isMirroring() (I47063)
  • הוספנו תמיכה ב-CameraX בזמן אמת בחישוב זמן האחזור של צילום תמונות סטילס. תוספי מצלמה מאפשרים לאפליקציות להשתמש ב-API שמספק אומדן של משך הזמן לצילום. האומדן מתייחס לתנאי הסביבה הנוכחיים, למצב המצלמה, וגם כולל את הזמן שחלף על עיבוד בקשות לצילום של כמה פריימים, יחד עם זמן נוסף לקודק של מאגרי נתונים שעברו עיבוד, אם יש צורך. (I05c3a)
  • שינינו את השם של ScreenFlashUiControl ל-ScreenFlash, ScreenFlashUiControl#applyScreenFlashUi ל-ScreenFlash#apply, ScreenFlashUiControl#clearScreenFlashUi ל-ScreenFlash#clear והוספנו את השיטה getScreenFlashUiApplyTimeoutSeconds במקום לחשוף את SCREEN_FLASH_UI_APPLY_TIMEOUT_SECONDS ישירות. (Iccdd0)

תיקוני באגים

  • תוקנה דליפת זיכרון שגרמה לאי שחרור של פעילויות או מקטעים כשתוספים מופעלים (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 לאחר שינוי הצבע/הבהירות של מסך האפליקציה). האפליקציות יצטרכו להוסיף את ההטמעות שלהן בצד ממשק המשתמש רק בממשק 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)
  • מוסיפים ל-CameraController את ה-getter/setter של פורמט הפלט של ImageAnalysis. (I9a96c, ‏ b/308240643)

תיקוני באגים

  • ממצלמה 1.3.1: שיפור הביצועים של ProcessCameraProvider#bindToLifecycle(). השינוי העיקרי הוא אופטימיזציה של תהליך הזיהוי של שילובי הגדלים המתאימים ביותר ל-UseCases. התוצאות האופטימליות משתנות בהתאם לשילובים הספציפיים של UseCase ולמספר גודלי הפלט הנתמכים במכשירי היעד. (I454f2)
  • מתן הרשאה לשימוש ב-VideoCapture כשהתוספים מופעלים. (I91f32)
  • תוקנה בעיה בתמונות JPEG גדולות שצולמו במכשירי Samsung מדגמי A71 ו-M51. תמונות ה-JPEG שצולמו מכילות נתוני מילוי יתירים של אפסים בפלחי הנתונים הנדחסים של JFIF. כתוצאה מכך, גודל הקובץ של התמונות שצולמו גדול מאוד. נתוני המרווח הפנימי המיותרים מסוג 0 יוסרו כדי שקובצי תמונה יהיו בגדלים רגילים. (I01afc, ‏ b/288828159)
  • השבתה של התמיכה ב-ImageAnalysis ב-Pixel כדי למנוע באג ב-Pixel שמחזיר בטעות גדלים לא ריקים של ImageAnalysis. (I7ec31)
  • תוקנה בעיית ביצועים שבה טעינת המעבד (CPU) וצריכת החשמל עלו כשהתוספים הופעלו. (Ibdccb)
  • הוספת Snapdragon 480 ל-CameraUseInconsistentTimebaseQuirk. התיקון הזה פותר בעיה ב-Android 12 במכשירים עם ערכת השבבים הזו, שבה האודיו בהקלטות מושהה למשך הזמן שבו המכשיר נמצא במצב השהיה. (I58010)

גרסה 1.4.0-alpha02

18 באוקטובר 2023

androidx.camera:camera-*:1.4.0-alpha02 משוחרר. גרסה 1.4.0-alpha02 מכילה את ההצהרות האלה.

שינויים ב-API

  • צריך לשנות את שם ה-API ל-setCameraOpenRetryMaxTimeoutInMillisWhileResuming ולשנות את שם הארגומנט. (I72370)
  • הוספת ממשקי API לשליחת שאילתות לגבי יכולות המכשיר ולהפעלת ייצוב של סרטונים או תצוגות מקדימות. (I87544)
  • הצגת API כדי להתאים אישית את הזמן המקסימלי לתפוגת הזמן לניסיון חוזר לפתיחת המצלמה. (I0c642)
  • הגרסה ProcessCameraProvider.shutdownAsync הושקה כ-API לבדיקה ציבורית כדי לאפשר שימוש בספק מצלמות עיבוד בחבילות בדיקה שבהן ייתכן שיהיה צורך להפעיל את CameraX בדרכים שונות בין בדיקות. (I9eca7)
  • הוספת ממשקי API להגדרת טווח דינמי, קצב פריימים ומצב ראי של צילומי וידאו. (Ifb8f7)
  • מוציאים משימוש את OutputSize ומחליפים אותו ב-ResolutionSelector. ResolutionSelector היא דרך מקיפה יותר לבחירת רזולוציות, והיא תואמת ל-API של הליבה של המצלמה. (I93abd, ‏ b/286801438)

תיקוני באגים

  • תוקנה בעיה בתצוגה המקדימה השחורה ב-Samsung Galaxy S23 Ultra 5G כשהאפשרויות 'תוספים', 'בוקה' או 'ריטוש פנים' מופעלות באמצעות ImageAnalysis במצלמה האחורית. (I2e8b1)
  • תוקנה הבעיה 'תצוגה מקדימה' ו-VideoCapture בעיות ב-Moto E5 Play. (73dce2)

גרסה 1.4.0-alpha01

20 בספטמבר 2023

androidx.camera:camera-*:1.4.0-alpha01 משוחרר. גרסה 1.4.0-alpha01 מכילה את ההצהרות האלה על ביצוע שינויים (commits).

שינויים ב-API

  • הוספת ממשק API חדש כדי לגשת למידע על משרעת האודיו בזמן ההקלטה. (Id4925)

תיקוני באגים

  • כדי לשפר את היציבות של התוספים, חשוב לוודא שאירועי האיניציאליזציה וההסרה מופעלים בסדר הנכון. (Ib3b8e)
  • תוקן הגדרת הסשן של הצילום בקשר לחריגה משילוב השטח הנתמך בגלל הוספה של משטח חוזר נוסף באופן פנימי. (Id718c)
  • תוקנה בעיה בתמונת JPEG גדולה שצולמה במכשיר Vivo S16. תמונות ה-JPEG שצולמו מכילות נתוני מילוי יתירים של אפסים בפלחי הנתונים הנדחסים של JFIF. כתוצאה מכך, גודל הקובץ של התמונות שצולמו גדול. נתוני המרווח הפנימי המיותרים מסוג 0 יוסרו כדי שקובצי תמונה יהיו בגדלים רגילים. (I79505, ‏ b/299069235)
  • תוקנה בעיה שבה לא ניתן לשייך את ImageAnalysis ל-ImageCapture ולתצוגה המקדימה כשחלק ממצבי התוספים מופעלים במכשירים מסוימים. התיקון יחזיר את הערך הנכון כשאפליקציות יבקשו מידע על הזמינות של 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 תואם ל-UseCase של ImageAnalysis כדי לעקוף את הבעיה. (I81f72, ‏ b/330091012)

גרסה 1.3.2

6 במרץ 2024

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

תיקוני באגים

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

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

  • ארבעה UseCases: Preview + ImageCapture + ImageAnalysis + VideoCapture

    • Google Pixel 7: כ-430 אלפיות השנייה עד 60 אלפיות השנייה
    • Samsung Galaxy S23 Ultra: כ-540 אלפיות שנייה עד 45 אלפיות שנייה
    • Samsung A53 5G: כ-115ms עד 70ms
  • שלוש 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 ולתצוגה המקדימה כשחלק ממצבי התוספים מופעלים במכשירים מסוימים. התיקון יחזיר את הערך הנכון כשאפליקציות שאילתה על הזמינות של 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 וגם עם תצוגה מקדימה. כמו כן, תוקן מסך שחור במכשירי LEGACY כששיתוף השידור הופעל.
  • תוקנה בעיה בתמונה גדולה בפורמט JPEG שצולמה במכשירי Samsung S7 (SM-G930T, SM-G930V). תמונות ה-JPEG שצולמו מכילות נתוני מילוי יתירים של אפסים בפלחי הנתונים הנדחסים של JFIF. כתוצאה מכך, גודל הקובץ של התמונות שצולמו גדול. נתוני המילוי העודפים של האפסים יוסרו כדי שהתמונות שצולמו יהיו בגודל קובץ תמונה רגיל. (I407b0, ‏ b/288828159)
  • תוקנה בעיה בתמונות JPEG גדולות שצולמו במכשירי סדרת Samsung S22‏ (SM-S901B, ‏ SM-S901B/DS) ו-S22+‏ (SM-S906B). תמונות ה-JPEG שצולמו מכילות נתוני מילוי יתירים של אפסים בפלחי הנתונים הנדחסים של JFIF. כתוצאה מכך, גודל הקובץ של התמונות שצולמו הוא גדול, כ-13MB במכשיר S22 SM-S901B/DS. נתוני המילוי העודפים של האפסים יוסרו כדי שהתמונות שצולמו יהיו בגודל קובץ תמונה רגיל. (I73be9, b/288828159)
  • תוקנה בעיה גדולה בתמונות JPEG שצולמה במכשירים מהסדרה Samsung A5, A52, A70 ו-A72. תמונות ה-JPEG שצולמו מכילות נתוני מילוי יתירים של אפסים בפלחי הנתונים הנדחסים של 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 שצולמו מכילות נתוני מילוי יתירים של אפסים בפלחי הנתונים הנדחסים של JFIF. כתוצאה מכך, גודל הקובץ של התמונות שצולמו הוא כ-32MB. נתוני המילוי העודפים של האפסים יוסרו כדי שהתמונות שצולמו יהיו בגודל קובץ תמונה רגיל. (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 כדי לשלוח שאילתות לגבי טווחים דינמיים ואיכות נתמכים להקלטת וידאו במכשיר. השיטות 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, ושינינו את השם של פונקציית ה-builder setHighResolutionEnabledFlag לשם setAllowedResolutionMode. (Iae817)
  • הפונקציה CameraInfo#getSupportedFrameRateRanges() מחזירה עכשיו Set במקום List, כדי לייצג טוב יותר את העובדה שהטווחים לא מסודרים. (I02f43)
  • מוסיפים מאזין שגיאות ל-CameraEffect כדי לטפל בשגיאות שאי אפשר לשחזר (Ice471)
  • הוספת קונסטרוקטור ציבורי ב-ResolutionInfo לשיפור היכולת לבצע בדיקות (If6d1c)
  • הוספנו את ה-API UseCase.snapToSurfaceRotation(int) כדי להחליף את השימוש ב-setTargetRotationDegrees ולהוציא משימוש את ה-API‏ ImageAnalysis.setTargetRotationDegrees(int), ‏ ImageCapture.setTargetRotationDegrees(int) ו-VideoCapture.setTargetRotationDegrees(int). (Ia9010)
  • נוספו ממשקי API חדשים, Preview#getTargetFrameRate ו-Preview.Builder#setTargetFrameRate, כדי שאפשר יהיה להגדיר ולשלוף את קצב הפריימים היעד בתרחיש לדוגמה של תצוגה מקדימה (If4f22)
  • הפונקציה VideoRecordEvent.Finalize תסתיים עכשיו עם קוד השגיאה ERROR_RECORDING_GARBAGE_COLLECTED כשהאובייקט Recording יופסק בגלל איסוף אשפה. (Iba974)

תיקוני באגים

  • תוקנה השגיאה ב-NullPointerException כשגדלי הפלט ששמורים במטמון ב-StreamConfigurationMapCompat הם 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}. הרזולוציה המקסימלית היא 720p או 1440p. פרטים נוספים מופיעים בקישור הבא, בקטע CameraManager#getConcurrentCameraIds()
  • אנחנו שמחים להציג את ResolutionSelector API החדש, שכולל את התכונות הבאות:
    • אפליקציות יכולות לציין אסטרטגיות ליחס גובה-רוחב ולרזולוציה כדי לבחור את הרזולוציה המתאימה ביותר לצרכים שלהן.
    • כל הפרמטרים של הגדלים ויחסי הגובה-רוחב מפורטים בקואורדינטות של חיישן המצלמה.
    • האפליקציות יכולות להטמיע מסנן רזולוציה מותאמת אישית כדי לארגן את הגדלים הנתמכים לפי הסדר הרצוי.
    • אפליקציות יכולות גם לאפשר צילום ברזולוציה גבוהה לקבלת תמונות ברזולוציה גבוהה יותר. עם זאת, חשוב לזכור ששימוש ברזולוציה גבוהה עלול להוביל לזמני צילום ארוכים יותר.
    • נוספו ממשקי API להעתקה (mirroring) של 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. במקום זאת, יש להשתמש ב-ResolutionSelector API החדש. (I542c3)
  • הוספנו ממשקי API ציבוריים לשימוש בו-זמנית בשתי מצלמות, כולל:
    1. List<List<CameraInfo>> getAvailableConcurrentCameraInfos()
    2. ConcurrentCamera bindToLifecycle(@NonNull ConcurrentCameraConfig concurrentCameraConfig)
    3. boolean isConcurrentCameraModeOn() וגם ConcurrentCameraConfig, ‏ SingleCameraConfig ו-ConcurrentCamera (Iab1c1)
  • ביצוע ImageProcessor.Response#getOutputImage NonNull (Ib9c60)
  • הוספנו ממשקי API להעתקה (mirroring) של VideoCapture, כולל VideoCapture.Builder.setMirrorMode(int) ו-VideoCapture.getMirrorMode(). כדי להשתמש בממשקי ה-API, צריך להשתמש ב-API כדי שהקלטת הווידאו תהיה תואמת להתנהגות הרגילה בתצוגה מקדימה של המצלמה. כלומר, התצוגה המקדימה של המצלמה האחורית לא משוכפלת, אבל התצוגה המקדימה של המצלמה הקדמית משוכפלת. (I713b6, b/194634656)
  • הוספת ממשק ה-API של setTargetFrameRate() ב-VideoCapture.Builder וממשק ה-API של getTargetFramerate() ב-VideoCapture (I109d4)
  • מגדירים את SurfaceOutput כממשיך של Closable ומסתירים את המבנה הציבורי של SurfaceOutput.Event. (I60ea8)
  • הוספנו את Recording.mute כדי להשתיק או לבטל את ההשתקה של הקלטה בזמן העיבוד באופן דינמי. הסרטון RecordingStats יכיל AudioStats.AUDIO_STATE_MUTED כשההקלטה בתוך עיבוד מושתקת באופן מפורש. (Ie17fc)
  • הפרמטר #setEffects() הוגדר כלא 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

  • הוספנו ממשקי API לבחירת מודעות בסבב VideoCapture, כולל VideoCapture.Builder.setTargetRotation(int), ‏ VideoCapture.setTargetRotation(int), ‏ VideoCapture.setTargetRotationDegrees(int) ו-VideoCapture.getTargetRotation(). ממשקי ה-API מועילים לאפליקציות שמנעילות את כיוון המכשיר. גם ImageCapture.setTargetRotationDegrees(int) וגם ImageAnalysis.setTargetRotationDegrees(int) נוספו. (Id3ffe, ‏ b/205242781)
  • מתן הרשאה ל-VIDEO_CAPTURE ול-PREVIEW|VIDEO_CAPTURE כיעד של אפקטים. אפקטים שמטורגטים ל-VIDEO_CAPTURE יחולו על ה-UseCase של VideoCapture. האפקטים שמטורגטים ל-PREVIEW|VIDEO_CAPTURE יחולו על שידור משותף לפני ההעתקה לתצוגה מקדימה ולשידור VideoCapture. (Iee6f3)

תיקוני באגים

  • מ-מצלמה 1.2.2: תוקנה בעיה שבה התוספים של CameraX לא פועלים כמו שצריך כש-ProGuard מופעל במכשירים מסוימים, כמו Pixel‏ (I90aa2)
  • תוקן באג ב-PreviewView: אם האפליקציה מטפלת בעצמה בכיוון המסך, התצוגה המקדימה עשויה להיות מעוותת לאחר סיבוב. הפעולה הזו מתבצעת רק במכשירים מסוימים. אפשר לשחזר אותו ב-Pixel 4a, ב-Pixel 5 וב-Pixel 6a. (I14340, ‏ b/223488673)

גרסה 1.3.0-alpha04

22 בפברואר 2023

androidx.camera:camera-*:1.3.0-alpha04 משוחרר. גרסה 1.3.0-alpha04 מכילה את ההצהרות האלה.

תכונות חדשות

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

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

שינויים ב-API

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

תיקוני באגים

  • תוקנה הקריסה של התוספים שמתרחשת בחלק ממכשירי Samsung בזמן השהיה או המשך הפעלה של האפליקציה מהר מדי (Iaca26)

גרסה 1.3.0-alpha03

25 בינואר 2023

androidx.camera:camera-*:1.3.0-alpha03 משוחרר. גרסה 1.3.0-alpha03 מכילה את ההצהרות האלה.

שינויים ב-API

  • הוספת את CameraInfo.getIntrinsicZoomRatio כדי לספק מידע על זווית הראייה ביחס למצלמת ברירת המחדל. (Ib300c)
  • נוספה CameraInfo.getLensFacing כדי לספק מידע על כיוון העדשה. הוספת את CameraSelector#LENS_FACING_EXTERNAL כתכונה ניסיונית לבחירת מצלמות חיצוניות. (Icaf3e)
  • הוספת #setEffect() ל-CameraController שמאפשרת להוסיף אפקטים לפלט של המצלמה. (I1d21f)
  • מוסיפים את השיטה invalidate() אל SurfaceRequest. ספק הפלטפורמה יכול להודיע שהשטח שסופק בעבר לא תקף יותר. (Idc649)
  • מוסיפים ממשק 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)
  • הסרת מטא-נתונים, 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 וגרסאות קודמות, עקב בעיות בתמיכה של Bokeh, בצילום התמונות ובתצוגה המקדימה. (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)

תיקוני באגים

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

תיקוני באגים

  • תוקנה בעיה שבה התוספים של 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 ניסיוני חדש ללא זמן צילום. אופטימיזציה של צינור עיבוד הנתונים לצילום כדי לשפר את זמן האחזור תוך שמירה על איכות תמונה טובה. כשמצב הצילום מוגדר ל-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 מופעל בחלק ממכשירי Samsung והמשתמש החליף את המצלמות.
  • תוקנה בעיה של Preview/VideoCapture מורחבת במכשירי Samsung J7 Prime‏ (SM-G610M) ו-J7‏ (SM-J710MN) ברמת API 27.
  • השבתנו את הפתרון החלופי להפיכת אזור ה-AF באופן אופקי במצלמות הקדמיות של Samsung Android T, כי הבעיה תוקנה

גרסה 1.2.0-rc01

24 באוקטובר 2022

androidx.camera:camera-*:1.2.0-rc01 משוחרר. גרסה 1.2.0-rc01 כוללת את ההוספות האלה.

שינויים ב-API

  • הוספת API של setStreamUseCase ל-OutputConfiguration. המשתמש יכול לציין את תרחיש השימוש בסטרימינג לסשן הסטרימינג, ולעקוף את הלוגיקה הפנימית של CameraX כדי לבחור את תרחיש השימוש בסטרימינג לצורך אופטימיזציה בהתאם לצרכיו. (Ib1a95)

תיקוני באגים

  • תוקנה הבעיה ב-Samsung J7 Prime (SM-G610M) וב-J7 (SM-J710MN) Preview/VideoCapture שנמתחה במכשירים עם רמת API 27. רזולוציה של 1920x1080 גורמת לתמונות Preview/VideoCapture להתמתח. נוספה דרך לעקוף את הבעיה שלא לבחור ברזולוציה 1920x1080 לתצוגה מקדימה או ב-VideoCapture כדי למנוע בעיה של מתיחות התמונה. (I0e04e)
  • תוקנה בעיה של קצב פריימים נמוך כשמשתמשים בתרחישים לדוגמה של VideoCapture ותצוגה מקדימה ביחס גובה-רוחב של 16:9 במכשירי Huawei מסוימים. (If8c88, b/223643510)
  • תוקן כשל בפתיחת המצלמה כשהוגדר SurfaceProvider של התצוגה המקדימה. כחלק מהתיקון, תצוגה מקדימה ללא הגדרה של SurfaceProvider לא תוגדר עכשיו לפעילות של צילום המצלמה. (I99681)

גרסה 1.2.0-beta02

21 בספטמבר 2022

androidx.camera:camera-*:1.2.0-beta02 משוחרר. גרסה 1.2.0-beta02 מכילה את התחייבויות אלה.

שינויים ב-API

  • הוספת דרישה לרמת API עבור setOutputImageRotationEnabled (I26e3e, ‏ b/240993561)

תיקוני באגים

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

גרסה 1.2.0-beta01

24 באוגוסט 2022

androidx.camera:camera-*:1.2.0-beta01 משוחרר. גרסה 1.2.0-beta01 מכילה את התחייבויות אלה.

תכונות חדשות

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

תיקוני באגים

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

גרסה 1.2.0-alpha02

1 ביוני 2022

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

תכונות חדשות

  • חשיפת CameraX Zero-Shutter Lag API כניסיוני.

שינויים ב-API

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

  • ספריות Landed View, ‏ Extension ו-Video Capture בגרסה הראשונה שלהן ב-RC. החל מגרסה 1.1.0-beta01, כל ספריות CameraX יהיו עם אותו מספר גרסה. כך המפתחים יוכלו לעקוב אחרי הגרסאות בקלות רבה יותר ולצמצם את המורכבות של מטריצות התאימות של גרסאות גדולות.
  • השקנו ממשקי API ותכונות ציבוריים חדשים, כולל:
  • הוספת ספריית הווידאו הרשמית של המצלמה כדי לתמוך בתרחישי שימוש של צילום וידאו.
  • יכולת המרה וסיבוב מ-YUV ל-RGB (ImageAnalysis.Builder.setOutputImageRotationEnabled ו-setOutputImageFormat)
  • תמיכה במצב 'חלונות מרובים' על ידי מתן אפשרות לאפליקציות CameraX להמשיך את השימוש במצלמה כשהיא מופסקת על ידי אפליקציה אחרת והמיקוד חוזר אליה.
  • תיקון בעיות מסוימות בתצוגה המקדימה כדי לוודא ש-CameraX פועלת היטב במכשירים מתקפלים.
  • נוסף API מסוג CameraState שייחשף באמצעות CameraInfo.
  • נוספה ממשק API‏ ProcessCameraProvider.getAvailableCameraInfos() לאחזור ישיר של מידע על המצלמות הזמינות
  • פורמט פלט JPEG ל-ImageCapture#OnImageCapturedCallback כשהתוספים מופעלים.
  • הוספנו ממשק 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 ב-APIs ניסיוניים. כדי לקרוא לממשקי 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(),
  • ממשקי API של @ExperimentalCameraFilter
  • ממשקי 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 של Creator 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 הראשונה למצלמות וידאו, ראיית מצלמה ותוסף מצלמה

תיקוני באגים

  • תוקנה בעיה שבה קודק הווידאו לא שוחרר כש-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)
  • תוקן אי-סנכרון של אודיו/וידאו אחרי השהיה והמשך הפעלה במכשירי Samsung מסוימים עם גרסת API 29 ומטה. (I64622, ‏ b/202798609, ‏ b/202798572)
  • תוקן חוסר סנכרון של אודיו/וידאו אחרי השהיה והמשך ב-Sony G3125. (I2a1a5, ‏ b/202799148)
  • תוקנה קריסה שהתרחשה כשהמכשיר נתקל ב-InvalidConfigException. עם זאת, התיקון הזה מונע רק קריסה של האפליקציה, אבל לא פותר את הבעיה שגרמה ל-InvalidConfigException. אם עדיין אי אפשר להגדיר את Recorder, אפליקציות יקבלו קריאה חוזרת (callback) כשיתחיל להקליט. (I89c29, ‏ b/213617227)

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

  • עדכנו את :compose:ui:ui-test api (updateApi) בגלל ההעברה של test-coroutines-lib (I3366d)

גרסה 1.1.0-beta02

23 בפברואר 2022

androidx.camera:camera-*:1.1.0-beta02 משוחרר. גרסה 1.1.0-beta02 מכילה את התחייבויות אלה.

שינויים ב-API

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

תיקוני באגים

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

גרסה 1.1.0-beta01

26 בינואר 2022

androidx.camera:camera-*:1.1.0-beta01 משוחרר. גרסה 1.1.0-beta01 כוללת את ההצהרות האלה.

תכונות חדשות

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

שינויים ב-API

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

תיקוני באגים

  • תוקנה קריסה במהלך הקלטת הסרטון במכשירים מסוימים עם גרסת Android לפני O‏(API 26). (I88fdf, ‏ b/212328261)
  • תוקנה בעיה של אזור פוקוס אוטומטי שגוי בשימוש ב-cameraControl#startFocusAndMetering() במצלמה הקדמית במכשירי Samsung (Ifbf59, ‏ b/210548792)
  • שימוש בפנס כפלאש ב-Pixel 3a/Pixel 3a XL כדי לשפר את המהירות ואת איכות התמונה שצולמה במקומות חשוכים (Ib12b6, ‏ b/211474332)
  • אפליקציות שהופעלה בהן האפשרות להמשיך את השימוש במצלמה כשהיא מופסקת על ידי אפליקציה אחרת עם עדיפות גבוהה יותר במצב חלונות מרובים, והמיקוד חוזר לאפליקציה. חשוב לזכור שיכול להיות זמן אחזור מסוים(שנייה עד 10 שניות או יותר) בין שינוי המיקוד לבין פתיחת המצלמה מחדש בגלל בעיה כלשהי ב-framework. (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() הוסר ועכשיו צריך להעביר את האזנה לאירוע אל PendingRecording.start(). הדרישה הזו של רכיב המעקב אחר אירועים נועדה לעודד טיפול בשגיאות אסינכררוניות שמדווחות באירוע 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 ב-Pixel1. (I833c6, ‏ b/205340278)

גרסה 1.1.0-alpha11

17 בנובמבר 2021

androidx.camera:camera-*:1.1.0-alpha11 משוחרר. גרסה 1.1.0-alpha11 מכילה את התחייבויות אלה.

שינויים ב-API

  • הוספנו את CameraSelector#filter לממשק ה-API הציבורי כדי לסנן רשימה של CameraInfos על סמך CameraSelector. (I105d0)
  • מוסיפים את ה-API setOutputImageRotationEnabled לתצורה של ImageAnalysis. המשתמש יכול להפעיל רוטציה למאגר התמונות של YUV/RGB. מידת הסיבוב היא סיבוב יחסי שמחושב על סמך סיבוב החיישן וסיבוב היעד, כדי שהתמונה תישאר בחזית.

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

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

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

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

תיקוני באגים

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

תכונות חדשות

  • הוספת ה-API setOutputImageFormat לתצורה של ניתוח תמונות. המשתמש יכול לבחור באפשרות ImageAnalysis.OUTPUT_IMAGE_FORMAT_YUV_420_888 או ImageAnalysis.OUTPUT_IMAGE_FORMAT_RGBA_8888. כברירת מחדל, המערכת תבחור ב-ImageAnalysis.OUTPUT_IMAGE_FORMAT_YUV_420_888. (I7902d)

שינויים ב-API

  • הערה ניסיוניתUseCaseGroupLifecycle תוסר עכשיו כשממשקי ה-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 ל-ImageAnalysis, צריך להגדיר רזולוציית יעד בגודל RECORD גם ב-ImageCapture וגם ב-ImageAnalysis. זה מצביע על כך שהאפליקציה מבינה בבירור את הפשרה ומעדיפה של-ImageAnalysis תהיה רזולוציה גדולה יותר במקום שרזולוציית ה-ImageCapture תהיה מקסימלית. למידע על ההגדרות של RECORD, גדלים של MESSAGE ועוד פרטים, אפשר לעיין בכתובת https://developer.android.com/reference/android/hardware/camera2/cameraDevice#regular-capture. הגודל של RECORD מתייחס לרזולוציית הצילום המקסימלית הנתמכת במכשיר המצלמה, כפי שנקבע על ידי CamcorderProfile. הגודל WIDTH מתייחס לרזולוציית הפלט המקסימלית של מכשיר המצלמה עבור הפורמט או היעד שצוינו ב-StreamConfigurationMap.getOutputSizes(int). (I1ee97, b/192911449)
  • הוספת פרטי ה-Exif לתמונה שצולמה. (I01ff0, ‏ b/193342619)
  • ב-ImageCapture, מוחזר ה-URI של התמונה שנשמרה אם מיקום השמירה הוא File (קובץ). (Ib5b49, ‏ b/149241379)
  • תוקנה בעיה שבה תמונות שצולמו עם פלאש היו כהות במכשירים רבים. (I4e510)

גרסה 1.1.0-alpha07

21 ביולי 2021

התכונות androidx.camera:camera-camera2:1.1.0-alpha07, androidx.camera:camera-core:1.1.0-alpha07 וגם androidx.camera:camera-lifecycle:1.1.0-alpha07 משוחררות. גרסה 1.1.0-alpha07 מכילה את ההוספות האלה.

תיקוני באגים

  • תוקנה בעיה ב-Samsung Galaxy Note 5 שבה המצלמה נתקעת אחרי צילום תמונות עם הפלאש מופעל או במצב אוטומטי בסביבה חשוכה (If6871)
  • תוקנה בעיה מסוג YuvToJpegProcessor EOFException כשמצב התוסף מופעל והמצב ImageCapture#CAPTURE_MODE_MAX_QUALITY מוגדר. (I538bd, ‏ b/192017012)

גרסה 1.1.0-alpha06

30 ביוני 2021

התכונות androidx.camera:camera-camera2:1.1.0-alpha06, androidx.camera:camera-core:1.1.0-alpha06 וגם androidx.camera:camera-lifecycle:1.1.0-alpha06 משוחררות. גרסה 1.1.0-alpha06 מכילה את ההוספות האלה.

שינויים ב-API

  • קידום ממשקי ה-API הניסיוניים של תיקון החשיפות ל-camera-core‏ (I08ee8)
  • נוספה ממשק API של isFocusMeteringSupported ב-CameraInfo שמאפשר לאפליקציות לבדוק אם פעולת FocusMeteringAction מסוימת נתמכת במצלמה הנוכחית. (Ib45ae, ‏ b/188606490)
  • חשיפת ה-API של getResolutionInfo כדי לספק את פרטי הרזולוציה של Preview, ‏ ImageCapture ו-ImageAnalysis. (I2b613, ‏ b/188600718)
  • שדרגנו את ממשקי ה-API הניסיוניים הבאים לממשקי API רשמיים: CameraXConfig.Builder#setAvailableCamerasLimiter(),‏ CameraXConfig.Builder#setMinimumLoggingLevel(),‏ CameraXconfig.Builder#setSchedulerHandler(),‏ CameraXConfig#getAvailableCamerasLimiter(),‏ CameraXConfig#getMinimumLoggingLevel(),‏ CameraXConfig#getCameraExecutor(),‏ CameraXConfig#getSchedulerHandler().‏ (I2ade2)
  • חשיפת הממשק CameraProvider כדי לספק גישה לקבוצת מצלמות. (I1a7b1)
  • קידום UseCaseGroup API הניסיוני לממשקי camera-core, ‏ camera-lifecycle ו-camera-video. נוספו ViewPort#getLayoutDirection, ‏ ViewPort.Builder#setLayoutDirection ו-ViewPort.Builder#setScaleType להתאמה אישית של אזור התצוגה. (I7cee8)

גרסה 1.1.0-alpha05

2 ביוני 2021

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

שינויים ב-API

  • הכיתה Camera2CameraFilter הוסרה. אם צריך, מומלץ לבחור מצלמה באמצעות CameraFilter ולאחזר את CameraCharacteristics או מידע אחר שקשור ל-Camera2 דרך Camera2CameraInfo. (Ib887c)
  • ממשקי ExperimentalCameraFilter API לא נמצאים יותר בשלב הניסיוני, והם הופכים לממשקי API רשמיים. אפשר להשתמש בהם בלי הבעת הסכמה. (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 מכילה את ההוספות האלה.

תיקוני באגים

  • תוקנה דליפת זיכרון שנגרמה על ידי מספר חוטים שגולשים בו-זמנית לאותה אוסף. דליפת הזיכרון עלולה לגרום לשמירת הפעילות או ה-Fragment במכונה של Preview. (I7b4b8)
  • ההערה @Experimental הוחלפה ב-@RequiresOptIn בממשקי API ניסיוניים. כדי לקרוא לממשקי API ניסיוניים, צריך להשתמש ב-androidx.annotation.OptIn במקום ב-androidx.annotation.experimental.UseExperimental שהוצא משימוש. (Iff226)
  • תיקון: כשמצלמים תמונה עם הפלאש מופעל או במצב אוטומטי, התמונות מטושטשות ב-Samsung Galaxy S7. I30001
  • נוספה ממשק CameraState API שיהיה חשוף דרך CameraInfo. (I75392)

גרסה 1.1.0-alpha03

24 במרץ 2021

התכונות androidx.camera:camera-camera2:1.1.0-alpha03, androidx.camera:camera-core:1.1.0-alpha03 וגם androidx.camera:camera-lifecycle:1.1.0-alpha03 משוחררות. גרסה 1.1.0-alpha03 כוללת את ההוספות האלה.

תיקוני באגים

  • פורמט פלט JPEG ל-ImageCapture#OnImageCapturedCallback כשהאפשרות 'מצבי תוספים' מופעלת. (I0d7b1)
  • תוקנה שגיאת איפוס במכשירי UMIDIGI BISON‏ (I57d9e, ‏ b/180818665)
  • תוקנה בעיה בתצוגה המקדימה של Samsung A3 ב-PreviewView. (Iacb30, b/180121821)

גרסה 1.1.0-alpha02

24 בפברואר 2021

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

שינויים ב-API

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

תיקוני באגים

  • עכשיו, CameraX מנסה לפתוח את המצלמה בכוח בניסיון הראשון. כתוצאה מכך, יכול להיות ש-CameraX תגנוב את המצלמה מלקוחות אחרים של מצלמה אם לאפליקציה שלה יש עדיפות גבוהה יותר. (Iab069, ‏ b/175820568)
  • תוקנה התקלה בבדיקת Robolectric כשמשתמשים ב-setAvailableCamerasLimiter ב-CameraXConfig. (Ice307)
  • השינוי הזה מאפשר לזהות את החריגה כשעומס התמונות ב-ImageAnalysis מגיע למקסימום. לכן, במקום קריסה, יכול להיות שתבחינו בתרחישי שימוש אחרים שהם קפואים או איטיים. לדוגמה, תצוגה מקדימה קפואה או איטית. (Ic12da, b/175851631)
  • תוקנו תוספי SitelinksErrorListener כדי לדווח על שגיאות כאשר רק 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)

גרסה 1.0.2 של Camera- Camera2, Camera-Core ו- Camera-Lifecycle

גרסה 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)

גרסה 1.0.1 של Camera- Camera2, Camera-Core ו- Camera-Lifecycle

גרסה 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 מכילה את ההצהרות האלה על ביצוע שינויים (commits).

תיקוני באגים

  • תוקנה הבעיה שבה ה-ListenableFuture שהוחזר ב-setZoomRatio וב-setLinearZoom לא יכול להסתיים במכשירי Android 11 מסוימים (I716d7)

  • תוקנה בעיה שבה המצלמה נתקעת במצב סגירה במכשירים מסוימים, וכתוצאה מכך התצוגה המקדימה שחורה. (I34c99)

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

גרסה 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 כוללת את ההצהרות האלה.

תיקוני באגים

  • תוקנה הבעיה DisallowArgument תנועה כשכל הגדלים הנתמכים של התצוגה המקדימה היו קטנים מ-640x480 וגודל התצוגה גדול מ-640x480. (b/150506192)
  • הגבלת מספר הניסיונות לפתוח מחדש את המצלמה. במהלך הניסיון להתאושש מבעיות מסוימות בפתיחת המצלמה, אפליקציית CameraX לא תנסה לפתוח מחדש את המצלמה ללא הגבלת זמן. במקום זאת, היא תפסיק אחרי 10 שניות של ניסיונות חוזרים.I435d2

  • תוקנה בעיה ב-IllegalArgumentException שאירעה כאשר כל הגדלים הנתמכים של התצוגה המקדימה היו קטנים מ-640x480 וגודל התצוגה גדול מ-640x480. (I2a63c, b/150506192)

גרסה 1.0.0-rc01

16 בדצמבר 2020

androidx.camera:camera-camera2:1.0.0-rc01, androidx.camera:camera-core:1.0.0-rc01 ו-androidx.camera:camera-lifecycle:1.0.0-rc01 שוחררו. גרסה 1.0.0-rc01 כוללת את ההוספות האלה.

שינויים ב-API

  • שינינו את CameraFilter ואת Camera2Filter כך שיכללו את CameraInfo. (I6883d)
  • נוספה הכיתה הניסיונית Camera2CameraControl שמאפשרת פעולה הדדית עם ממשקי Camera2 API באופן דינמי. (I45cf3)
  • שינינו את השם של Camera2CameraInfo#fromCameraInfo ל-#from. (Ia2bd6)
  • הוספנו ל- CameraXConfig ממשק ניסיוני של setAvailablesLimiter, כדי לאפשר לאפליקציות לבצע אופטימיזציה של זמן האחזור של האתחול על ידי מניעת אתחול של מצלמות שאינן בשימוש. (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)

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

11 בנובמבר 2020

התכונות androidx.camera:camera-camera2:1.0.0-beta12, androidx.camera:camera-core:1.0.0-beta12 וגם androidx.camera:camera-lifecycle:1.0.0-beta12 משוחררות. גרסה 1.0.0-בטא12 מכילה את ההתחייבויות האלה.

תיקוני באגים

  • הפלאש האוטומטי מושבת במכשירי Samsung A3 כדי לתקן את הקריסה בזמן צילום תמונה במצב AE של Flash אוטומטי במכשירי Samsung A3. (Ia5fe3, b/157535165)
  • תוקנה בעיה שבה התצוגה המקדימה נמתחה במכשירי Nexus 4 עם Android L (רמות API 21 ו-22). (I4d407, ‏ b/158749159)
  • ההטמעה של הכיתה הבסיסית OnImageCapturedCallback#onCaptureSuccess כבר לא סוגרת את התמונה. המטרה היא למנוע התנהגות לא צפויה למפתחים. מפתחים לא צריכים להסתמך על super.onCaptureSuccess כדי לסגור את התמונה. (Ifbf9c)
  • הווריאנטים של androidx של ההערה הניסיונית הוצאו משימוש כדי לספק תאימות ל-Kotlin. החלפנו אותו בהערה RequiresOptIn, וה-Linter שמותאם ל-Java עודכן לתמיכה בהערת Kotlin החדשה וגם בווריאנט androidx החדש. (I52495, ‏ b/151331381)

Camera- Camera2 גרסה 1.0.0-beta11

14 באוקטובר 2020

androidx.camera:camera-camera2:1.0.0-beta11 משוחרר. גרסה 1.0.0-בטא11 מכילה את ההתחייבויות האלה.

תכונות חדשות

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

תיקוני באגים

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

Camera-Core גרסה 1.0.0-beta11

14 באוקטובר 2020

androidx.camera:camera-core:1.0.0-beta11 משוחרר. גרסה 1.0.0-בטא11 מכילה את ההתחייבויות האלה.

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

תיקוני באגים

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

Camera-Core גרסה 1.0.0-beta10

23 בספטמבר 2020

androidx.camera:camera-core:1.0.0-beta10 משוחרר. גרסה 1.0.0-beta10 כוללת את ההצהרות האלה.

תיקוני באגים

  • תיקון באג באימות היעד לשמירת קובץ של צילום תמונה (I8c565, ‏ b/167697553)

Camera-Camera2 גרסה 1.0.0-beta10

23 בספטמבר 2020

androidx.camera:camera-camera2:1.0.0-beta10 משוחרר. גרסה 1.0.0-beta10 כוללת את ההצהרות האלה.

תיקוני באגים

Camera-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 של מצלמת ליבה

16 בספטמבר 2020

androidx.camera:camera-core:1.0.0-beta09 משוחרר. גרסה 1.0.0-beta09 מכילה את ההתחייבויות האלה.

שינויים ב-API

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

תיקוני באגים

  • בוצע אופטימיזציה של ה-binToLifecycle כדי להריץ במהירות את ה-thread הראשי. (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)

Camera-Core גרסה 1.0.0-beta08

19 באוגוסט 2020

androidx.camera:camera-core:1.0.0-beta08 משוחרר. גרסה 1.0.0-beta08 כוללת את ההצהרות האלה.

שינויים ב-API

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

תיקוני באגים

  • בצילום תמונות, מחליפים את הדגל של היפוך אופקית במטא-נתונים על סמך כיוון המצלמה. (I28499)
  • לא אמורה להיות יותר קריסה של ההפעלה הראשונית כשמשתמשים ב-Context שלא מחזיר אובייקט Application מ-Context.getApplicationContext(). (I3d3c9, ‏ b/160817073)

Camera-Camera2 גרסה 1.0.0-beta07

22 ביולי 2020

androidx.camera:camera-camera2:1.0.0-beta07 משוחרר. גרסה 1.0.0-beta07 כוללת את ההתחייבויות האלה.

תיקוני באגים

  • תוקנה בעיה שבה התצוגה המקדימה מורחבת במכשירי Android 5.0 מדור קודם. (I0c03a)
  • הוחרגנו חלק מהגדלים הנתמכים של קובצי JPEG שגורמים לבעיות ב-WYSIWYG במכשירים מסוימים. (Ib5128)

Camera-Core גרסה 1.0.0-beta07

22 ביולי 2020

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

שינויים ב-API

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

תיקוני באגים

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

Camera-Camera2 גרסה 1.0.0-beta06

24 ביוני 2020

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

שינויים ב-API

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

תיקוני באגים

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

Camera-Core גרסה 1.0.0-beta06

24 ביוני 2020

androidx.camera:camera-core:1.0.0-beta06 משוחרר. גרסה 1.0.0-beta06 כוללת את ההתחייבויות האלה.

שינויים ב-API

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

תיקוני באגים

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

Camera-Camera2 גרסה 1.0.0-beta05

10 ביוני 2020

androidx.camera:camera-camera2:1.0.0-beta05 משוחרר. גרסה 1.0.0-beta05 מכילה את התחייבויות אלה.

תיקוני באגים

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

Camera-Core גרסה 1.0.0-beta05

10 ביוני 2020

androidx.camera:camera-core:1.0.0-beta05 משוחרר. גרסה 1.0.0-beta05 כוללת את ההתחייבויות האלה.

שינויים ב-API

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

תיקוני באגים

  • עדכנו את ה-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)
  • האתחול האוטומטי מתקן את הבעיה כשמשתמשים באפליקציה במכשיר שמשתמש ב-pseudo-locale. (I3bef3, ‏ b/154767663)
  • יומן שגיאות שהומר וקשור לתרחיש לדוגמה שלא נותק ליומן ניפוי באגים ב- Camera2 CameraImpl. (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(), להגדרת הטיפולר שמשמש באופן פנימי את סטאק המצלמה של 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)
  • האתחול האוטומטי מתקן את הבעיה כשמשתמשים באפליקציה במכשיר שמשתמש ב-pseudo-locale. (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 של מצלמת ליבה

15 באפריל 2020

androidx.camera:camera-core:1.0.0-beta03 משוחרר. גרסה 1.0.0-beta03 מכילה את ההצהרות האלה.

תיקוני באגים

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

Camera- Camera2 גרסה 1.0.0-beta02

1 באפריל 2020

androidx.camera:camera-camera2:1.0.0-beta02 משוחרר. גרסה 1.0.0-beta02 מכילה את ההצהרות האלה.

תיקוני באגים

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

Camera-Core גרסה 1.0.0-beta02

1 באפריל 2020

androidx.camera:camera-core:1.0.0-beta02 משוחרר. גרסה 1.0.0-beta02 מכילה את ההצהרות האלה.

תיקוני באגים

  • תוקן הערך של ImageInfo.getRotationDegrees() מתוך הערך של ImageProxy שנוצר על ידי ImageCapture כך שיתאים לערך הסיבוב של כיוון התמונה ב-EXIF. (Id4281, b/150802561)
  • תוקנה הבעיה ב-bindToLifecycle כך שהיא תשנה את UseCase רק אם הקישור יתבצע בהצלחה. בעבר, כשהתרחיש bindToLifecycle נקרא כדי לבצע חישובי רזולוציה, התרחיש מעודכן. עכשיו אין צורך לעדכן את תרחיש השימוש כדי לבצע את החישובים (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)

Camera-Core גרסה 1.0.0-beta01

26 בפברואר 2020

androidx.camera:camera-core:1.0.0-beta01 משוחרר. גרסה 1.0.0-beta01 מכילה את התחייבויות אלה.

שינויים ב-API

  • החלפת את ListenableFuture ב-SurfaceRequest.provideSurface() ב-Executor וב-Callback. כך אפשר לפשט את ה-API, כי כבר אין צורך לטפל בחריגות ב-provideSurface(), וגם לא ניתן לבטל את קריאת החזרה (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)

מצלמה-מצלמה2 גרסה 1.0.0-alpha10

10 בפברואר 2020

androidx.camera:camera-camera2:1.0.0-alpha10 משוחרר. גרסה 1.0.0-alpha10 מכילה את ההצהרות האלה.

תיקוני באגים

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

Camera-Core גרסה 1.0.0-alpha10

10 בפברואר 2020

androidx.camera:camera-core:1.0.0-alpha10 משוחרר. גרסה 1.0.0-alpha10 כוללת את ההצהרות האלה.

שינויים ב-API

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

Camera-Camera2 גרסה 1.0.0-alpha09

22 בינואר 2020

androidx.camera:camera-camera2:1.0.0-alpha09 משוחרר. גרסה 1.0.0-alpha09 מכילה את ההצהרות האלה.

שינויים ב-API

  • הוספת נתיב של שיתוף פעולה הדדי של camera2 לחילוץ מזהה מצלמה של Camera2. אפשר לחלץ את מזהה המצלמה מ-CameraInfo באמצעות Camera2CameraInfo.extractCameraId(). דוגמת הקוד הבאה מראה איך משתמשים בזה:

    Camera camera = provider.bindToLifecycle(...);
    String cameraId =
        Camera2CameraInfo.extractCameraId(camera.getCameraInfo());
    

    בכיתה Camera2CameraInfo נדרש markerClass‏ ExperimentalCamera2Interop.

גרסה ליבה של מצלמה 1.0.0-alpha09

22 בינואר 2020

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

שינויים ב-API

  • שם הפרמטר SurfaceOrientedMeteringPointFactory useCaseForSurface השתנה ל-useCaseForAspectRatio, ומסמכי העזרה הורחבו.
  • השיטות FocusMeteringAction.Builder.from() מוחלפות ב-constructors‏ FocusMeteringAction.Builder().
  • הוסר DisplayOrientedMeteringPointFactory(android.content.Context, androidx.camera.core.CameraSelector, float, float). באפליקציות צריך להשתמש ב-constructor שמקבל פרמטר Display ומעביר את התצוגה הנוכחית.
  • שיפורים ב-Javadoc לממשקי ה-API של התמקדות ומדידה לגבי הדגלים MeteringMode ו-3A, ושימוש בפרמטר Display.
  • הרחבנו את מאמרי העזרה של setZoomRatio ו-setLinearZoom.

תיקוני באגים

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

גרסה ליבה של מצלמה 1.0.0-alpha08

18 בדצמבר 2019

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

בעיות מוכרות

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

תיקוני באגים

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

שינויים ב-API

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

Camera-Camera2 גרסה 1.0.0-alpha07

4 בדצמבר 2019

androidx.camera:camera-camera2:1.0.0-alpha07 משוחרר. גרסה 1.0.0-alpha07 של camera-camera2 מכילה את ההצהרות האלה

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

Camera-Core גרסה 1.0.0-alpha07

4 בדצמבר 2019

androidx.camera:camera-core:1.0.0-alpha07 משוחרר. גרסה 1.0.0-alpha07 של ליבת המצלמה מכילה את ההתחייבויות האלה

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

שינויים ב-API

  • חשוב: תהליך האיפוס של CameraX השתנה. באפליקציות צריך להטמיע את CameraXConfig.Provider ולהשתמש ב-Camera2Config שמוגדרת כברירת מחדל על ידי androidx.camera.camera2. שימוש טיפוסי הוא:

    import androidx.camera.camera2.Camera2Config
    import androidx.camera.core.CameraXConfig
    
    public class MyCameraXApplication : Application(),  CameraXConfig.Provider {
        override fun getCameraXConfig(): CameraXConfig {
                return Camera2Config.defaultConfig(this)
        }
    }
    
  • הכיתה CameraX הוסרה. הערכים bindToLifecycle(),‏ unbind(),‏ unbindAll(),‏ isBound() ו-hasCamera() שסופקו בעבר על ידי קריאה לכיתה CameraX זמינים עכשיו דרך ProcessCameraProvider.

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

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

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

  • ImageAnalysis ImageReaderMode השתנה לשיטת בקרת לחץ intdef.

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

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

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

  • השם של רכיבי ההאזנה עם יותר מ-method אחד השתנה ל-Callback:

    • ImageCapture.OnImageCapturedListener נקרא עכשיו ImageCapture.OnImageCapturedCallback
    • ImageCapture.OnImageSavedListener נקרא עכשיו ImageCapture.OnImageSavedCallback
    • VideoCapture.OnVideoSavedListener נקרא עכשיו VideoCapture.OnVideoSavedCallback
  • משתני enum השתנו ל-IntDef

  • נוספו פקדים לשינוי מרחק התצוגה:

    • CameraControl.setLinearZoom()
    • CameraControl.setZoomRatio()
    • CameraInfo.getLinearZoom()
    • CameraInfo.getMaxZoomRatio()
    • CameraInfo.getZoomRatio()
  • CameraInfo.hasFlashUnit() נוסף כדי לקבוע אם יש חומרה של פלאש/פנס.

  • CameraInfo.isFlashAvailable() הוסר. הפנס מבטל את הפונקציונליות של ה-Flash. פרטים נוספים מופיעים במאמרי העזרה.

  • שדות של ImageCapture.Metadata מוחלפים ברכיבי accessor/set/is.

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

  • MeteringPoints פועלים עכשיו כמקורות לפעולות של מדידה, והם מיוצרים על ידי מפעלים. האפליקציות צריכות להשתמש במפעלים הקיימים במקום במפעלים בהתאמה אישית.

בעיות שתוקנו

  • תוקנה בעיה בצילום תמונה לאחר חזרה לפעולה (אחרי שההשהיה הקודמת גרמה לצילום תמונות בהמתנה להשלמה).
  • בעיה ידועה: הפונקציה CameraControl.enableTorch() תקינה, אבל הערך ListenableFuture<Void> שמוחזר הוא תמיד complete(success) עתידי מיידי, גם אם אין יחידת פלאש. בגרסאות עתידיות הבעיה הזו תיפתר וההתנהגות הסופית תהיה: כשאין יחידת Flash, enableTorch(true) נכשל מיד (לא נשלח בקשה אל CaptureSession) ו-TorchState נשאר במצב מושבת.
  • בעיה ידועה: הפונקציות startFocusAndMetering ו-cancelFocusAndMetering מתחילות ומבטלות את המדידה של המיקוד, אבל מחזירות ערך completed (success) עתידי מיידי שלא מייצג את ההתנהגות המתועדת. הערך של FocusMeteringResult מ-ListenableFuture<FocusMeteringResult> CameraControl.startFocusAndMetering() הוא תוצאה מזויפת ש-isFocusSuccessful() והוא תמיד 'false', שונה מההתנהגות המתוכננת והמתועדת.
  • בעיה ידועה: אנחנו מפתחים מפעל של נקודות מדידה לשימוש עם אירועי מגע מסוג PreviewView. נכון לעכשיו, אפליקציות שמקושרות לפלטפורמות מנוהלות בהתאמה אישית יכולות להשתמש במפעלים הקיימים של נקודות מדידה. אחרת, פונקציונליות של מיקוד במגע לא זמינה עבור PreviewView.

מצלמה-מצלמה2 וגרסה 1.0.0-alpha06

9 באוקטובר 2019

androidx.camera:camera-camera2:1.0.0-alpha06 ו-androidx.camera:camera-core:1.0.0-alpha06 משוחררים. אלו ההתחייבויות שכלולות בcamera-camera2:1.0.0-alpha06 ואלה ההתחייבויות שכלולות בcamera-core:1.0.0-alpha06.

תכונות חדשות

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

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

ממשקי API של Executor

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

הוספנו את CameraInfo עם ממשקי ה-API של בדיקת זמינות הפלאש וחיישן הסיבוב

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

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

5 בספטמבר 2019

androidx.camera:camera-camera2:1.0.0-alpha05 ו-androidx.camera:camera-core:1.0.0-alpha05 משוחררים. אלה השינויים שכלולים ב-camera-camera2:1.0.0-alpha05 ואלה השינויים שכלולים ב-camera-core:1.0.0-alpha05.

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

    • השם של ImageCapture.UseCaseError השתנה ל-ImageCapture.ImageCaptureError
    • השם של VideoCapture.UseCaseError השתנה ל-VideoCapture.VideoCaptureError
  • נוספו ממשקי 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 למפעלים של נקודות מדידה שעוזרים לתרגם קואורדינטות של הקשות לקווי אורך ולקווים רוחב של חיישנים, על סמך כיתות תצוגה:

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

תיקוני באגים

  • תוקנו בעיות של זמן קצוב לתפוגה בהמתנה להתכנסות של 3A בזמן צילום תמונות במכשירים ללא התכונות 'מיקוד אוטומטי', 'חשיפה אוטומטית' ו'איזון לבן אוטומטי'
  • תוקנה הבעיה בצילום תמונות במהירות באמצעות ImageCapture. תיקון השגיאה: java.lang.IllegalStateException: maxImages (2) has already been acquired
  • נפתרה הבעיה כשלא נשלחה קריאה ל-setLensFacing לתרחיש לדוגמה, וכתוצאה מכך התקבל java.lang.IllegalArgumentException: Unable to get camera ID for use case.
  • תוקנה בעיה שבה מכשיר LEGACY דרש יחס גובה-רוחב ספציפי לרזולוציית 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
  • בודקים תיקונים לבדיקות מקיפות יותר
  • בבדיקה של שילוב הליבה מוצג עכשיו זמן הצילום של התמונות
  • פיתוח של סוג תאימות פנימי ל-Executors
  • תזמון הבדיקה של האפליקציה לצילום תמונות ממתין להשלמת התמונה הקודמת ושיפור היציבות

תוספים

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

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, שהתרחשה במכשירים מסוימים כשצילמו תמונות במהירות תוך ביטול קישור וקישור מחדש של תרחישי שימוש במהירות.
  • תוקנה בעיה פנימית כדי להבטיח שעדכונים של בקשת תיעוד ישפיעו על כל הפלטפורמות באופן עקבי
  • שיפורי יציבות כשמפעילים מחדש תרחישים לדוגמה במופעים חדשים של אפליקציות
  • שינויים בארכיטקטורה הפנימית כדי להתכונן לתמיכה במבצעים ב-API
  • הבהרות נוספות ב-Javadoc לגבי הכיתה של CameraX וניהול מחזור החיים
  • נוספו בדיקות עם מכשירי מדידה לאפליקציית בדיקת הביצועים Antelope
  • אין צורך להשתמש ב-'-keepattributes Signature' בהגדרות Proguard של האפליקציה

Camera-Camera2 ו-Camera-Core 1.0.0-alpha01

7 במאי 2019

androidx.camera:camera-core:1.0.0-alpha01 ו-androidx.camera:camera-camera2:1.0.0-alpha01 משוחררים. גרסה 1.0.0-alpha01 מכילה את התחייבויות אלה.

Camera-Lifecycle גרסה 1.0.0-beta11

14 באוקטובר 2020

androidx.camera:camera-lifecycle:1.0.0-beta11 משוחרר. גרסה 1.0.0-beta11 מכילה את ההצהרות האלה.

תיקוני באגים

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

Camera-Lifecycle גרסה 1.0.0-beta10

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 שלא מחזיר אובייקט Application מ-Context.getApplicationContext(). (I3d3c9, ‏ b/160817073)

Camera-Lifecycle גרסה 1.0.0-beta07

22 ביולי 2020

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

Camera-Lifecycle גרסה 1.0.0-beta06

24 ביוני 2020

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

שינויים ב-API

  • עכשיו אפשר להגדיר את CameraX עם Process CameraProvider#ConfigurationInstance() לפני הקריאה Process CameraProvider#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)

Camera-Lifecycle גרסת 1.0.0-beta04

27 במאי 2020

androidx.camera:camera-lifecycle:1.0.0-beta04 משוחרר. גרסה 1.0.0-beta04 מכילה את התחייבויות אלה.

גרסה 1.0.0-beta03 של מחזור החיים של מצלמה

15 באפריל 2020

androidx.camera:camera-lifecycle:1.0.0-beta03 משוחרר. גרסה 1.0.0-beta03 מכילה את ההצהרות האלה.

תיקוני באגים

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

Camera-Lifecycle גרסה 1.0.0-beta01

26 בפברואר 2020

androidx.camera:camera-lifecycle:1.0.0-beta01 משוחרר. גרסה 1.0.0-beta01 מכילה את התחייבויות אלה.

תיקוני באגים

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

גרסה 1.0.0-beta02 של מחזור החיים של המצלמה

1 באפריל 2020

androidx.camera:camera-lifecycle:1.0.0-beta02 משוחרר. גרסה 1.0.0-beta02 מכילה את התחייבויות אלה.

תיקוני באגים

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

Camera-Lifecycle גרסה 1.0.0-alpha10

10 בפברואר 2020

androidx.camera:camera-lifecycle:1.0.0-alpha10 משוחרר. גרסה 1.0.0-alpha10 מכילה את ההצהרות האלה.

שינויים ב-API

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

גרסה 1.0.0-alpha03 של מחזור חיים של מצלמה

22 בינואר 2020

androidx.camera:camera-lifecycle:1.0.0-alpha03 משוחרר. גרסה 1.0.0-alpha03 כוללת את ההצהרות האלה.

עדכונים

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

גרסה 1.0.0-alpha02 של מחזור החיים של מצלמה

18 בדצמבר 2019

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

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

  • עודכן לשימוש ב-androidx.camera:camera-core:1.0.0-alpha08.

Camera-Lifecycle גרסה 1.0.0-alpha01

4 בדצמבר 2019

androidx.camera:camera-lifecycle:1.0.0-alpha01 משוחרר. גרסה 1.0.0-alpha01 של camera-lifecycle מכילה את ההצהרות האלה

הערות בנושא API

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

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

גרסה 1.0.0-alpha32

15 בדצמבר 2021

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

שינויים ב-API

  • הוסרו הערות @RequiresApi(21) מיותרות מהממשקים או מהכיתות הפנימיים. (I8e286, b/204917951)
  • עדכון קובצי ה-API של פריט המידע שנוצר בתהליך הפיתוח (artifact) של התוספים למצלמה. (If683a, ‏ b/161377155)

תיקוני באגים

  • לא לאפשר לאפליקציה להפעיל מצבי תוסף כשמקשרים את VideoCapture. התוספים של CameraX תומכים רק ב-ImageCapture וב-Preview. עדיין אין תמיכה ב-VideoCapture. אם האפליקציה מקשרת את VideoCapture ומפעילה מצב תוסף כלשהו, תופיע הודעת השגיאה IllegalArgumentException. (I0d87b)
  • CameraSelector#filter כבר לא יוצרת IllegalArgumentException כשקבוצת התוצאות ריקה. (I27804)
  • השם של ממשק ה-API ExtensionsManager#getInstance השתנה ל-getInstanceAsync כי הוא מחזיר את הערך ListenableFuture. הסיומת Async בשם הפונקציה יכולה להציג בבירור שמדובר בפונקציה אסינכררונית. (I279d2)
  • מסירים את פרמטר הרזולוציה מ-ExtensionsManager#getEstimatedCaptureLatencyRange API, כי המשתמשים לא יכולים לדעת אילו גדלים נתמכים בתרחיש לדוגמה 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)
  • שינינו את מבנה הקוד של RotationListener ושמנו לו את השם RotationProvider. הוא ממשיך לספק את אותה תכונה עם ממשק API שונה במקצת. (Idffc5)
  • שנה את השם של TAP_TO_FOCUS_UNPROGRESSFUL ל-TAP_TO_FOCUS_NOT_FOCUSED ו-TAP_TO_FOCUS_PROGRESSFUL ל-TAP_TO_FOCUS_FOCused. הגדרנו את OutputSize כערך סופי (I099fa)

תיקוני באגים

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

גרסה 1.0.0-alpha27

21 ביולי 2021

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

שינויים ב-API

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

גרסה 1.0.0-alpha25

2 ביוני 2021

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

שינויים ב-API

  • ממשקי ה-API הניסיוניים של CameraFilter נמצאים עכשיו בשלב ניסיוני והופכים לממשקי API רשמיים. אפשר להשתמש בהם בלי הסכמה מפורטת. (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 מכילה את ההצהרות האלה על ביצוע שינויים (commits).

תיקוני באגים

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

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

24 במרץ 2021

androidx.camera:camera-extensions:1.0.0-alpha23 ו-androidx.camera:camera-view:1.0.0-alpha23 שוחררו. גרסה 1.0.0-alpha23 מכילה את ההצהרות האלה.

שינויים ב-API

תיקוני באגים

  • יחסי תלות של צפייה במצלמה מוצמדים כדי להסתמך על ארטיפקטים של 1.0.0. בהתאם לתצוגה של המצלמה, הרזולוציה של התלות ב-Gradle לא תגרום יותר לשדרוג האוטומטי של הליבה של המצלמה, של המצלמה השנייה ושל מחזור החיים של המצלמה לפריטי 1.1.0 העדכניים ביותר, למרות שתצוגת המצלמה עדיין תואמת לפריטי המידע האלה אם הם מוגדרים במפורש לשימוש ב-1.1.0. (Ic8fa1, b/181599852)
  • תוקנה בעיה בתצוגה המקדימה של Samsung A3 ב-PreviewView. (Iacb30, b/180121821)
  • תוקנה בעיה שבה לא ניתן להגדיר את בורר המצלמות לפני שמפעילים את המצלמה. (Ic8bd0)

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

24 בפברואר 2021

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

שינויים ב-API

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

תיקוני באגים

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

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

27 בינואר 2021

androidx.camera:camera-extensions:1.0.0-alpha21 ו-androidx.camera:camera-view:1.0.0-alpha21 שוחררו. גרסה 1.0.0-alpha21 מכילה את ההצהרות האלה.

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

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

16 בדצמבר 2020

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

משיקים כדי לתמוך בפריטי מידע אחרים בספריית המצלמה.

גרסה 1.0.0-alpha19 של תצוגת מצלמה

11 בנובמבר 2020

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

תיקוני באגים

  • ההערה @ExperimentalVideo נוספה לתצוגת המצלמה. ההערה הזו מסמנת ממשקי API שמציגים פונקציונליות ניסיונית של וידאו, שעשויה להשתנות ככל שהתכונות יתפתחו במלואן. בכל שיטה שמשתמשת בממשקי ה-API האלה צריך להשתמש בהערה @UseExperimental עם ExperimentalVideo בתור markerClass. (I6d729)

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 אם היא נקראת לפני שמצרפים אותה למכונה של Camera, אלא אם הוגדר targetRotation ב-Builder או ב-UseCase. (I80fcd)

גרסה 1.0.0-alpha18 של Camera-View

14 באוקטובר 2020

androidx.camera:camera-view:1.0.0-alpha18 משוחרר. גרסה 1.0.0-alpha18 מכילה את ההצהרות האלה.

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

Camera-Extensions גרסה 1.0.0-alpha17

23 בספטמבר 2020

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

תיקוני באגים

תצוגת מצלמה גרסה 1.0.0-alpha17

23 בספטמבר 2020

androidx.camera:camera-view:1.0.0-alpha17 משוחרר. גרסה 1.0.0-alpha17 מכילה את ההצהרות האלה.

תיקוני באגים

Camera-Extensions גרסה 1.0.0-alpha16

16 בספטמבר 2020

androidx.camera:camera-extensions:1.0.0-alpha16 משוחרר. גרסה 1.0.0-alpha16 מכילה את ההצהרות האלה על ביצוע שינויים (commits).

תיקוני באגים

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

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

בעיות מוכרות

  • ב-PreviewView, OnClickListener#onClick() לא מופעל כשמשתמש הקצה לוחץ על PreviewView. אירוע המגע נצרך בטעות על ידי PreviewView#onTouchEvent(). הבעיה תיפתר במהדורה הבאה.
  • אם משתמשים ב-ViewPort עם PreviewView, ייתכן שהערך של MeteringPoint שהתקבל מ-PreviewView#getMeteringPointFactory() יהיה שגוי.

Camera-Extensions גרסה 1.0.0-alpha15

19 באוגוסט 2020

androidx.camera:camera-extensions:1.0.0-alpha15 משוחרר. גרסה 1.0.0-alpha15 מכילה את ההצהרות האלה.

תיקוני באגים

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

    גרסה 1.0.0-alpha15 של Camera-View

    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)

Camera-View גרסה 1.0.0-alpha13

24 ביוני 2020

androidx.camera:camera-view:1.0.0-alpha13 משוחרר. גרסה 1.0.0-alpha13 מכילה את ההצהרות האלה.

תיקוני באגים

  • לא מתרחש יותר קריסה של CameraView עם IllegalArgumentException כשמקשרים אותה ל-LifecycleOwner שמחזור החיים שלו עובר למצב 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)

גרסה 1.0.0-alpha12 של Camera-View

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

גרסה 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)

Camera-View גרסה 1.0.0-alpha11

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

Camera-View גרסה 1.0.0-alpha10

15 באפריל 2020

androidx.camera:camera-view:1.0.0-alpha010 משוחרר. גרסה 1.0.0-alpha010 מכילה את ההצהרות האלה.

תיקוני באגים

  • תוקנה בעיה ידועה קודמת שבה ההטמעה של surfaceView ב-PreviewView לא פעלה טוב במכשירים מסוימים, וגרמה לקריסת האפליקציה אחרי שתצוגה המקדימה חודשה. (I5ed6b)

Camera-Extensions גרסה 1.0.0-alpha09

1 באפריל 2020

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

תיקוני באגים

  • העדכון תומך בתיקוני הבאגים ב-artifacts‏ camera-camera2:1.0.0-beta02,‏ camera-core:1.0.0-beta02 ו-camera-lifecycle:1.0.0-beta02

גרסה 1.0.0-alpha09 של המצלמה

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

בעיות מוכרות

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

שינויים ב-API

  • השם של PreviewView.setImplementationMode() השתנה ל-PreviewView.setPreferredImplementationMode().
  • השם של PreviewView.getImplementationMode() השתנה ל-PreviewView.getPreferredImplementationMode().
  • PreviewView.getSurfaceProvider() הוחלף ב-PreviewView.createSurfaceProvider(CameraInfo), שמקבל מופע nullable של 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 מכילה את ההצהרות האלה.

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

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)

Camera-View גרסה 1.0.0-alpha07

10 בפברואר 2020

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

שינויים ב-API

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

תיקוני באגים

  • עדכנו את ImageCapture כדי לאפשר שמירת תמונות ב-Uri וב-OutputStream. שילוב של שיטות takePicture עם עומס יתר לשיטה אחת. אפליקציית הבדיקה עודכנה לשימוש ב-Uri כדוגמה הקנונית. (Ia3bec)
  • השם של Preview.PreviewSurfaceProvider שונה ל-Preview.SurfaceProvider. ב-SurfaceProviders, המפתחים כבר לא צריכים ליצור ListenableFuture משלהם, והוספת Surface מתבצעת עכשיו באמצעות אובייקט SurfaceRequest חדש. השיטה Preview.getPreviewSurfaceProvider() הוסרה בגלל האפשרות לשימוש לרעה בה, כש-Preview משויך לכיתות אחרות כמו PreviewView. (I20105)
  • הארגומנטים שהועברו בעבר ב-ImageCapture.OnImageSavedCallback.onError() וב-ImageCapture.OnImageCapturedCallback.onError() הוחלפו עכשיו בארגומנט ImageCaptureException, שעדיין מכיל את כל המידע שהועבר.
  • הארגומנט של הקובץ שהוענק בעבר ב-ImageCapture.OnImageSavedCallback.onImageSaved() הוסר. (I750d2)
  • ה-API עודכן, עם השיטות getZoomRatio(), getMaxZoomRatio(), getMinZoomRatio() ו-getLinearZoom() למיזוג של CameraInfo ל-getZoomState(), שמחזירה מופע ZoomState. (Ib19fe)

Camera-Extensions גרסה 1.0.0-alpha06

22 בינואר 2020

androidx.camera:camera-extensions:1.0.0-alpha06 משוחרר. גרסה 1.0.0-alpha06 מכילה את ההצהרות האלה.

עדכונים

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

גרסה 1.0.0-alpha06 של Camera-View

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.

גרסה 1.0.0-alpha05 של Camera-View

18 בדצמבר 2019

androidx.camera:camera-view:1.0.0-alpha05 משוחרר. גרסה 1.0.0-alpha05 מכילה את ההצהרות האלה.

בעיות מוכרות

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

תכונות חדשות

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

תוספי מצלמה, גרסה 1.0.0-alpha04

4 בדצמבר 2019

androidx.camera:camera-extensions:1.0.0-alpha04 משוחרר. גרסה 1.0.0-alpha04 של תוספי המצלמה כוללת את התחייבויות אלה

שינויים ב-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

Camera-Extensions ו-Camera-View גרסה 1.0.0-alpha03

9 באוקטובר 2019

androidx.camera:camera-extensions:1.0.0-alpha03 ו-androidx.camera:camera-view:1.0.0-alpha03 משוחררים. אלה השינויים שכלולים ב-camera-extensions:1.0.0-alpha03 ואלה השינויים שכלולים ב-camera-view:1.0.0-alpha03.

תכונות חדשות

  • נוספה פונקציית איפוס הקשר (Context initializer) לתוספים. הגרסה של התוספים הועלתה ל-1.1.0

תוספי מצלמה וגרסה 1.0.0-alpha02

5 בספטמבר 2019

androidx.camera:camera-extensions:1.0.0-alpha02 ו-androidx.camera:camera-view:1.0.0-alpha02 משוחררים. אלה השינויים שכלולים ב-camera-extensions:1.0.0-alpha02, ואלה השינויים שכלולים ב-camera-view:1.0.0-alpha02.

  • נוספו בדיקות כדי לוודא שPreviewImageProcessorImpl הטמיע חותמות זמן בצורה נכונה.
  • מתקנים את הכשל בבדיקה ExtensionTest ב-Nexus 5‏ (API ברמה 21) ומוודאים שהתצוגה המקדימה זמינה.

Camera-Extensions ו-Camera-View גרסה 1.0.0-alpha01

7 באוגוסט 2019

androidx.camera:camera-extensions:1.0.0-alpha01 ו-androidx.camera:camera-view:1.0.0-alpha01 משוחררים. אלה השינויים שכלולים ב-camera-extensions:1.0.0-alpha01 ואלה השינויים שכלולים ב-camera-view:1.0.0-alpha01

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