CameraX
בטבלה הזו מפורטים כל פריטי המידע בקבוצה androidx.camera
.
פריט מידע שנוצר בתהליך פיתוח (Artifact) | גרסה יציבה | גרסה מועמדת להפצה | גרסת בטא | גרסת אלפא |
---|---|---|---|---|
camera-camera2 | 1.4.2 | - | 1.5.0-beta02 | - |
camera-core | 1.4.2 | - | 1.5.0-beta02 | - |
camera-compose | - | - | 1.5.0-beta02 | - |
camera-effects | 1.4.2 | - | 1.5.0-beta02 | - |
camera-extensions | 1.4.2 | - | 1.5.0-beta02 | - |
camera-feature-combination-query | - | - | - | 1.5.0-alpha06 |
camera-feature-combination-query-play-services | - | - | - | 1.5.0-alpha06 |
camera-lifecycle | 1.4.2 | - | 1.5.0-beta02 | - |
camera-mlkit-vision | 1.4.2 | - | 1.5.0-beta02 | - |
camera-view | 1.4.2 | - | 1.5.0-beta02 | - |
camera-viewfinder | - | - | 1.3.0-beta02 | 1.4.0-alpha07 |
camera-video | 1.4.2 | - | 1.5.0-beta02 | - |
בדיקת המכשיר
אנחנו בודקים את CameraX במכשירים רבים במעבדה שלנו. רשימת המכשירים שנבדקו במעבדה זמינה במאמר מכשירים שנבדקו במעבדה של CameraX.
הצהרה על יחסי תלות
כדי להוסיף תלות ב-CameraX, צריך להוסיף את מאגר Google Maven לפרויקט. מידע נוסף זמין במאמר Google's Maven repository.
מוסיפים את יחסי התלות של הארטיפקטים שאתם צריכים בקובץ build.gradle
של האפליקציה או המודול:
Groovy
dependencies { // CameraX core library using the camera2 implementation def camerax_version = "1.5.0-beta02" // The following line is optional, as the core library is included indirectly by camera-camera2 implementation "androidx.camera:camera-core:${camerax_version}" implementation "androidx.camera:camera-camera2:${camerax_version}" // If you want to additionally use the CameraX Lifecycle library implementation "androidx.camera:camera-lifecycle:${camerax_version}" // If you want to additionally use the CameraX VideoCapture library implementation "androidx.camera:camera-video:${camerax_version}" // If you want to additionally use the CameraX View class implementation "androidx.camera:camera-view:${camerax_version}" // If you want to additionally add CameraX ML Kit Vision Integration implementation "androidx.camera:camera-mlkit-vision:${camerax_version}" // If you want to additionally use the CameraX Extensions library implementation "androidx.camera:camera-extensions:${camerax_version}" }
Kotlin
dependencies { // CameraX core library using the camera2 implementation val camerax_version = "1.5.0-beta02" // The following line is optional, as the core library is included indirectly by camera-camera2 implementation("androidx.camera:camera-core:${camerax_version}") implementation("androidx.camera:camera-camera2:${camerax_version}") // If you want to additionally use the CameraX Lifecycle library implementation("androidx.camera:camera-lifecycle:${camerax_version}") // If you want to additionally use the CameraX VideoCapture library implementation("androidx.camera:camera-video:${camerax_version}") // If you want to additionally use the CameraX View class implementation("androidx.camera:camera-view:${camerax_version}") // If you want to additionally add CameraX ML Kit Vision Integration implementation("androidx.camera:camera-mlkit-vision:${camerax_version}") // If you want to additionally use the CameraX Extensions library implementation("androidx.camera:camera-extensions:${camerax_version}") }
משוב
המשוב שלכם עוזר לנו לשפר את Jetpack. נשמח לשמוע מכם אם תגלו בעיות חדשות או אם יש לכם רעיונות לשיפור הספרייה הזו. לפני שיוצרים ספרייה חדשה, כדאי לעיין בבעיות הקיימות בספרייה הזו. כדי להוסיף את ההצבעה שלכם לבעיה קיימת, לוחצים על לחצן הכוכב.
מידע נוסף זמין במאמרי העזרה בנושא כלי המעקב אחר בעיות.
גרסה 1.0 של כלי ההגדרה של העינית במצלמה
גרסה 1.0.0-alpha02
12 ביוני 2024
androidx.camera:camera-viewfinder-compose:1.0.0-alpha02
משוחרר. גרסה 1.0.0-alpha02 מכילה את ההתחייבויות האלה.
גרסה 1.0.0-alpha01
14 במאי 2024
androidx.camera:camera-viewfinder-compose:1.0.0-alpha01
משוחרר. גרסה 1.0.0-alpha01 מכילה את הקומטים האלה.
תכונות חדשות
- ספרייה חדשה. הספרייה הזו כוללת קומפוננטה הניתנת להרכבה של Viewfinder ב-Compose Native, שאפשר להשתמש בה עם CameraX ו-Camera2. ה-Viewfinder המורכב תומך ביחסי גובה-רוחב שונים ובטיפול באירועי מגע.
גרסה 1.4 של עינית המצלמה
גרסה 1.4.0-alpha07
12 ביוני 2024
הגרסאות androidx.camera:camera-viewfinder:1.4.0-alpha07
ו-androidx.camera:camera-viewfinder-core:1.4.0-alpha07
יוצאות לאור. גרסה 1.4.0-alpha07 מכילה את הקומטים האלה.
גרסה 1.4.0-alpha06
14 במאי 2024
הגרסאות androidx.camera:camera-viewfinder:1.4.0-alpha06
ו-androidx.camera:camera-viewfinder-core:1.4.0-alpha06
יוצאות לאור. גרסה 1.4.0-alpha06 מכילה את הקומטים האלה.
שינויים ב-API
- שינוי השם של
Viewfinder
'sImplementationMode
Enums כדי לשקף טוב יותר את היישומים הבסיסיים, והוספה של קבועים קבועים ל-TransformationInfo.sourceRotation
. (Ic6149) - נוסף
ZoomGestureDetector.ZoomEvent
כדי להגדיר את המצבים של תנועת זום. (I84cdf)
גרסה 1.5 של המצלמה
גרסה 1.5.0-beta02
16 ביולי 2025
androidx.camera:camera-*:1.5.0-beta02
משוחרר. גרסה 1.5.0-beta02 מכילה את הקומטים האלה.
שינויים ב-API
- הוספנו ממשקי API חדשים להגדרה או לשאילתה של קבוצות תכונות באיכות גבוהה בצורה אינטואיטיבית ומדויקת יותר, כי יכול להיות שהתכונות האלה לא נתמכות כשילוב בכל המכשירים.
SessionConfig
כולל עכשיו ממשקי API חדשים לציון קבוצת תכונות כנדרשות או מועדפות. CameraInfo.isFeatureGroupSupported
API מאפשר לדעת אם קבוצת תכונות נתמכת לפני שקושריםSessionConfig
. SessionConfig
גם מאפשר להגדיר מאזין כדי לדעת אילו תכונות נבחרו בסופו של דבר כשמגדירים את הסשן. (Ie4d60) - הוספנו את ממשקי ה-API החדשים
SessoinConfig.Builder.setFrameRateRange(Range<Integer>)
ו-CameraInfo.getSupportedFrameRateRanges(SessionConfig)
, שמאפשרים למפתחים לשלוח שאילתה לגבי קצבי פריימים נתמכים מובטחים שמוגבלים על ידיSessionConfig
ספציפי, ואז להחיל את קצב הפריימים עלSessionConfig
. (Ieacf7) - הוספנו את ה-API החדש
SessionConfig
, שכולל הפשטה טובה יותר להגדרת תרחישי שימוש, פרמטרים של סשנים,CameraEffect
,ViewPort
וכו'. קישור שלSessionConfig
ל-LifecycleOwner פותח את סשן המצלמה, מגדיר אותו באמצעות תרחישי השימוש והפרמטרים של הסשן שצוינו ומחיל אתCameraEffect
ו-ViewPort
שנקבעו. כשמעדכניםSessionConfig
חדש לאותוLifecycleOwner
, אפשר פשוט לקשרSessionconfig
חדש בלי להפעיל קודם את ביטול הקישור או אתunbindAll
. (Iedfc3) - הוספנו ממשקי API חדשים לצילום סרטונים במהירות גבוהה או בהילוך איטי. פרטים נוספים זמינים במאמר בנושא
HighSpeedVideoSessionConfig
API. (Ia16f3)
תיקוני באגים
- תוקנה בעיה ב-API של
ImageCaptureCapabilities#getSupportedOutputFormats()
שגרמה לדיווח על פורמטים של RAW כנתמכים במכשירים מסוימים, למרות שבפועל אין להם יכולת RAW. (Ibcadb) - תוקנה דליפת הזיכרון שמתרחשת כשמשתמשים ב-
PreviewView
, כש-CameraEffect
מופעל או כשמבצעים קישור של 4 תרחישי שימוש(StreamSharing) (I87468) - תוקנה קריסת הקלטת סרטון על ידי
AssertionError
: מצב אודיו פנימי לא תקין: IDLING. (I38d4b, b/414259796) - תוקנה הבעיה שבה כשהאפליקציה פועלת במסך חיצוני והמכשיר נמצא במצב לרוחב, התצוגה המקדימה ב-
PreviewView
נמתחת או מוצגת הצידה (Ia917a) - תוקנה הבעיה שבה הגדרות הייצוב של התצוגה המקדימה לא הוחלו בצורה נכונה כשזרם המצלמה שותף בין התצוגה המקדימה לבין VideoCapture. (I5430e)
-
CameraXViewfinder
מטפל עכשיו בצורה נכונה בהחלפת פריטים ב-Viewfinder
. הדבר כולל תרחישים כמו מצב שבוEXTERNAL
viewfinder ברמת API 28 ומטה יוצא מהמסך, או אםCameraXViewfinder
(עםImplementationMode
כלשהו) הוא חלק מ-moveableContentOf()
. במקרים שבהם אי אפשר לשמור על הפעילות שלViewfinderSurfaceSession
הבסיסי,CameraXViewfinder
יבטל את התוקף שלSurfaceRequest
הנוכחי של CameraX, ויאפשר ל-CameraX להשתמש ב-Surface
החדש. (I79432) - תוקנה בעיה ב-Android 10/11 שבה
EXTERNAL
CameraXViewfinder
יכול להופיע מתוח או לא תקין בגלל פעולות שינוי (כמו שינוי גודל או הזזה) שמוחלות מוקדם מדי. המערכת ממתינה עכשיו ליצירת ה-Surface לפני שהיא מחילה את השינויים האלה בשלב הפריסה, כדי להבטיח פלט נכון. (Icc77c) - הפונקציה Composable
CameraXViewfinder
פועלת עכשיו בצורה תקינה עםPager
של Compose. השינוי הזה מבטיח שאפשר לאפס את הרכיב Composable בהצלחה על ידי הטמעה של הקריאה החוזרתonReset
שלAndroidView
, עם תמיכה בהטמעות שלEMBEDDED
ושלEXTERNAL
. (I0d9be) - תוקן דליפת בעלים של מחזור חיים שמתרחשת כשמבטלים את הקישור של תרחישי שימוש מבעלים של מחזור חיים בלי לכבות את ספק המצלמה.
גרסה 1.5.0-beta01
7 במאי 2025
androidx.camera:camera-*:1.5.0-beta01
משוחרר. גרסה 1.5.0-beta01 מכילה את הקומטים האלה.
שינויים ב-API
- כדי להשתמש בפרויקטים שפורסמו עם Kotlin 2.0, צריך KGP 2.0.0 או גרסה חדשה יותר (Idb6b5)
- אפשר להשתמש עכשיו בלחצנים
ContentScale
ו'יישור' בתוך העינית כדי לשנות את גודל המשטח המוצג ולמקם אותו בתוך המאגר שלו, באופן דומה לשימוש בלחצןandroidx.compose.foundation.Image
. (Ibcea3) -
TransformationInfo
כולל עכשיו ערכי ברירת מחדל לכל הארגומנטים. כך אפשר ליצור Viewfinders בליTransformationInfo
, שברירת המחדל שלהם תהיה סיבוב מקור של 0, ללא שיקוף מקור וללא חיתוך מלבני. (I2b1b2) - נוסף
LifecycleCameraProvider
, שהוא ספק מצלמות שאפשר ליצור ממנו מופע עם הגדרות שונות לתכונות כמו גישה למצלמה של מכשיר וירטואלי על ידי הגדרה עם הקשר מותאם אישית. (Ia2992)
תיקוני באגים
- תוקנה בעיה של הקפאת התצוגה המקדימה כשמשתמשים ב-
ImageAnalysis
עם סטרימינג אחר שמשתמש ב-TEMPLATE_RECORD
במכשיר Samsung SM-E556B. (Ic0e62, b/409478042) - תוקנה בעיה של הקפאת התצוגה המקדימה כשמשתמשים ב-
ImageAnalysis
עם סטרימינג אחר שמשתמש ב-TEMPLATE_RECORD
במכשיר Samsung SM-M556B. (Ic1a6a, b/395822788) - תוקנה בעיה במצב הלילה של התוספים
AssertError
במכשירי Pixel עם Android 15 כשמבצעים פעולות שקשורות לשינוי מרחק התצוגה. (I27a5d, b/401460276) - פתרון בעיה שקשורה לקואורדינטות לא נכונות של תיבת התוחמת ב-ML Kit Analyzer כשמשתמשים ב-
CameraController
. (Iae91b, b/409808510)
גרסה 1.5.0-alpha06
26 בפברואר 2025
androidx.camera:camera-*:1.5.0-alpha06
משוחרר. גרסה 1.5.0-alpha06 מכילה את הקומטים האלה.
שינויים ב-API
- נוספו
CameraInfo.getTorchStrengthLevel
,CameraInfo.getMaxTorchStrengthLevel
ו-CameraControl.setTorchStrengthLevel
כדי לאפשר התאמה אישית של בהירות הפנס (I00878) - נוסף API חדש,
CameraController#setTapToFocusAutoCancelDuration
, כדי לאפשר למשתמשים לשלוט בהתנהגות של ביטול אוטומטי של אירועי הקשה למיקודPreviewView
. כברירת מחדל, CameraX מבטל את אירועי הפוקוס אחרי 5 שניות (כלומר, הפוקוס של המצלמה מתאפס), וממשק ה-API הזה מאפשר לשנות את משך הזמן הזה או להשבית את הביטול האוטומטי לגמרי. (Icf59a) - השם של
FLASH_STATE_READY
השתנה ל-NOT_FIRED
, והשמות של הקבועים האחריםFlashState
פשוטים יותר כדי שיהיה קל יותר לקרוא אותם. (I8771d) - Exposed Low Light Boost API. מכשירים עם Android בגרסה 15 ואילך יכולים לספק תמיכה בשיפור התמונה בתנאי תאורה חלשים. התכונה הזו יכולה לכוון אוטומטית את הבהירות של התצוגה המקדימה, של הווידאו או של זרמי הניתוח של התמונות בתנאי תאורה חלשים. אפליקציות יכולות להשתמש ב-API החדש כדי: 1. אפשר להשתמש ב-
CameraInfo#isLowLightBoostSupported
כדי לבדוק את זמינות התכונה. 2. משתמשים ב-CameraControl#enableLowLightBoostAsync
כדי להפעיל את המצב כשהמכשירים תומכים בו. 3. אפשר להשתמש בCameraInfo#getLowLightBoostState
כדי לעקוב אחרי מצב ההגברה בתאורה חלשה. (I937ed) - הוספת מחלקות תאימות כדי לאפשר שאילתות מהירות יותר שאינן camera2 בשאילתת שילוב תכונות המצלמה. (Ie97ee)
- לגבי אירועים של הקשה למיקוד, API חדש
getTapToFocusInfoState()
חושף עכשיו גם את מיקום ההקשה המתאים על ידי החזרתLiveData
של מחלקתTapToFocusInfo
, בעוד ש-API הקודםLiveData<Integer>
שמחזירgetTapToFocusState()
הוצא משימוש לטובת ה-API החדש.CameraController
(I238d2)
תיקוני באגים
- תוקנה הבעיה שבה ייצוב התצוגה המקדימה לא הוחל כשייצוב התצוגה המקדימה הופעל באמצעות תוספים. (I24ad7)
- תוקנה בעיה שבה אירוע של מצב פוקוס
CameraController
לא מתאפס בחזרה ל-TAP_TO_FOCUS_NOT_STARTED
כש-CameraX מבטל אוטומטית אירוע פוקוס שמתרחש אחרי 5 שניות כברירת מחדל. (I31954) - תוקן באג שגרם להקפאת התצוגה המקדימה כשמשתמשים ב-Zero Shutter Lag (ZSL) אחרי כמה צילומים, בגלל משאבי תמונה שלא שוחררו. (Ic3c2a)
- תוקנו בעיות שגרמו לכך שבחלק מהמכשירים, לסרטוני UHD היה גוון אדום כשהצינור כלל
OpenGL
. (Idcedc)
גרסה 1.5.0-alpha05
15 בינואר 2025
androidx.camera:camera-*:1.5.0-alpha05
משוחרר. גרסה 1.5.0-alpha05 מכילה את הקומטים האלה.
שינויים ב-API
- מוסיפים את
VideoCapture.getSelectedQuality()
כדי לדעת מהי האיכות שנבחרה על סמךQualitySelector
. (I70508, b/204288986) - כשמפעילים צילום תמונה באמצעות
ImageCapture.OnImageCapturedCallback
API, אפשר להשתמש ב-ImageInfo ב-ImageProxy
שמוחזר כדי לדעת אם נעשה שימוש בפלאש באמצעותImageInfo.getFlashState()
API החדש. (Id2c61, b/380527406) - נוספה תמיכה בפורמט הפלט
OUTPUT_IMAGE_FORMAT_NV21
עבורImageAnalysis
. (I484ab) - הסרת ההערה הניסיונית של פריט המידע שנוצר בתהליך פיתוח (Artifact)
featurecombinationquery
(I4427f) - התאמה של טווח יחסי הגדלה שמותרים ל-
CameraControl
לפי מאפיינים ספציפיים לתוספים כשמצב התוספים מופעל. (I85af1)
תיקוני באגים
- שודרג ל-
compileSdk
כ-35 לשימוש ב-API שקשור ל-Android 15. אפליקציות שמשתמשות בספריות CameraX יצטרכו גם לשדרג את הגדרת התצורהcompileSdk
שלהן. (Ic80cd) - הספרייה הזו משתמשת עכשיו בהערות לגבי ערכי null של JSpecify, שהן הערות לשימוש בסוג. מפתחים ב-Kotlin צריכים להשתמש בארגומנט המהדר הבא כדי לאכוף שימוש נכון:
-Xjspecify-annotations=strict
(זו ברירת המחדל החל מגרסה 2.1.0 של מהדר Kotlin). (Idc6c6, b/326456246)
גרסה 1.5.0-alpha04
11 בדצמבר 2024
androidx.camera:camera-*:1.5.0-alpha04
משוחרר. גרסה 1.5.0-alpha04 מכילה את הקומטים האלה.
שינויים ב-API
- חשפנו את
ImageCapture.Builder#setOutputFormat
ואתImageCaptureCapabilities#getSupportedOutputFormats
כממשקי API יציבים (Ieb04a) - מוסיפים
VideoCapture.getResolutionInfo()
כדי לקבל את פרטי הרזולוציה כש-VideoCapture
מאוגד למחזור חיים. (Icb478) - נחשפו
PreviewView.getScreenFlash
ו-PreviewView.setScreenFlashOverlayColor
כממשקי API יציבים. (I74fee)
תיקוני באגים
- תוקנה בעיה שגרמה לכשל בצילום במכשיר Vivo 1610 בזמן צילום תמונה עם פלאש בחושך. (I366f4)
- תוקנה בעיה שגרמה להשבתה בלתי צפויה של הפנס אחרי צילום תמונה ב-Redmi Note 6 Pro. (I2e0e8, b/377144569)
- תוקנה בעיה במכשירי Pixel עם Android 15 שבה מצב הלילה בתוספים לא הצליח לצלם תמונות סטילס עד שהמצלמה התמקדה באובייקט קרוב. (I228d4)
- תוקנה הבעיה שגרמה לתקלה בצילום תמונות סטילס כשתוספים מופעלים והמקשים
VideoCapture
קשורים זה לזה. (I5c745) - ההגדרה Enabled
UltraHDR
תפעיל תמיכה בתוספים לצילום תמונות סטילס, אם המכשיר תומך בכך. (I48300) - תוקנה בעיה בתזמון של Flash בצילום תמונות בטירגוט של
CameraEffect
במכשירי TCL. (I7698c)
גרסה 1.5.0-alpha03
30 באוקטובר 2024
androidx.camera:camera-*:1.5.0-alpha03
משוחרר. גרסה 1.5.0-alpha03 מכילה את הקומטים האלה.
שינויים ב-API
- הוספת ממשקי API של פורמט פלט ל-RAW ול-RAW + JPEG
ImageCapture
, בדיקת יכולות המכשיר מוצגת ב-ImageCaptureCapabilities#getSupportedOutputFormats
. הלחצןOUTPUT_FORMAT_RAW
משמש לצילום תמונה בפורמט RAW, שהוא פורמט DNG של Adobe, והלחצןOUTPUT_FORMAT_RAW_JPEG
משמש לצילום תמונות בפורמטים RAW ו-JPEG בו-זמנית. ה-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.
זוהי גרסה תואמת של
CameraManager#getCameraDeviceSetup#isSessionConfigurationSupported
API של camera2 עם נתונים נוספים שמסופקים על ידי Google Play Services.
תיקוני באגים
- תוקנה בעיה בקצב הפריימים היעד
Preview/VideoCapture
במכשירים ברמת LEGACY. קצב הפריימים של היעד שהוגדר באמצעות APIsetTargetFrameRate
אוCamera2Interop
תמיד נדרס לערך שסופק על ידיAeFpsRangeLegacyQuirk
. בעקבות התיקון הזה, ספריית CameraX תפעל בהתאם לערך שמוגדר באמצעות APIsetTargetFrameRate
אוCamera2Interop
. (Ie2d32) - הוספנו פונקציות של פלאש, פנס ו-3A לצילום תמונות באמצעות
CameraEffect
. התמונות שצולמו באמצעותCameraEffect
צריכות לעבור עכשיו את אותם תהליכי עיבוד לפני הצילום ואחרי הצילום (למשל הפעלת פלאש, התכנסות של 3A וכו' כשזה רלוונטי) כמו תמונות שצולמו בליCameraEffect
. (I5ff30) - גודלי פלט בעייתיים שהוחרגו עבור
ImageAnalysis
במכשיר Samsung SM-A057G. כשמשתמשים ברזולוציה של 1920x1440 או יותר, יכולה להופיע בעיה בתצוגה המקדימה של המסך השחור.ImageAnalysis
החלנו אתExcludedSupportedSizesQuirk
במכשיר SM-A057G כדי למנוע את הבעיה. (I63dfe, b/365877975) - תוקנה בעיה שקשורה לקצב הפריימים של היעד
Preview/VideoCapture
כשהמנגנון של שיתוף המסך מופעל באופן פנימי כדי לשתף מסך ב-Preview
וב-VideoCapture
. (I4fdac) - הפעלנו את הפתרון העקיף לתיקון הבעיה של מטא-נתונים שגויים בתמונות JPEG במכשירי Samsung S10e ו-S10+. בעקבות התיקון, אפשר לשמור תמונת JPEG באמצעות CameraX, או להחזיר אובייקטים של Bitmap תקינים כשקוראים לפונקציה
ImageProxy.toBitmap()
במכשירים האלה, אם מתרחשת בעיה במטא-נתונים של תמונת JPEG. (Iae493, b/356428987) - הושבתו תוספים למצלמה האחורית של Samsung A52s שמזהה שלה הוא 0, כי יכול להיות שיהיו קריסות מקומיות כשמצלמים תמונות HDR, והגדרת סשנים של צילום עלולה להיכשל במצבים BOKEH או FACE_RETOUCH. (I03ec9, b/364152642)
- תוקנה הבעיה שבה האירוע
VideoRecordEvent.Finalize.ERROR_INSUFFICIENT_STORAGE
לא מופעל כשמקליטים סרטון ואין מספיק נפח אחסון פנוי. (Ia5b4f, b/356399842) - תוקנה בעיה שבה ניסיון שני להקלטת סרטון נכשל ב-Oppo A5 (CPH1931). (I181d6)
גרסה 1.5.0-alpha01
4 בספטמבר 2024
androidx.camera:camera-*:1.5.0-alpha01
משוחרר. גרסה 1.5.0-alpha01 מכילה את הקומטים האלה.
תכונות חדשות
- נוצר ארטיפקט חדש,
camera-compose
, עבור CameraX Viewfinder Compose Adapter, שמציג זרם תצוגה מקדימה מ-CameraXSurfaceRequest
מ-camera-core
. (I8666e) - נוספה פונקציה חדשה הניתנת להגדרה,
CameraXViewfinder
, שפועלת כפונקציה הניתנת להגדרה שמתאימה את רכיביSurfaceRequest
של CameraX לרכיבViewfinder
. (I4770f)
שינויים ב-API
- מספקים API להגדרת הגדרות קומפוזיציה לצילום וידאו במצלמה כפולה בו-זמנית. ההגדרות כוללות ערך אלפא למיזוג, היסט בקואורדינטות x ו-y, וקנה מידה של הרוחב והגובה של חלון התצוגה של מסגרת המצלמה. ההיסט, הרוחב והגובה מצוינים בקואורדינטות מנורמלות של המכשיר. (Ia2b8a)
- הוספנו את
CameraProvider.getCameraInfo
כדי שיהיה API רשמי. (I901cd) - נוסף API
PendingRecording.withAudioEnabled(boolean initialMuted)
לשליטה במצב ההשתקה הראשוני. (I635c3, b/354829267)
תיקוני באגים
- תוקנה הקריסה שמתרחשת כשמפעילים את
bindToLifecycle
עםLifecycleOwner
שהושמד. (I6e6d8) - תוקנה בעיה שבה התצוגה המקדימה היא מסך שחור במצלמה הקדמית בזמן קישור עם
VideoCapture
ב-Motorola Edge 20 Fusion. (I1fe88) - בוצעה אופטימיזציה של ההגדרה לזיהוי תנועות זום ב-
PreviewView
כדי לשפר את החלקות. (I04ffc)
גרסה 1.4 של המצלמה
גרסה 1.4.2
26 במרץ 2025
androidx.camera:camera-*:1.4.2
משוחרר. גרסה 1.4.2 מכילה את הקומטים האלה.
תיקוני באגים
- תוקנה הבעיה של הקפאת התצוגה המקדימה כשמשתמשים ב-
ImageAnalysis
עם סטרימינג אחר שמשתמש ב-TEMPLATE_RECORD
ב-Samsung Galaxy M55. (Ic1a6a, b/395822788)
גרסה 1.4.1
11 בדצמבר 2024
androidx.camera:camera-*:1.4.1
משוחרר. גרסה 1.4.1 מכילה את הקומטים האלה.
תיקוני באגים
- תוקנה בעיה במכשירי Pixel עם Android 15 שבה מצב הלילה בתוספים לא הצליח לצלם תמונות סטילס עד שהמצלמה התמקדה באובייקט קרוב. (I228d4)
- תוקנה הבעיה שגרמה לתקלה ב-
ImageCapture#takePicture
כשהתוספים מופעלים ו-VideoCapture
קשורים זה לזה. (I5c745)
גרסה 1.4.0
30 באוקטובר 2024
androidx.camera:camera-*:1.4.0
משוחרר. גרסה 1.4.0 מכילה את הקומטים האלה.
שינויים חשובים מאז גרסה 1.3.0
גרסה CameraX 1.4.0 כוללת עדכונים מרגשים! הנה סיכום:
תכונה מרכזית: HDR באיכות 10 ביט:
- אפשר לצלם בקלות תמונות וסרטונים מדהימים ב-HDR.
- תומך בקידוד HLG ו-HEVC של 10 ביט.
- ליהנות מתצוגה מקדימה של HDR באיכות 10 ביט ולשאול על יכולות המכשיר.
- התכונה פועלת עם תמונות
UltraHDR
וסרטוני HDR במגוון הולך וגדל של מכשירים.
תכונות מגניבות נוספות:
- תוספי Kotlin: נוספו פונקציות ההשהיה
takePicture
ו-awaitInstance
. - אפקטים בזמן אמת: אפשר להוסיף אפקטים כמו סימני מים והדגשה של אובייקטים.
- CameraController API: אמצעי בקרה חדשים להגדרת צילום וידאו.
- ייצוב התצוגה המקדימה: שאילתת יכולת המכשיר והפעלת ייצוב.
- שיפורים ב-VideoCapture: שליטה מדויקת יותר באיכות וגישה לרזולוציות גבוהות יותר.
- שילוב של תוספים ל-CameraX: שילוב חלק עם
VideoCapture
ותכונות חדשות שלImageCapture
. - 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) - שיפור החלקות של הזום על ידי ביטול הגדרות הזום במסגרת במכשירים נתמכים.
גרסה 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 כשבוחרים באפשרות 1920x1080 בקטע
ImageCapture
+VideoCapture
+ImageCapture
UseCase
.Preview
(I5a463, b/336925549) - הייתה בעיה בהקלטה רציפה, וההקלטה לא המשיכה אחרי שהמצלמה הוחלפה. (Icb0a1)
גרסה 1.4.0-beta01
14 במאי 2024
androidx.camera:camera-*:1.4.0-beta01
משוחרר. גרסה 1.4.0-beta01 מכילה את הקומטים האלה.
שינויים ב-API
- נוסף
ZoomGestureDetector.ZoomEvent
כדי להגדיר את המצבים של תנועת זום. (I84cdf)
תיקוני באגים
- תוקן באג שגורם לכך שעדיין לא נעשה שימוש בערכי FPS/מצב ייצוב של בקשה חוזרת בצילום ובמיקוד בלחיצה, מה שעלול ליצור מחדש סשן צילום ולגרום לבעיות של זמן אחזור או להקפאה של התצוגה המקדימה במכשירים מסוימים. (I7dc0b)
- תוקן באג שגרם לכך שלא הייתה אפשרות לבחור רזולוציות גבוהות כש-
CameraEffect
הופעל במכשירים מסוימים. (לדוגמה, 4000x3000 ב-Samsung A32 5G). (Ie3ed3, b/337336152) - תוקן קריסה שהתרחשה כשצילמו תמונה עם תצוגה מקדימה,
ImageCapture
ו-VideoCapture(UHD)
מאוגדים ב-Pixel 4XL API29. (I5b288) - תמיכה במכשירים וירטואליים: ההקשר שמועבר אל
ProcessCameraProvider
ישמור את מזהה המכשיר כדי להבטיח את הפונקציונליות בסביבת מכשיר וירטואלי. (I5ba48)
גרסה 1.4.0-alpha05
17 באפריל 2024
androidx.camera:camera-*:1.4.0-alpha05
משוחרר. גרסה 1.4.0-alpha05 מכילה את הקומטים האלה.
תכונות חדשות
- המרנו את
ProcessCameraProvider
להטמעה ב-Kotlin. (I46d4f) - נוספו
ImageCapture.takePicture
פונקציות השהיה כדי לאפשר קריאה בדרך אופיינית ל-Kotlin. (I920be)
שינויים ב-API
- הוספת ממשקי API של פורמט פלט ל-
ImageCapture
, והוספת שיטתgetSupportedOutputFormats
ל-ImageCaptureCapabilities
לשאילתות לגבי יכולות המכשיר. ערך ברירת המחדל של פורמט הפלט הואOUTPUT_FORMAT_JPEG
, שמשמעותו צילום תמונות SDR בפורמט JPEG. אם המכשיר תומך ב-Ultra HDR ופורמט הפלט מוגדר ל-OUTPUT_FORMAT_JPEG_ULTRA_HDR
, CameraX מצלם תמונות דחוסות ב-Ultra HDR באמצעות פורמט התמונה JPEG/R. הפורמט תואם לאחור לפורמט SDR JPEG ותומך בהצגת תוכן ב-HDR. כלומר, באפליקציות או במכשירים ישנים יותר, התמונות יופיעו בצורה חלקה כ-JPEG רגיל. באפליקציות ובמכשירים שעודכנו כך שיתמכו בפורמט באופן מלא, התמונות יופיעו כ-HDR. (I5de50) - הוספת
PhysicalCameraInfo
ב-CameraInfo
כדי לשאול על פרטי מצלמה פיזית והוספת setter/getter של מזהה מצלמה פיזית ב-CameraSelector
(Ic5b90) - מחליפים את
CameraController#COORDINATE_SYSTEM_VIEW_REFERENCED
ב-ImageAnalysis#COORDINATE_SYSTEM_VIEW_REFERENCED
. הערך של הקבוע נשאר זהה. הפעולה הזו מאפשרת לאחד את כל הקבועים במקום אחד. (I890bb) - ממשק
RetryPolicy
API חדש מאפשר למפתחים להתאים אישית את התנהגות הניסיונות החוזרים לאתחול של CameraX. (I36dd2) - הפעלת יצירה של אובייקט
ImageCaptureLatencyEstimate
כדי לסייע בבדיקה (Iaba99) - מוסיפים
ImageAnalysis#COORDINATE_SYSTEM_SENSOR
. כשמשתמשים בזה, הפונקציהMlKitAnalyzer
מחזירה קואורדינטות במערכת הקואורדינטות של חיישן המצלמה. (I3ec61) - הוספנו API למטא-נתונים של תוספים. ממשקי
CameraExtensionsInfo
ו-CameraExtensionsControl
חדשים מאפשרים לאפליקציות לעקוב אחרי הגדרות העוצמה של התוסף ולשנות אותן. אפליקציות יכולות לקבל את מופעCameraExtensionsInfo
אוCameraExtensionsControl
באמצעות השיטותExtensionsManager#getCameraExtensionsInfo()
אוExtensionsManager#getCameraExtensionsControl()
שנוספו לאחרונה. (I28e1a) - נוסף
ProcessCameraProvider.awaitInstance
, שהוא גרסה להשעיה שלProcessCameraProvider.getInstance
(Ib22b9) - מוסיפים API של
PreviewView#getSensorToViewTransform()
. המטריצה מייצגת את הטרנספורמציה מקואורדינטות של חיישן המצלמה לקואורדינטות שלPreviewView
. אפשר להשתמש בשיטה הזו כדי להמיר קואורדינטות מUseCase
אחד לאחר. לדוגמה, שינוי הקואורדינטות של אובייקטים שזוהו ב-ImageAnalysis
לכיסויPreviewView
. (I947ab) - הפיכת
camera-viewfinder-core
API לגנרי יותר כדי שאפשר יהיה להשתמש בו ב-camera-viewfinder
וב-camera-viewfinder-compose
. (I1e295) - הוספת פונקציה
getSurface
אלViewfinderSurfaceRequest
. (I781a0) - להשתמש ב-
camera-viewfinder-core
ב-camera-viewfinder
ולהוציא משימוש אתViewfinderSurfaceRequest
ואתCameraViewfinder
. (I6198c) - נוסף
ZoomGestureDetector
שמפרש תנועות של שינוי גודל שהוגדרו במיוחד לפעילות של צביטה להגדלה. (Ifafbf)
תיקוני באגים
- תוקנה הבעיה
ImageAnalysis
'בחירת רזולוציה שקשורה להגדרת ברירת המחדל של הרזולוציה של הכלי לניתוח: רזולוציית היעד נשמרה באופן שגוי כ-640x480 גם אם האפליקציות הגדירו הגדרת ברירת מחדל שונה של הרזולוציה של הכלי לניתוח. אם הבעיה הזו מתרחשת באפליקציות (1.3.0 עד 1.3.2) ואי אפשר לשדרג אותן לגרסאות חדשות יותר שכוללות את הפתרון, אפשר לעקוף את הבעיה על ידי הגדרה ישירה שלResolutionSelector
עם הרזולוציה המועדפת ושלAspectRatioStrategy
תואם ל-ImageAnalysis
UseCase
. (I81f72, b/330091012) - תוקנה בעיה שבה בקשת
takePicture
בתור עלולה להיכשל אם הבקשה הנוכחית נכשלה. (Ie0801) - הוספת בדיקה של נתוני JPEG לא תקינים במכשירי Vivo X60 ו-X60 Pro. הפעולה הזו יכולה לפתור בעיה של תמונות גדולות באופן חריג במכשירים האלה. (I82247, b/288828159)
- תוקנה הבעיה של מטא-נתונים שגויים של תמונות JPEG במכשירי Samsung A24. בעקבות התיקון, אפשר לשמור תמונת JPEG באמצעות CameraX, או להחזיר אובייקטים של 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 מכילה את הקומיטים האלה.
תכונות חדשות
- ארטיפקט חדש: camera-effects: ספרייה להחלת אפקטים בזמן אמת על הפלט של CameraX, כולל
Preview
, VideoCapture
ו/אוImageCapture
. הארטיפקט הזה מכיל הטמעות של OpenGL של ה-APICameraEffect
שמבצע מניפולציה של פלט המצלמה בצורה יעילה. -
OverlayEffect
: לציור שכבות-על באמצעות Canvas API של Android. ההרשאה הזו מאפשרת לאפליקציה להוסיף סימן מים או להדגיש אובייקטים שזוהו בפלט של המצלמה. -
DynamicRange
ממשקי API לתרחיש השימוש בתצוגה מקדימה: עכשיו אפשר להגדיר את הטווח הדינמי בתרחיש השימוש בתצוגה מקדימה, בנפרד מתרחיש השימוש בסרטון. האפשרות הזו מאפשרת להשתמש בטווחים דינמיים של HDR כמו HLG10 לתצוגה מקדימה בלבד. בנוסף, יש ממשקי API חדשים ב-CameraInfo
שאפשר להשתמש בהם כדי לברר אילו טווחי תאורה דינמיים נתמכים בכל מצלמה.
שינויים ב-API
- השם של
ScreenFlashUiCompleter
השתנה ל-ScreenFlashListener
והפרמטרScreenFlashUiCompleter#getExpirationTimeMillis
הועבר לפרמטרexpirationTimeMillis
שלScreenFlash#apply
. (I13944) - נוספו ממשקי API חדשים כדי לאפשר הגדרה של טווח דינמי בתרחיש שימוש של תצוגה מקדימה, וכדי לשלוח שאילתה לגבי טווחים דינמיים שנתמכים על ידי כל מצלמה. כך אפשר להשתמש בטווחים דינמיים של HDR, כמו HLG10, רק בתרחיש השימוש של תצוגה מקדימה, ולא צריך יותר לקשור
VideoCapture
בו-זמנית. (If25e3) - השם של
getMirroring()
שונה ל-isMirroring()
(I47063) - נוספה תמיכה בהערכת זמן האחזור של צילום תמונות סטילס בזמן אמת ב-CameraX. תוספים למצלמה מאפשרים לאפליקציות להשתמש ב-API שמספק הערכה לגבי משך הצילום. ההערכה מתבססת על תנאי הסביבה הנוכחיים, על מצב המצלמה וכוללת את הזמן שנדרש לעיבוד בקשות לצילום של כמה פריימים, וגם את הזמן הנוסף שנדרש לקידוד של מאגרי נתונים שעברו עיבוד, אם יש צורך בכך. (I05c3a)
- שם השיטה
ScreenFlashUiControl
שונה ל-ScreenFlash
, שם השיטהScreenFlashUiControl#applyScreenFlashUi
שונה ל-ScreenFlash#apply
, שם השיטהScreenFlashUiControl#clearScreenFlashUi
שונה ל-ScreenFlash#clear
, והשיטהgetScreenFlashUiApplyTimeoutSeconds
נוספה במקום חשיפה ישירה שלSCREEN_FLASH_UI_APPLY_TIMEOUT_SECONDS
. (Iccdd0)
תיקוני באגים
- תוקנה דליפת זיכרון שגורמת לכך שפעילויות או קטעים לא משוחררים כשהתוספים מופעלים (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 בצד המסגרת ויסנכרן את התזמון עם שינויים בממשק המשתמש של האפליקציה לפי הצורך (למשל, הפעלת 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) - הוספת
ImageAnalysis
output format getter/setter ל-CameraController
. (I9a96c, b/308240643)
תיקוני באגים
- מתוך מצלמה
1.3.1
: שיפור הביצועים שלProcessCameraProvider#bindToLifecycle()
. השינוי העיקרי הוא אופטימיזציה של התהליך לזיהוי השילובים המתאימים ביותר של גדלים ל-UseCases
. התוצאות האופטימליות משתנות בהתאם לשילוביUseCase
הספציפיים ולמספר גדלי הפלט הנתמכים במכשירי היעד. (I454f2) - התרת השימוש ב-
VideoCapture
כשהתוספים מופעלים. (I91f32) - תוקנה בעיה שקשורה לתמונות JPEG גדולות שצולמו במכשירי סדרות Samsung A71 ו-M51. תמונות ה-JPEG שצולמו מכילות נתוני ריפוד מיותרים של 0 בקטע הנתונים הדחוסים של JFIF. היא גורמת לגודל קובץ קיצוני של התמונות שצולמו. נתוני הריפוד המיותרים של האפסים יוסרו כדי שהתמונות שצולמו יהיו בגודל קובץ תמונה רגיל. (I01afc, b/288828159)
- כדי להימנע מהבאג ב-Pixel שמחזיר בטעות את הגדלים הלא ריקים שנתמכים ב-
ImageAnalysis
, צריך להשבית את התמיכה ב-ImageAnalysis
במכשירי Pixel. (I7ec31) - תוקנה בעיית ביצועים שבה העומס על המעבד וצריכת החשמל גדלו כשהתוספים הופעלו. (Ibdccb)
- הוספנו את Snapdragon 480 אל
CameraUseInconsistentTimebaseQuirk
. העדכון הזה פותר בעיה ב-Android 12 במכשירים שמשתמשים בערכת השבבים הזו, שבה האודיו בהקלטות מוסט בפרק הזמן שבו המכשיר נמצא במצב השהיה. (I58010)
גרסה 1.4.0-alpha02
18 באוקטובר 2023
androidx.camera:camera-*:1.4.0-alpha02
משוחרר. גרסה 1.4.0-alpha02 מכילה את הקומיטים האלה.
שינויים ב-API
- משנים את שם ה-API ל-
setCameraOpenRetryMaxTimeoutInMillisWhileResuming
ומשנים את שם הארגומנט. (I72370) - הוספת ממשקי API לשאילתת יכולת המכשיר ולהפעלת ייצוב של סרטונים או תצוגות מקדימות. (I87544)
- הוספת API להתאמה אישית של הזמן הקצוב לתפוגה המקסימלי לניסיון חוזר לפתיחת המצלמה. (I0c642)
- השקנו את
ProcessCameraProvider.shutdownAsync
כ-API ציבורי לבדיקות, כדי לאפשר שימוש בספק המצלמה בתהליכי בדיקה שבהם יכול להיות שיהיה צורך לאתחל את CameraX בדרכים שונות בין הבדיקות. (I9eca7) - הוספת ממשקי API להגדרת הטווח הדינמי, קצב הפריימים ומצב המראה של צילום הווידאו. (Ifb8f7)
- הוצאה משימוש של
OutputSize
והחלפתו ב-ResolutionSelector
. ResolutionSelector
היא דרך מקיפה יותר לבחירת רזולוציות, והיא עקבית עם Camera Core API. (I93abd, b/286801438)
תיקוני באגים
- תוקנה בעיה בתצוגה המקדימה השחורה ב-Samsung Galaxy S23 Ultra 5G כשמפעילים את התוספים 'בוקה' או 'ריטוש פנים' עם
ImageAnalysis
במצלמה האחורית. (I2e8b1) - תוקנו בעיות בתצוגה המקדימה וב-
VideoCapture
במכשיר Moto E5 Play. (73dce2)
גרסה 1.4.0-alpha01
20 בספטמבר 2023
androidx.camera:camera-*:1.4.0-alpha01
משוחרר. גרסה 1.4.0-alpha01 מכילה את הקומיטים האלה.
שינויים ב-API
- הוספת API חדש לגישה למידע על עוצמת האודיו במהלך ההקלטה. (Id4925)
תיקוני באגים
- כדי לשפר את היציבות של התוספים, צריך לוודא שהאירועים של ההפעלה וההשבתה מופעלים בסדר הנכון. (Ib3b8e)
- תוקנה שגיאה בהגדרת סשן הצילום שנגרמה בגלל חריגה משילוב המשטחים הנתמך, בעקבות הוספה פנימית של משטח חוזר נוסף. (Id718c)
- תוקנה בעיה שקשורה לתמונות JPEG גדולות שצולמו במכשיר Vivo S16. תמונות ה-JPEG שצולמו מכילות נתוני ריפוד מיותרים של 0 בקטע הנתונים הדחוסים של JFIF. היא גורמת לכך שגודל הקובץ של התמונות שצולמו יהיה גדול. נתוני הריפוד המיותרים של האפסים יוסרו כדי שהתמונות שצולמו יהיו בגודל קובץ תמונה רגיל. (I79505, b/299069235)
- תוקנה הבעיה שבה אי אפשר לקשור את
ImageAnalysis
יחד עםImageCapture
ותצוגה מקדימה כשחלק ממצבי התוסף מופעלים במכשירים מסוימים. התיקון יחזיר ערך נכון כשאפליקציות יבצעו שאילתה לגבי הזמינות שלImageAnalysis
באמצעותExtensionsManager#isImageAnalysisSupported()
. (I7d538) - צריך לעדכן את JavaDoc כך שיתאים להתנהגות. במקום להשלים מיד, הפקודות
#setZoomRatio
,#setLinearZoom
ו-#enableTorch
מחכות עד שהמצלמה מוכנה. בנוסף, הוספנו מידע על קבלת שדה הראייה המקסימלי באמצעות#takePicture
API. (I23588)
גרסה 1.3
גרסה 1.3.4
12 ביוני 2024
androidx.camera:camera-*:1.3.4
משוחרר. גרסה 1.3.4 מכילה את הקומטים האלה.
תיקוני באגים
- תוקנה הבעיה שבה
getZoomRatio
החזיר ערך מופחת באופן שגוי כשמחילים יחס זום הולך וגדל. (I4aa0d, b/317543616) - תוקנה בעיה שבה צילום תמונות סטילס או הקשה למיקוד לא השתמשו בערכי FPS של בקשה חוזרת או במצב ייצוב, מה שיכול היה ליצור מחדש את סשן הצילום ולגרום לבעיות של זמן אחזור או להקפאה של התצוגה המקדימה במכשירים מסוימים. (I7dc0b)
- תוקנה הבעיה שבה קצב הפריימים מוגדר לערך נמוך יותר כשמבצעים קריאה ל-
setTargetFrameRate
עםFRAME_RATE_RANGE_UNSPECIFIED
. (I78c61)
גרסה 1.3.3
17 באפריל 2024
androidx.camera:camera-*:1.3.3
משוחרר. גרסה 1.3.3 מכילה את הקומטים האלה.
תיקוני באגים
- תוקנה הבעיה
ImageAnalysis
'בחירת רזולוציה שקשורה להגדרת ברירת המחדל של הרזולוציה של הכלי לניתוח: רזולוציית היעד נשמרה באופן שגוי כ-640x480 גם אם האפליקציות הגדירו הגדרת ברירת מחדל שונה של הרזולוציה של הכלי לניתוח. אם נתקלים בבעיה הזו באפליקציות (1.3.0 עד 1.3.2) ואי אפשר לשדרג לגרסאות חדשות יותר שכוללות את הפתרון, אפשר לעקוף את הבעיה על ידי הגדרה ישירה שלResolutionSelector
עם הרזולוציה המועדפת ושלAspectRatioStrategy
תואם ל-ImageAnalysis
UseCase. (I81f72, b/330091012)
גרסה 1.3.2
6 במרץ 2024
androidx.camera:camera-*:1.3.2
משוחרר. גרסה 1.3.2 מכילה את הקומטים האלה.
תיקוני באגים
- תוקנה בעיה במטא-נתונים של JPEG במכשירי Samsung A24. CameraX שומרת עכשיו תמונות בצורה מדויקת, והפונקציה
ImageProxy.toBitmap()
מחזירה אובייקטים נכונים של 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: בערך 430ms עד 60ms
- Samsung Galaxy S23 Ultra: בערך 540 אלפיות השנייה עד 45 אלפיות השנייה
- Samsung A53 5G: בערך 115ms עד 70ms
שלושה
UseCases
:Preview
+ImageCapture
+ImageAnalysis
- Google Pixel 7: בערך 9ms עד 7ms
- Samsung Galaxy S23 Ultra: בערך 6 עד 5 אלפיות השנייה
- Samsung A53 5G: בערך 32ms עד 12ms
הוספנו את Snapdragon 480 אל
CameraUseInconsistentTimebaseQuirk
. העדכון הזה פותר בעיה ב-Android 12 במכשירים שמשתמשים בערכת השבבים הזו, שבה האודיו בהקלטות מוסט בפרק הזמן שבו המכשיר נמצא במצב השהיה. (I58010)
גרסה 1.3.0
18 באוקטובר 2023
androidx.camera:camera-*:1.3.0
משוחרר. גרסה 1.3.0 מכילה את הקומיטים האלה.
שינויים חשובים מאז גרסה 1.2.0
- תכונות של סרטונים, כולל HDR באיכות 10 ביט, חיתוך, שיקוף/ביטול שיקוף, השתקה/ביטול השתקה, הגדרת קצב פריימים ועוד.
- מצלמה כפולה בו-זמנית
- ספריית האפקטים
- בורר הרזולוציה
- בחירה בין מצלמה עם עדשת Ultrawide לבין מצלמה טלסקופית
- מעבר בין מצלמות במהלך הקלטת סרטון (תכונה ניסיונית)
גרסה 1.3.0-rc02
20 בספטמבר 2023
androidx.camera:camera-*:1.3.0-rc02
משוחרר. גרסה 1.3.0-rc02 מכילה את הקומיטים האלה.
תיקוני באגים
- כדי לשפר את היציבות של התוספים, צריך לוודא שהאירועים של ההפעלה וההשבתה מופעלים בסדר הנכון. הבעיה הזו תוקנה, ועכשיו אין יותר בעיות של תצוגה מקדימה שחורה כשעוברים בין מצבי תוספים או בין מצלמות. (Iddaac)
- תוקנה הבעיה שבה אי אפשר לקשור את
ImageAnalysis
יחד עםImageCapture
ותצוגה מקדימה כשחלק ממצבי התוסף מופעלים במכשירים מסוימים. התיקון יחזיר ערך נכון כשאפליקציות יבצעו שאילתה לגבי הזמינות שלImageAnalysis
באמצעותExtensionsManager#isImageAnalysisSupported()
. (I7d538) - תוקנה הבעיה שבה האודיו והווידאו של הסרטון המוקלט לא היו מסונכרנים כשמצב שיקוף הופעל ב-Xiaomi Poco X3 NFC. (I20b4c)
גרסה 1.3.0-rc01
23 באוגוסט 2023
androidx.camera:camera-*:1.3.0-rc01
משוחרר. גרסה 1.3.0-rc01 כוללת את הקומיטים האלה.
שינויים ב-API
- הוספנו את
PendingRecording.asPersistentRecording
כדי לאפשר הקלטה רציפה בזמן ש-VideoCapture
שאליו מצורף מכשיר ההקלטה מוגדר מחדש. (I517c6)
תיקוני באגים
- תוקנה קריסה שקורית כשמשתפים סטרימינג עם
VideoCapture
ועם תצוגה מקדימה. בנוסף, תוקנה בעיה של מסך שחור במכשירים מדור קודם כשהשיתוף של הסטרימינג מופעל. - תוקנה בעיה שקשורה לתמונות JPEG גדולות שצולמו במכשירי Samsung S7 (SM-G930T, SM-G930V). תמונות ה-JPEG שצולמו מכילות נתוני ריפוד מיותרים של 0 בקטע הנתונים הדחוסים של JFIF. היא גורמת לכך שגודל הקובץ של התמונות שצולמו יהיה גדול. נתוני הריפוד המיותרים של האפסים יוסרו כדי שהתמונות שצולמו יהיו בגודל קובץ תמונה רגיל. (I407b0, b/288828159)
- תוקנה בעיה שקשורה לתמונות JPEG גדולות שצולמו במכשירי סדרת Samsung S22 (SM-S901B, SM-S901B/DS) ו-S22+ (SM-S906B). תמונות ה-JPEG שצולמו מכילות נתוני ריפוד מיותרים של 0 בקטע הנתונים הדחוסים של JFIF. הבעיה גורמת לכך שגודל הקובץ של התמונות שצולמו גדול מאוד, כ-13MB במכשיר S22 SM-S901B/DS. נתוני הריפוד המיותרים של האפסים יוסרו כדי שהתמונות שצולמו יהיו בגודל קובץ תמונה רגיל. (I73be9, b/288828159)
- תוקנה בעיה שקשורה לתמונות JPEG גדולות שצולמו במכשירי סדרות Samsung A5, A52, A70 ו-A72. תמונות ה-JPEG שצולמו מכילות נתוני ריפוד מיותרים של 0 בקטע הנתונים הדחוסים של JFIF. היא גורמת לגודל הקובץ של התמונות שצולמו להיות גדול במיוחד (לדוגמה, כ-32MB או אפילו 96MB). נתוני הריפוד המיותרים של האפסים יוסרו כדי שגודל קובצי התמונות שצולמו יהיה תקין. (I97c4d, b/288828159)
- תוקנה קריסת האפליקציה המקורית כשמצלמים תמונות עם תוספים מופעלים (I698f5)
גרסה 1.3.0-beta02
26 ביולי 2023
androidx.camera:camera-*:1.3.0-beta02
משוחרר. גרסה 1.3.0-beta02 מכילה את הקומיטים האלה.
תיקוני באגים
- שימוש בפנס כפלאש בגרסאות של Pixel 4 ו-Pixel 5 כדי לשפר את איכות הצילום בתנאי תאורה חלשים (I56ff5, b/280221967)
- תוקנה בעיה שקשורה לתמונות JPEG גדולות שצולמו במכשירי Samsung A5 (2017). תמונות ה-JPEG שצולמו מכילות נתוני ריפוד מיותרים של 0 בקטע הנתונים הדחוסים של JFIF. הגודל של קובצי התמונות שנוצרים הוא כ-32MB. נתוני הריפוד המיותרים של האפסים יוסרו כדי שגודל קובצי התמונות שצולמו יהיה תקין. (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
שמאפשר לאפליקציות לקבוע אם אפשר לקשר תרחיש שימוש מסוים לתצוגה מקדימה ול-ImageCapture
כשהתוספים מופעלים.ImageAnalysis
(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
, והשם של פונקציית ה-buildersetHighResolutionEnabledFlag
שונה ל-setAllowedResolutionMode
. (Iae817) -
CameraInfo#getSupportedFrameRateRanges()
מחזירה עכשיוSet
ולאList
כדי לייצג בצורה טובה יותר את העובדה שהטווחים לא מסודרים. (I02f43) - מוסיפים מאזין שגיאות ל-
CameraEffect
כדי לטפל בשגיאות שאי אפשר לשחזר (Ice471) - הוספת בנאי ציבורי ב-
ResolutionInfo
לשיפור יכולת הבדיקה (If6d1c) - הוספנו API
UseCase.snapToSurfaceRotation(int)
כדי להחליף את השימוש ב-setTargetRotationDegrees
והוצאנו משימוש את APIImageAnalysis.setTargetRotationDegrees(int)
,ImageCapture.setTargetRotationDegrees(int)
ו-VideoCapture.setTargetRotationDegrees(int)
. (Ia9010) - נוספו ממשקי API חדשים,
Preview#getTargetFrameRate
ו-Preview.Builder#setTargetFrameRate
, כדי לאפשר הגדרה ואחזור של קצב פריימים לטירגוט לתרחיש השימוש בתצוגה מקדימה (If4f22) - הפעולה
VideoRecordEvent.Finalize
תושלם עכשיו עם קוד השגיאהERROR_RECORDING_GARBAGE_COLLECTED
כשהאובייקטRecording
ייעצר בגלל איסוף נתונים מיותרים. (Iba974)
תיקוני באגים
- תוקנה הבעיה
NullPointerException
כשגדלי הפלט במטמון ב-StreamConfigurationMapCompat
הם null. (Idf124, b/282025204) - תוקנה הבעיה שבה
Preview.setSurfaceProvider(null)
לא מושהית התצוגה המקדימה בתוספים (Ia903e) - תוקנה בעיה שבה
ConcurrentModificationException
מופעל במהלך פתיחת המצלמה כש-VideoCapture
מאוגד. (Ic8ac4)
גרסה 1.3.0-alpha06
19 באפריל 2023
androidx.camera:camera-*:1.3.0-alpha06
משוחרר. גרסה 1.3.0-alpha06 מכילה את הקומיטים האלה.
תכונות חדשות
- מצלמה בו-זמנית היא תכונה חדשה שהוצגה ב-Android 11, והיא תומכת בהזרמה בו-זמנית של מכשירי מצלמה. לדוגמה, היא מאפשרת למכשיר להפעיל את המצלמה הקדמית והאחורית בו-זמנית. נכון לעכשיו, CameraX תומך רק במצלמות כפולות שפועלות בו-זמנית, ומאפשר להפעיל שתי מצלמות בו-זמנית, עם שני {@link UseCase}s לכל היותר שמשויכים לכל אחת מהן. הרזולוציה המקסימלית היא 720p או 1440p. פרטים נוספים זמינים בקישור הבא: CameraManager#getConcurrentCameraIds()
- אנחנו משיקים את
ResolutionSelector
API חדש, שכולל את התכונות הבאות:- אפליקציות יכולות לציין יחס גובה-רוחב ואסטרטגיות רזולוציה כדי לבחור את הרזולוציה הכי טובה לצרכים שלהן.
- כל הפרמטרים של הגודל ויחס הגובה-רוחב מבוטאים בקואורדינטות של חיישן מכשיר המצלמה.
- אפליקציות יכולות להטמיע מסנן רזולוציה מותאם אישית כדי לסדר את הגדלים הנתמכים בסדר הרצוי.
- אפליקציות יכולות גם להפעיל צילום ברזולוציה גבוהה כדי לקבל תמונות ברזולוציה גבוהה יותר. עם זאת, חשוב לזכור ששימוש ברזולוציה גבוהה עלול להאריך את משך הצילום.
- נוספו ממשקי API של
VideoCapture
שיקוף. כברירת מחדל, הסרטונים שמוקלטים באמצעותVideoCapture
לא משתקפים. עם זאת, התצוגה המקדימה של המצלמה מוצגת בהיפוך מראה במצלמה הקדמית כברירת מחדל. ממשקי ה-API של שיקוףVideoCapture
מאפשרים לבצע התאמה לתצוגה המקדימה של המצלמה כשמשתמשים במצלמה הקדמית. יש שלושהMirrorMode
,OFF
,ON
ו-ON_FRONT_ONLY
. כדי להתאים את התמונה לתצוגה המקדימה במצלמה, מומלץ להשתמש ב-ON_FRONT_ONLY
. המשמעות היא שההיפוך לא מופעל במצלמה האחורית, אבל הוא מופעל במצלמה הקדמית.
שינויים ב-API
- נחשף
ResolutionSelector
API חדש. אפליקציות יכולות לציין יחסי גובה-רוחב ואסטרטגיות רזולוציה עם כללי חזרה או מסנן רזולוציה בהתאמה אישית כדי לקבל את התוצאות הרצויות. אפליקציות יכולות לציין דגל כדי להפעיל צילום ברזולוציה גבוהה. כך CameraX תוכל לבחור רזולוציות גבוהות יותר כשמצלמים תמונות או סרטונים. עם זאת, חשוב לזכור ששימוש ברזולוציה גבוהה עלול להאריך את משך הצילום. (Ibed95) - עכשיו אפשר לשלוח שאילתה לגבי טווחי הפריימים לשנייה שנתמכים על ידי אלגוריתם AE באמצעות
CameraInfo#getSupportedFrameRateRanges()
. (Iaa67f) - מאחדים את השמות של כל השיטות לקביעת קצב פריימים לשימוש ב-'FrameRate'. צריך לתקן את השגיאה ב-Javadoc ב-
VideoCapture#getTargetFrameRate()
(I83304) - הוצאנו משימוש את ממשקי ה-API
setTargetAspectRatio
ו-setTargetResolution
מהדור הקודם. במקומו צריך להשתמש ב-API החדשResolutionSelector
. (I542c3) - הוספנו ממשקי API ציבוריים למצלמה כפולה בו-זמנית, כולל
List<List<CameraInfo>> getAvailableConcurrentCameraInfos()
ConcurrentCamera bindToLifecycle(@NonNull ConcurrentCameraConfig concurrentCameraConfig)
boolean isConcurrentCameraModeOn()
andConcurrentCameraConfig
,SingleCameraConfig
andConcurrentCamera
(Iab1c1)
- Make
ImageProcessor.Response#getOutputImage
NonNull (Ib9c60) - הוספנו ממשקי API לשיקוף
VideoCapture
, כוללVideoCapture.Builder.setMirrorMode(int)
ו-VideoCapture.getMirrorMode()
. ממשקי ה-API שימושיים לאפליקציות שבהן הקלטת הווידאו צריכה להיות עקבית עם התנהגות נפוצה של תצוגה מקדימה של מצלמה, כלומר התצוגה המקדימה של המצלמה האחורית לא משתקפת, אבל התצוגה המקדימה של המצלמה הקדמית משתקפת. (I713b6, b/194634656) - הוספת
setTargetFrameRate()
API ב-VideoCapture.Builder
ו-getTargetFramerate()
API ב-VideoCapture
(I109d4) -
SurfaceOutput
extending Closable ו-hide SurfaceOutput.Event
's public constructor. (I60ea8) - נוסף
Recording.mute
כדי להשתיק או לבטל את ההשתקה של הקלטה בתהליך באופן דינמי. ההקלטהRecordingStats
תכיל אתAudioStats.AUDIO_STATE_MUTED
כשההקלטה בתהליך תושבת באופן מפורש. (Ie17fc) - הפרמטר
#setEffects()
לא יכול להיות null. הוספנו#clearEffects()
API לניקוי אפקטים. האפליקציה צריכה לקרוא ל-#clearEffects()
כדי להסיר אפקטים. (I4b4d9) - מוסיפים יצרן שני ל-
ViewfinderSurfaceRequest.Builder
כדי לקבל builder עבור copy constructor (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.Builder.setTargetRotation(int)
, VideoCapture.setTargetRotation(int)
, VideoCapture.setTargetRotationDegrees(int)
ו-VideoCapture.getTargetRotation()
.VideoCapture
ממשקי ה-API האלה שימושיים לאפליקציות שנועלות את כיוון המכשיר. נוספו גםImageCapture.setTargetRotationDegrees(int)
ו-ImageAnalysis.setTargetRotationDegrees(int)
. (Id3ffe, b/205242781) - התרת שימוש ב-
VIDEO_CAPTURE
וב-PREVIEW|VIDEO_CAPTURE
כיעדי אפקטים. אפקטים שמטרגטים אתVIDEO_CAPTURE
יוחלו עלVideoCapture
UseCase; אפקטים שמטרגטים אתPREVIEW|VIDEO_CAPTURE
יוחלו על סטרימינג משותף לפני ההעתקה לתצוגה מקדימה ולסטרימינג שלVideoCapture
. (Iee6f3)
תיקוני באגים
- מתוך Camera
1.2.2
: תוקנה הבעיה שבה CameraX Extensions לא פועל כמו שצריך כש-proguard מופעל במכשירים מסוימים כמו Pixel (I90aa2) - תוקן באג
PreviewView
שגרם לעיוות של התצוגה המקדימה בסיבוב המסך אם האפליקציה טיפלה בסיבוב המסך בעצמה. הבעיה הזו מתרחשת רק במכשירים מסוימים. אפשר לשחזר את הבעיה ב-Pixel a4, ב-Pixel 5 וב-Pixel 6a. (I14340, b/223488673)
גרסה 1.3.0-alpha04
22 בפברואר 2023
androidx.camera:camera-*:1.3.0-alpha04
משוחרר. גרסה 1.3.0-alpha04 מכילה את הקומיטים האלה.
תכונות חדשות
תכונה חדשה לתמיכה בשילובים של Surface שלא נתמכו בעבר, על ידי שיתוף של זרם אחד עם מספר תרחישי שימוש.
- בעבר, כשביצעתם binding של Preview, VideoCapture ו-ImageAnalysis ברמה FULL ומטה של חומרת המצלמה, או binding של Preview, VideoCapture ו-ImageCapture ברמה LEGACY של החומרה, CameraX השליך
IllegalArgumentException
. - ההתנהגות החדשה היא שהקישורים יפעלו בלי להציג חריגים. במקום זאת, CameraX משתמשת ב-OpenGL כדי להעתיק סטרימינג משותף גם לתצוגה המקדימה וגם ל-VideoCapture.
- כתוצאה מהעלות של העותק הזמני, יכול להיות שתהיה עלייה בשהייה (latency) ובצריכת החשמל של האפליקציה.
שינויים ב-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
להגדרת Target Video Encoding (קידוד וידאו לטירגוט)BitRate
ו-Recorder#getTargetVideoEncodingBitRate
לקבלת Target Video Encoding BitRate (קצב העברת נתונים של קידוד וידאו לטירגוט). (I5984d)
תיקוני באגים
- תוקן באג שגרם לכך שהפעלת המצלמה נכשלה
ImageCapture
כשאין יחידת פלאש ומצב הפלאש מופעל. (I9e8b4, b/263391112) - תוקנה בעיה של פגיעה בתמונות JPEG אם נתוני מיקום של Exif נכתבים בחלק ממכשירי Samsung Android 12. (Ib7086, b/263747161, b/263289024)
- כשמגדירים פנס או זום לפני שהאתחול של המצלמה מסתיים, למשל כשמפעילים את הפונקציה
CameraController#enableTorch
, הפעולה שממתינה נשמרת במטמון ונשלחת אחרי שהאתחול מסתיים. (I11e92, b/264157663)
גרסה 1.3.0-alpha02
7 בדצמבר 2022
androidx.camera:camera-*:1.3.0-alpha02
משוחרר. גרסה 1.3.0-alpha02 מכילה את הקומיטים האלה.
שינויים ב-API
- הוספת API חדש להחלת אפקט של עיבוד שלאחר ההמרה על פלט התצוגה המקדימה. (Ic17d5)
- השם של
OutputOptions.getDurationLimit
שונה ל-OutputOptions.getDurationLimitMillis
ושלOutputOptions.setDurationLimit
ל-OutputOptions.setDurationLimitMillis
. (I91f0c) - הוספת מחלקה
AudioConfig
לטיפול בהגדרה שקשורה לאודיו בזמן הקלטת סרטון. ההערה@RequiresPermission
מועברת מפונקציותstartRecording
אלAudioConfig
כדי למנוע בקשות מיותרות להרשאות במקרים שבהם לא נדרש אודיו. (I28755) - הסרת המחלקות Metadata,
OnVideoSavedCallback
, OutputFileOptions
ו-OutputFileResults
שלא נעשה בהן יותר שימוש אחרי החלת ה-API החדש של צילום סרטונים. (I38cd8) - החלת ממשק ה-API החדש לצילום וידאו. השיטות
getVideoCaptureTargetSize
ו-setVideoCaptureTargetSize
מוחלפות בשיטותgetVideoCaptureTargetQuality
ו-setVideoCaptureTargetQuality
בהתאמה, כי אין יותר תמיכה ב-setTargetResolution
. (I2a1d5)
תיקוני באגים
- מסירים את ה-API
core.VideoCapture
שהוצא משימוש. (I531e0) - תוקנה הבעיה שפונקציית ה-callback
onError
לא נקראת כשמצלמים תמונות בלי הרשאת גישה לאחסון.(I936db, b/244807669) - שיפור האיכות והאמינות של תוספי המצלמה. התוספים למצלמה מושבתים במכשירי Motorola שמותקנת בהם גרסה 1.1.0 ומטה של התוספים למצלמה, בגלל בעיות בתמיכה בבוקה, בצילום תמונות ובחזרה לתצוגה המקדימה. (Id3ce3)
- תוקנה קריסה של מודעה מותאמת כשחיתוך סרטונים באמצעות
ViewPort
מופעל במכשירים מדור קודם. (I16b8a, b/251357665)
גרסה 1.3.0-alpha01
9 בנובמבר 2022
androidx.camera:camera-*:1.3.0-alpha01
משוחרר. גרסה 1.3.0-alpha01 מכילה את הקומיטים האלה.
תכונות חדשות
Camera-viewfinder
פורסם באופן רשמי. Camera-viewfinder
מספק ווידג'ט בסיסי של עינית שיכול להציג את הפיד של המצלמה עבור Camera2. אפשר לראות דוגמה בקוד לדוגמה.
שינויים ב-API
- נוספה האפשרות
OutputOptions.setDurationLimit
להגדרת מגבלת אורך הסרטון. ההקלטה תסתיים אוטומטית אם היא תעבור את מגבלת משך הזמן שנקבעה. (I902a0) - נוסף מצב שגיאה באודיו של הקלטת וידאו
AudioStats.AUDIO_STATE_SOURCE_ERROR
. האירוע נשלח אם הגדרת מקור האודיו נכשלת או אם מתרחשת שגיאה כלשהי. (I37410)
תיקוני באגים
- הוספת 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 מכילה את הקומיטים האלה.
תיקוני באגים
- תוקנה הבעיה שבה CameraX Extensions לא פועל כמו שצריך כש-proguard מופעל במכשירים מסוימים כמו Pixel (I90aa2)
גרסה 1.2.1
25 בינואר 2023
androidx.camera:camera-*:1.2.1
משוחרר. גרסה 1.2.1 מכילה את הקומיטים האלה.
תיקוני באגים
- תיקון בעיה של קובץ JPEG פגום אם נתוני מיקום Exif נכתבים בחלק ממכשירי Samsung עם Android 12. (b/263289024)
גרסה 1.2.0
7 בדצמבר 2022
androidx.camera:camera-*:1.2.0
משוחרר. גרסה 1.2.0 מכילה את הקומיטים האלה.
שינויים חשובים מאז גרסה 1.1.0
- ספרייה חדשה camera-mlkit-vision. קל לשלב את CameraX עם הרבה תכונות של MLKit, כולל סריקת ברקודים, זיהוי פנים, זיהוי טקסט ועוד. הוספנו את
MLKitAnalyzer
כממשקי API חדשים. - ממשק API ניסיוני חדש של Zero-Shutter Lag (זמן השהיה בין לחיצה לצילום). אופטימיזציה של צינור העיבוד של התמונות כדי להקטין את זמן האחזור, תוך שמירה על איכות תמונה טובה. כשמצב הצילום מוגדר ל-
CAPTURE_MODE_ZERO_SHUTTER_LAG
, זמן האחזור בין הלחיצה על לחצן הצמצם לבין צילום התמונה צפוי להיות מינימלי, בהשוואה למצבי צילום אחרים. במכשירים שלא תומכים ב-ZERO_SHUTTER_LAG
, המערכת תחזור ל-CAPTURE_MODE_MINIMIZE_LATENCY
. - הוצאה משימוש של
android.camera.core.VideoCapture
. - הוספנו את
setStreamUseCase()
כ-API ציבורי שלCamera2Interop
. - הוספנו דרישה לרמת API
setOutputImageRotationEnabled
. - השם של
ImageAnalysis.Analyzer#getTargetResolutionOverride()
שונה ל-ImageAnalysis.Analyzer#getDefaultTargetResolution()
. - הוספנו API להגדרת מטא-נתונים של מיקום בסרטון השמור.
- תוקנה בעיה של קצב פריימים נמוך כשמשתמשים ב-
VideoCapture
ובתרחישי שימוש בתצוגה מקדימה עם יחס גובה-רוחב של 16:9 - תוקנה בעיית התצוגה המקדימה השחורה שמתרחשת כשתוסף ה-BOKEH מופעל בחלק ממכשירי סמסונג והמשתמש מחליף בין המצלמות.
- תוקנה בעיה של מתיחה ב-Samsung J7 Prime (SM-G610M) וב-J7 (SM-J710MN)
Preview/VideoCapture
במכשירים ברמת API 27. - השבתנו את הפתרון העקיף לשינוי אופקי של אזור המיקוד האוטומטי במצלמות הקדמיות ב-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)
תיקוני באגים
- השבתנו את הפתרון העקיף לשיקוף אופקי של אזור המיקוד האוטומטי במצלמות קדמיות ב-Samsung Android T, כי הבעיה נפתרה. (I05f69)
- תוקנה בעיית התצוגה המקדימה השחורה שמתרחשת כשהתוסף
BOKEH
מופעל בחלק ממכשירי Samsung והמשתמש מחליף בין המצלמות. (If6168)
גרסה 1.2.0-beta01
24 באוגוסט 2022
androidx.camera:camera-*:1.2.0-beta01
משוחרר. גרסה 1.2.0-beta01 מכילה את הקומיטים האלה.
תכונות חדשות
- ספרייה חדשה
camera-mlkit-vision
. קל לשלב את CameraX עם הרבה תכונות של MLKit, כולל סריקת ברקוד, זיהוי פנים, זיהוי טקסט ועוד. קוד הדוגמה זמין כאן. - Zero-Shutter Lag API חדש בניסוי. אופטימיזציה של צינור העיבוד של התמונות כדי להקטין את זמן האחזור, תוך שמירה על איכות תמונה טובה. כשמצב הצילום מוגדר ל-CAPTURE_MODE_ZERO_SHUTTER_LAG, מצפים לזמן האחזור בין הלחיצה על לחצן הצילום לבין צילום התמונה להיות מינימלי, בהשוואה למצבי צילום אחרים. במכשירים שלא תומכים ב-ZERO_SHUTTER_LAG, המערכת תחזור ל-CAPTURE_MODE_MINIMIZE_LATENCY.
- הפכנו את
ImageAnalysis.Analyzer
ו-MLKitAnalyzer
לממשקי API רשמיים. - ממשק API שמאפשר להגדיר מטא-נתונים של מיקום בסרטון השמור.
- שינוי השם של
ImageAnalysis.Analyzer#getTargetResolutionOverride()
לImageAnalysis.Analyzer#getDefaultTargetResolution()
.
תיקוני באגים
- תוקנה בעיה בצילום תמונות במכשיר Alps k61v1_basic_ref. מטא-נתוני Exif שגויים בתמונות JPEG שצולמו מ-HAL. במטא-נתונים של Exif אין את התג 0xffd9 או 0xffda, ולכן
ExifInterface
לא יכול לנתח את המאפיינים בצורה נכונה. כדי לעקוף את הבעיה הזו, אפשר לצלם את התמונות בפורמט YUV ואז לדחוס אותן לתמונות פלט בפורמט JPEG. (I45abb)
גרסה 1.2.0-alpha04
27 ביולי 2022
androidx.camera:camera-*:1.2.0-alpha04
משוחרר. גרסה 1.2.0-alpha04 מכילה את הקומיטים האלה.
שינויים ב-API
- שינוי השם של
ImageAnalysis.Analyzer#getTargetResolutionOverride()
לImageAnalysis.Analyzer#getDefaultTargetResolution()
. התנהגות המערכת השתנתה גם כך שהערך שמוחזר על ידי השיטה הזו יכול להיות מוחלף על ידי הערך שלImageAnalysis#setTargetResolution()
. (If1d36) - ממשק API שמאפשר להגדיר מטא-נתונים של מיקום בסרטון השמור. אפשר להגדיר אובייקט
android.location.Location
באמצעות API חדשandroidx.camera.video.OutputOptions.Builder.setLocation(Location)
. (I313a0, b/204197544)
תיקוני באגים
- תיקון הבעיה כדי לצלם תמונה עם תצוגה מקדימה לא מאוגדת (Ie70b6, b/235119898)
- תוקנה קריסה ב-
Recorder
בניסיון להקליט כשהמקור של האודיו לא זמין. (I9f652)
גרסה 1.2.0-alpha03
29 ביוני 2022
androidx.camera:camera-*:1.2.0-alpha03
משוחרר. גרסה 1.2.0-alpha03 מכילה את הקומיטים האלה.
שינויים ב-API
- הסרנו את ההערה הניסיונית לגבי
ImageAnalysis.Analyzer
ו-MLKitAnalyzer
. (I0ff22)
תיקוני באגים
- נוסף זמן קצוב לתפוגה של 5,000 אלפיות השנייה למיקוד אוטומטי כברירת מחדל. אם המיקוד האוטומטי לא יבוטל והחלק של המיקוד האוטומטי לא יתכנס במהלך הזמן הזה, המיקוד האוטומטי יושלם עם הערך
isFocusSuccessful
false.FocusMeteringAction
(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()
לאחזור ישיר של מידע על המצלמות הזמינות - פורמט הפלט של
ImageCapture#OnImageCapturedCallback
הוא JPEG כשהתוספים מופעלים. - נוסף ממשק API
isFocusMeteringSupported
ב-CameraInfo
שמאפשר לאפליקציות לבדוק אםFocusMeteringAction
נתמך במצלמה הנוכחית או לא. -
getResolutionInfo
API חשוף כדי לספק את פרטי הרזולוציה לתצוגה מקדימה,ImageCapture
ו-ImageAnalysis
. - נוסף API חדש
ImageCapture.Builder#setJpegQuality
שמאפשר לשנות את איכות הדחיסה של תמונות JPEG שנוצרות כשמצלמים תמונות. - הוספנו את
CameraSelector#filter
ל-API הציבורי כדי לסנן רשימה שלCameraInfos
על סמךCameraSelector
. - נוספה האפשרות
Camera2CameraControl.clearCaptureRequestOptions
לניקוי האפשרויות הקיימות של בקשת הצילום. - הוספנו API ניסיוני לשימוש ב-
CameraController
עם ספריות חיצוניות לעיבוד תמונות, למשל MLKit - נוסף API ניסיוני
CameraInfo#getCameraSelector()
שמחזירCameraSelector
ייחודי למצלמה שלו - קידמנו כמה ממשקי API ניסיוניים לממשקי API ציבוריים רשמיים
- החלפנו את ההערה
@Experimental
בהערה@RequiresOptIn
בממשקי API ניסיוניים. כדי לקרוא ל-APIs ניסיוניים, צריך להשתמש ב-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
שונה ל'הקלטה' כדי לצמצם את השימוש במילים. - החלפת
QualitySelector
creator API ב-API מבוסס-רשימה
תיקוני באגים
- תוקנה בעיה ב-
YuvToJpegProcessor
EOFException
כשהמצב של התוסף מופעל והמצב שלImageCapture#CAPTURE_MODE_MAX_QUALITY
מוגדר. - ההגדרה של קודק קבוע נכשלה כי הקלטת הווידאו נסגרת
- תוקנה בעיה שגרמה ליחס גובה-רוחב מתוח בתצוגה המקדימה או בסרטון בזמן צילום ב-FHD
- תוקנה בעיה שגרמה לאודיו ולסרטון לצאת מסנכרון אחרי השהיה והמשך הפעלה בחלק מהמכשירים
- תוקנה הבעיה שבה הפלאש מופעל במהלך הקשה למיקוד (
startFocusAndMetering
) כשמצב הפלאש הוא אוטומטי או תמיד_פועל בסביבה עם תאורה חלשה.
גרסה 1.1.0-rc02
1 ביוני 2022
androidx.camera:camera-*:1.1.0-rc02
משוחרר. גרסה 1.1.0-rc02 כוללת את הקומיטים האלה.
תיקוני באגים
- תוקן
NullPointerException
בתאריךImageCapture.takePicture()
. (I92366, b/230454568, b/229766155) - תוקן באג שגרם לכך שלא הייתה אפשרות לטפל ב-
AssertionError
כשמתקבלת המאפייןCONTROL_ZOOM_RATIO_RANGE
. (Ia248a, b/231701345)
גרסה 1.1.0-rc01
11 במאי 2022
androidx.camera:camera-*:1.1.0-rc01
משוחרר. גרסה 1.1.0-rc01 כוללת את הקומיטים האלה.
תכונות חדשות
- השקת גרסת RC ראשונה ל-camera-video, ל-camera-view ול-camera-extension
תיקוני באגים
- תוקנה הבעיה שבה קודק הווידאו לא שוחרר כש-
VideoCapture<Recorder>
היה לא מאוגד, ולכן שימושים עוקבים ב-VideoCapture<Recorder>
נכשלו בהקלטה באמצעותMediaCodec.CodecException
, במיוחד במכשירים עם API 21-22. (Ie7f68) - תיקון של תמונות שצולמו של
CameraExtensionsActivity
שלא נמחקו ב-ImageCaptureTest
גרסה 1.1.0-beta03
6 באפריל 2022
androidx.camera:camera-*:1.1.0-beta03
משוחרר. גרסה 1.1.0-beta03 מכילה את הקומיטים האלה.
שינויים ב-API
- הגבלנו את הגישה לבונה
CaptureRequestOptions
. (I261b6) - הוספנו API ניסיוני לשימוש ב-
CameraController
עם ספריות חיצוניות לעיבוד תמונות, למשל MLKit (I4ea71)
תיקוני באגים
- תוקנה הבעיה שגרמה לכך שהתצוגה המקדימה הפכה לרוחבית ב-
PreviewView
כשלא הופעלה מחדש פעילות אחרי סיבוב המכשירים במצב מרובה חלונות. (I1ea36, b/223488673) - תוקנה בעיה בריבוי חלונות שגרמה לכך שכשהמיקוד חזר לאפליקציה, המצלמה לא חזרה לפעולה כש-(1) אפליקציה אחרת עם עדיפות גבוהה פתחה מצלמה אחרת (2) המכשיר הוא מכשיר Samsung עם Android 12. (I7e9f2)
- כולל פתרון עקיף למכשירים שקורסים כשבודקים את הזמינות של הפלאש. לא תהיה אפשרות להשתמש בפנס במכשירים האלה. (If26a3, b/216667482)
- תיקון
AbstractMethodError
בעיה שמתרחשת כשאפליקציות משתמשות בתוספים ומפעילות את proguard. (I7cbaf, b/222726805) - השבתה בכוח של מצב בוקה בתוסף במכשיר Motorola razr 5G, שתגרום לבעיה במסך התצוגה המקדימה השחור. (I35d49)
- תוקן באג שגרם לאודיו ולסרטון להיות לא מסונכרנים אחרי השהיה והמשך הפעלה בחלק ממכשירי Samsung עם גרסה קודמת ל-API 29. (I64622, b/202798609, b/202798572)
- תוקנה הבעיה של אודיו/וידאו לא מסונכרנים אחרי השהיה והמשך הפעלה ב-Sony G3125. (I2a1a5, b/202799148)
- תוקנה קריסה שמתרחשת כשהכלי להקלטת מסך נתקל ב
InvalidConfigException
. עם זאת, התיקון הזה מונע רק את קריסת האפליקציה, אבל לא פותר את הסיבה לבעיהInvalidConfigException
. אם עדיין אי אפשר להגדיר אתRecorder
, האפליקציות יקבלו קריאה חוזרת לשגיאה כשההקלטה תתחיל. (I89c29, b/213617227)
External Contribution
- בוצע עדכון של ה-API :compose:ui:ui-test (updateApi) בעקבות העברה של test-coroutines-lib (I3366d)
גרסה 1.1.0-beta02
23 בפברואר 2022
androidx.camera:camera-*:1.1.0-beta02
משוחרר. גרסה 1.1.0-beta02 מכילה את הקומיטים האלה.
שינויים ב-API
- הוספת היכולת לציין מזהה פיזי של מצלמה דרך Camera2Interop. (I5aed8)
תיקוני באגים
- תוקנה הבעיה של תצוגה מקדימה מתוחה ב-Oppo Find N (I7d004)
- תוקנה בעיה ב-Galaxy J7 Prime שגרמה לעיוות בתצוגה המקדימה. (I4c500)
- להשתמש בקצב העברת נתונים תואם כדי למצוא מקודד וידאו. (d969052)
גרסה 1.1.0-beta01
26 בינואר 2022
androidx.camera:camera-*:1.1.0-beta01
משוחרר. גרסה 1.1.0-beta01 מכילה את הקומיטים האלה.
תכונות חדשות
- החל מגרסה 1.1.0-beta01, כל ספריות CameraX יתאימו לאותו מספר גרסה. כך יהיה למפתחים קל יותר לעקוב אחרי הגרסאות, והם יוכלו לצמצם את המורכבות של מטריצת תאימות גדולה של גרסאות.
שינויים ב-API
- נוסף
Camera2CameraControl.clearCaptureRequestOptions
כדי לנקות את האפשרויות הקיימות של בקשת הצילום. (Ifa07d)
תיקוני באגים
- תוקנה הקריסה שהתרחשה בזמן הקלטת סרטון בחלק מהמכשירים עם גרסה קודמת ל-Android O(API 26). (I88fdf, b/212328261)
- תוקנה הבעיה שקשורה לאזור המיקוד האוטומטי (AF) הלא נכון כשמשתמשים ב-
cameraControl#startFocusAndMetering()
במצלמה הקדמית במכשירי Samsung (Ifbf59, b/210548792) - שימוש בפנס כפלאש ב-Pixel 3a/Pixel 3a XL כדי לשפר את המהירות ואת איכות התמונה שצולמה בחושך (Ib12b6, b/211474332)
- האפשרות הזו מאפשרת לאפליקציות להפעיל מחדש את המצלמה כשהשימוש בה מופסק על ידי אפליקציה אחרת עם עדיפות גבוהה יותר במצב מרובה חלונות, והמיקוד חוזר לאפליקציה. שימו לב: יכול להיות שיהיה עיכוב(שנייה אחת עד 10 שניות או יותר) בין שינויים במיקוד לבין פתיחה מחדש של המצלמה, בגלל בעיה במסגרת. (I4d092)
גרסה 1.1.0-alpha12
15 בדצמבר 2021
androidx.camera:camera-*:1.1.0-alpha12
משוחרר. גרסה 1.1.0-alpha12 מכילה את הקומיטים האלה.
שינויים ב-API
- הוסרו הערות מיותרות של
@RequiresApi(21)
מהממשקים או מהמחלקות הפנימיות. (I8e286, b/204917951) - הקבועים של איכות ושל אסטרטגיית ברירת המחדל של
QualitySelector
השתנו ועכשיו הם מיוצגים על ידי אובייקטים של מחלקה. לדוגמה, הערךQualitySelector.QUALITY_HD
משתנה ל-Quality.HD
, והערךQualitySelector.FALLBACK_STRATEGY_LOWER
משתנה למופע שמוחזר על ידיFallbackStrategy.lowerQualityOrHigherThan(Quality)
. ה-API ששימש ליצירתQualitySelector
השתנה ל-API מבוסס-רשימה. ב-API החדשQualitySelector.fromOrderedList(List<Quality>)
תהיה התייחסות לסדר של רשימת איכות הקלט במקום לסדר שנוצר על ידיQualitySelector.Procedure
. הכיתהQualitySelector.Procedure
הוסרה. (I43343) - הפונקציה
PendingRecording.withEventListener()
הוסרה, ועכשיו צריך להעביר את ה-event listener אלPendingRecording.start()
. הדרישה הזו ל-event listener נועדה לעודד טיפול בשגיאות אסינכרוניות שמדווחות באירועVideoRecordEvent.Finalize
. (I1e71d) - השם
ActiveRecording
שונה ל-Recording
כדי לצמצם את כמות המלל. (I77ceb)
תיקוני באגים
- תוקנה הבעיה שגרמה לחשיפת חסר של תמונות שצולמו במצב
FLASH_AUTO
בתנאי תאורה חלשים ב-Pixel 3a וב-Pixel 3a XL (I13f19, b/205373142) - תמיד להשתמש בגודל התצוגה העדכני כדי לקבוע את התצוגה המקדימה
Resolution
. (I4a694) - הוסר סינון של מצלמות שלא כוללות
REQUEST_AVAILABLE_CAPABILITIES_BACKWARD_COMPATIBLE
. מצלמות עםREQUEST_AVAILABLE_CAPABILITIES_BACKWARD_COMPATIBLE
כוללות את קבוצת היכולות המינימלית שכל מכשיר מצלמה תומך בה. מצלמה בליREQUEST_AVAILABLE_CAPABILITIES_BACKWARD_COMPATIBLE
יכולה להיות מצלמה שתומכת בפונקציונליות מיוחדת ולא תומכת בפלט צבע רגיל. לא ניתן להשתמש במצלמהCameraX
לצורךPreview
,ImageCapture
,ImageAnalysis
אוVideoCapture
. לכן, צריך לסנן את המצלמות האלה כדי למנוע שימוש שגוי. (Ib8cda) -
CameraSelector#filter
כבר לא מחזירהIllegalArgumentException
כשקבוצת התוצאות ריקה. (I27804) - מעכשיו נעשה שימוש בהיוריסטיקה חכמה יותר כדי לבחור את הגדרות המקודד על סמך פרופילים שצוינו על ידי יצרן הציוד המקורי. (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 הציבורי כדי לסנן רשימה של CameraInfo על סמך CameraSelector. (I105d0)
הוספנו את API setOutputImageRotationEnabled להגדרת ImageAnalysis. המשתמש יכול להפעיל סיבוב של מאגר תמונות YUV/RGB. זווית הסיבוב היא סיבוב יחסי שמחושב על סמך סיבוב החיישן וסיבוב היעד, כדי שהתמונה תישאר בחזית.
הוספנו את API setOutputImageRotationEnabled להגדרת ImageAnalysis. המשתמש יכול להפעיל סיבוב של מאגר תמונות YUV/RGB. זווית הסיבוב היא סיבוב יחסי שמחושב על סמך סיבוב החיישן וסיבוב היעד, כדי שהתמונה תישאר בחזית.
הוספת
getSensorToBufferTransformMatrix
API ב-ImageInfo. המטריצה שמוחזרת היא מיפוי מקואורדינטות של חיישן לקואורדינטות של מאגר, כלומר מהערך שלCameraCharacteristics.SENSOR_INFO_ACTIVE_ARRAY_SIZE
לערך של(0, 0, image.getWidth, image.getHeight)
. אפשר להשתמש במטריצה כדי למפות את הקואורדינטות מ-{UseCase} אחד לאחר. לדוגמה, מיפוי של קואורדינטות של הפנים שזוהו באמצעות ImageAnalysis לתצוגה מקדימה. (I9ff1e)נוסף API חדש ImageCapture.Builder#setJpegQuality שמאפשר לשנות את איכות הדחיסה של תמונת ה-JPEG שנוצרת כשמצלמים תמונה. (I8dcf4)
השם של MediaStoreOutputOptions.getCollection השתנה ל-MediaStoreOutputOptions.getCollectionUri. (I16639)
תיקוני באגים
- נפתרה הבעיה שגרמה להפעלת הפלאש במהלך הקשה למיקוד (startFocusAndMetering) כשמצב הפלאש הוא אוטומטי או always_on בסביבה עם תאורה חלשה. (Id4c11)
- השבתנו את HDR+ ב-Pixel 2 XL / Pixel 3 XL במצב MINIMIZE_LATENCY כדי להפחית את זמן האחזור. (Ib6270, b/203505523)
External Contribution
גרסה 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)
תיקוני באגים
- כדי שהאפליקציה תוכל לטפל בצורה תקינה ב-AssertionError שמתרחש כשיוצרים CameraCharacteristics, צריך להפעיל את InitializationException. (Ibec79)
גרסה 1.1.0-alpha09
29 בספטמבר 2021
הגרסאות androidx.camera:camera-camera2:1.1.0-alpha09
, androidx.camera:camera-core:1.1.0-alpha09
ו-androidx.camera:camera-lifecycle:1.1.0-alpha09
יוצאות. גרסה 1.1.0-alpha09 מכילה את הקומיטים האלה.
שינויים ב-API
- ההערה ExperimentalUseCaseGroup הוסרה עכשיו כי ממשקי ה-API כבר לא ניסיוניים. (I01ef5)
תיקוני באגים
- פתרון הבעיה שבה התמונות שצולמו מטושטשות במצב
MAXIMIZE_QUALITY
. (I173a9, b/193823892) - תוקנה בעיה ב-Samsung Galaxy J5 שגרמה למצלמה להיתקע אחרי צילום תמונות עם פלאש מופעל או אוטומטי בסביבה חשוכה (I3aab9)
- כשצריך לחתוך תמונה ב-ImageCapture, המערכת דוחסת את התמונה החתוכה שנוצרת ברמת האיכות שצוינה בפורמט JPEG, בהתאם למצב הצילום שהוגדר. אם מצב הצילום הוא
CAPTURE_MODE_MINIMIZE_LATENCY
, איכות הדחיסה של JPEG תהיה 95. אם מצב הצילום הואCAPTURE_MODE_MAXIMIZE_QUALITY
, איכות הדחיסה של JPEG תהיה 100. (Ieb37c, b/142856426)
גרסה 1.1.0-alpha08
18 באוגוסט 2021
הגרסאות androidx.camera:camera-camera2:1.1.0-alpha08
, androidx.camera:camera-core:1.1.0-alpha08
ו-androidx.camera:camera-lifecycle:1.1.0-alpha08
יוצאות. גרסה 1.1.0-alpha08 מכילה את הקומיטים האלה.
תכונות חדשות
- הוספת API של setOutputImageFormat להגדרת ניתוח תמונות. המשתמש יכול לבחור באחת מהאפשרויות הבאות: ImageAnalysis.OUTPUT_IMAGE_FORMAT_YUV_420_888 או ImageAnalysis.OUTPUT_IMAGE_FORMAT_RGBA_8888. כברירת מחדל, האפשרות ImageAnalysis.OUTPUT_IMAGE_FORMAT_YUV_420_888 תהיה מסומנת. (I7902d)
שינויים ב-API
- ההערה ExperimentalUseCaseGroupLifecycle הוסרה עכשיו כי ממשקי ה-API כבר לא ניסיוניים. (I17b85)
תיקוני באגים
- תוקנה בעיה שבה מסך התצוגה המקדימה בהיר מדי ב-Huawei P20 Lite. הבעיה הזו מתרחשת רק כשמשתמשים ברזולוציות מסוימות של תצוגה מקדימה יחד עם ערך גדול של הגדלה. (Idefce, b/192129158)
- תוקנה בעיה שבה הפלאש לא פועל בחלק מהמכשירים כשמגדירים את מצב הפלאש ל-FLASH_MODE_ON ואז מצלמים תמונות. (Ieb49b)
- תוקנה הבעיה שגרמה להשהיה של התצוגה המקדימה למשך זמן מסוים בזמן צילום תמונות, אם הרכיבים VideoCapture, ImageCapture ו-Preview קשורים. (I56197, b/193864120)
- מאפשר ל-ImageAnalysis לבחור רזולוציה גדולה מ-1080p. מכשיר ברמה LIMITED ומעלה יכול לתמוך ברזולוציה של גודל RECORD לניתוח תמונות (ImageAnalysis) כשהוא משולב עם תצוגה מקדימה (Preview) ועם צילום תמונות (ImageCapture). הפשרה היא שגם הרזולוציה שנבחרה ל-ImageCapture תצטרך להיות רזולוציה בגודל RECORD. כדי לבחור בהצלחה רזולוציה של גודל RECORD עבור ImageAnalysis, צריך להגדיר רזולוציה של גודל RECORD גם ב-ImageCapture וגם ב-ImageAnalysis. המשמעות היא שהאפליקציה מבינה את הפשרה הנדרשת, ומעדיפה שהרזולוציה של ImageAnalysis תהיה גדולה יותר מאשר הרזולוציה המקסימלית של ImageCapture. הגדרות של RECORD, גדלים מקסימליים ופרטים נוספים זמינים בכתובת https://developer.android.com/reference/android/hardware/camera2/CameraDevice#regular-capture. הגודל של RECORD מתייחס לרזולוציית ההקלטה המקסימלית הנתמכת של מכשיר המצלמה, כפי שנקבע על ידי CamcorderProfile. הגודל המקסימלי מתייחס לרזולוציית הפלט המקסימלית של מכשיר המצלמה עבור הפורמט או היעד הזה מתוך StreamConfigurationMap.getOutputSizes(int). (I1ee97, b/192911449)
- הוספת נתוני Exif לתמונה שצולמה. (I01ff0, b/193342619)
- ב-ImageCapture, מחזירים את ה-URI של התמונה שנשמרה אם מיקום השמירה הוא 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)
- קידום ה-API הניסיוני UseCaseGroup עבור camera-core, camera-lifecycle ו-camera-video. נוספו
ViewPort#getLayoutDirection
, ViewPort.Builder#setLayoutDirection
ו-ViewPort.Builder#setScaleType
להתאמה אישית של אזור התצוגה. (I7cee8)
גרסה 1.1.0-alpha05
2 ביוני 2021
הגרסאות androidx.camera:camera-camera2:1.1.0-alpha05
, androidx.camera:camera-core:1.1.0-alpha05
ו-androidx.camera:camera-lifecycle:1.1.0-alpha05
יוצאות. גרסה 1.1.0-alpha05 מכילה את הקומיטים האלה.
שינויים ב-API
- הוסרה כיתה
Camera2CameraFilter
. מומלץ לבחור מצלמה באמצעות CameraFilter ולאחזר את CameraCharacteristics או מידע אחר שקשור ל-Camera2 דרך Camera2CameraInfo אם צריך. (Ib887c) 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. (I7b4b8)
- החלפנו את ההערה
@Experimental
בהערה@RequiresOptIn
בממשקי API ניסיוניים. כדי לקרוא לממשקי API ניסיוניים, צריך להשתמש ב-androidx.annotation.OptIn
במקום ב-androidx.annotation.experimental.UseExperimental
שהוצא משימוש. (Iff226) - תוקן ImageCapture עם פלאש מופעל או אוטומטי, שמצלם תמונות דהויות ב-Samsung Galaxy S7. (I30001)
- נוסף CameraState API שייחשף דרך CameraInfo. (I75392)
גרסה 1.1.0-alpha03
24 במרץ 2021
הגרסאות androidx.camera:camera-camera2:1.1.0-alpha03
, androidx.camera:camera-core:1.1.0-alpha03
ו-androidx.camera:camera-lifecycle:1.1.0-alpha03
יוצאות. גרסה 1.1.0-alpha03 מכילה את הקומיטים האלה.
תיקוני באגים
- פורמט הפלט JPEG עבור
ImageCapture#OnImageCapturedCallback
כשמצב התוספים מופעל. (I0d7b1) - תוקנה בעיה שגרמה לכשל באתחול במכשירי UMIDIGI BISON (I57d9e, b/180818665)
- תוקנה תצוגה מקדימה מתוחה ב-PreviewView ב-Samsung A3. (Iacb30, b/180121821)
גרסה 1.1.0-alpha02
24 בפברואר 2021
הגרסאות androidx.camera:camera-camera2:1.1.0-alpha02
, androidx.camera:camera-core:1.1.0-alpha02
ו-androidx.camera:camera-lifecycle:1.1.0-alpha02
יוצאות. גרסה 1.1.0-alpha02 מכילה את הקומיטים האלה.
שינויים ב-API
- נוסף API
ProcessCameraProvider.getAvailableCameraInfos()
לאחזור ישיר של מידע על המצלמות הזמינות, שהן כל המצלמות במכשיר או המצלמות שנבחרו על ידיCameraSelector
שסופק ב-CameraXConfig.Builder.setAvailableCamerasLimiter(CameraSelector)
. (Ieac08)
תיקוני באגים
- עכשיו, CameraX מנסה לפתוח מצלמה בכוח בניסיון הראשוני. יכול להיות שהתוצאה תהיה ש-CameraX יגנוב את המצלמה מלקוחות אחרים של המצלמה אם לאפליקציה שלו יש עדיפות גבוהה יותר. (Iab069, b/175820568)
- תוקנה הבעיה שגרמה לכשל בבדיקת Robolectric כשנעשה שימוש ב-setAvailableCamerasLimiter ב-CameraXConfig. (Ice307)
- השינוי הזה מטפל בחריגה כשמגיעים למקסימום של תור התמונות ב-ImageAnalysis. לכן, במקום קריסה, יכול להיות שתבחינו בתרחישי שימוש אחרים שקופאים או פועלים לאט. לדוגמה, תצוגה מקדימה קפואה או איטית. (Ic12da, b/175851631)
- תוקן ExtensionsErrorListener כדי לדווח על שגיאות כשרק Preview או ImageCapture מאוגדים. (I5ae39)
- בוצע תיקון של רגרסיה בביצועים של ImageCapture על ידי הסרת האימות של מיקום שמירת התמונה לפני צילום התמונה. אחרי שמבצעים את השינוי הזה, אם יעד השמירה לא תקין, ייקח יותר זמן לקבל את תגובת השגיאה כי המערכת תנסה לשמור את התמונה אחרי הצילום. (I1fd4e, b/177061560)
- תוקנה רגרסיה בביצועים של ImageCapture עם OutputFileOptions מסוג 'קובץ'. (I5164a, b/177061560)
- התיעוד עודכן כך שמומלץ לא להשתמש ב-
ProcessCameraProvider.configureInstance(...)
מקוד הספרייה. (Ib8a9f)
גרסה 1.1.0-alpha01
27 בינואר 2021
הגרסאות androidx.camera:camera-camera2:1.1.0-alpha01
, androidx.camera:camera-core:1.1.0-alpha01
ו-androidx.camera:camera-lifecycle:1.1.0-alpha01
יוצאות. גרסה 1.1.0-alpha01 מכילה את הקומיטים האלה.
תיקוני באגים
- נוסף פתרון לבעיה של נתוני תמונה פגומים לסירוגין בפורמט JPEG במצלמה האחורית של SM-G930T. (I52001, b/159831206)
- תוקנה בעיה מספר
IllegalArgumentException
שקרתה כשכל הגדלים הנתמכים בתצוגה מקדימה קטנים מ-640x480 וגודל התצוגה גדול מ-640x480. (I2a63c, b/150506192) - משאבים בספריות שלא הוגדרו במפורש כמשאבים ציבוריים (למשל באמצעות public.xml) מוגדרים עכשיו כפרטיים כברירת מחדל. (Ia1dcc, b/170882230)
Camera-Camera2, Camera-Core ו-Camera-Lifecycle גרסה 1.0.2
גרסה 1.0.2
29 בספטמבר 2021
הגרסאות androidx.camera:camera-camera2:1.0.2
, androidx.camera:camera-core:1.0.2
ו-androidx.camera:camera-lifecycle:1.0.2
יוצאות. גרסה 1.0.2 מכילה את הקומיטים האלה.
תיקוני באגים
- פתרון הבעיה שבה התמונות שצולמו מטושטשות במצב
MAXIMIZE_QUALITY
. (I173a9, b/193823892) - תוקנה בעיה שגרמה לכך שתמונות שצולמו עם פלאש היו כהות בהרבה מכשירים. (I4e510)
Camera-Camera2, Camera-Core ו-Camera-Lifecycle גרסה 1.0.1
גרסה 1.0.1
21 ביולי 2021
הגרסאות androidx.camera:camera-camera2:1.0.1
, androidx.camera:camera-core:1.0.1
ו-androidx.camera:camera-lifecycle:1.0.1
יוצאות. גרסה 1.0.1 מכילה את הקומיטים האלה.
תיקוני באגים
תוקנה הבעיה שבה הערך
ListenableFuture
שמוחזר ב-setZoomRatio
ו-setLinearZoom
לא יכול להסתיים בחלק ממכשירי Android 11 (I716d7)תוקנה הבעיה שבה המצלמה נתקעת במצב סגירה במכשירים מסוימים וגורמת לתצוגה מקדימה שחורה. (I34c99)
Camera-Camera2, Camera-Core ו-Camera-Lifecycle גרסה 1.0.0
גרסה 1.0.0
5 במאי 2021
הגרסאות androidx.camera:camera-camera2:1.0.0
, androidx.camera:camera-core:1.0.0
ו-androidx.camera:camera-lifecycle:1.0.0
יוצאות. גרסה 1.0.0 מכילה את הקומיטים האלה.
התכונות העיקריות של גרסה 1.0.0
- CameraX תומך ב-Preview, ImageCapture ו-Analysis
- CameraX מנהל את מחזור החיים של המצלמה באמצעות API קל לשימוש
- CameraX נועדה לספק שכבת תאימות שמתקנת הרבה בעיות במערכת האקולוגית של מצלמות Android
בעיות מוכרות
גרסה 1.0.0-rc05
21 באפריל 2021
הגרסאות androidx.camera:camera-camera2:1.0.0-rc05
, androidx.camera:camera-core:1.0.0-rc05
ו-androidx.camera:camera-lifecycle:1.0.0-rc05
יוצאות. גרסה 1.0.0-rc05 מכילה את הקומיטים האלה.
תיקוני באגים
- תוקן ImageCapture עם פלאש מופעל או אוטומטי, שמצלם תמונות דהויות ב-Samsung Galaxy S7. (I30001)
גרסה 1.0.0-rc04
24 במרץ 2021
הגרסאות androidx.camera:camera-camera2:1.0.0-rc04
, androidx.camera:camera-core:1.0.0-rc04
ו-androidx.camera:camera-lifecycle:1.0.0-rc04
יוצאות. גרסה 1.0.0-rc04 כוללת את הקומיטים האלה.
תיקוני באגים
- תוקנה בעיה שגרמה לכשל באתחול במכשירי UMIDIGI BISON (I57d9e, b/180818665)
גרסה 1.0.0-rc03
24 בפברואר 2021
הגרסאות androidx.camera:camera-camera2:1.0.0-rc03
, androidx.camera:camera-core:1.0.0-rc03
ו-androidx.camera:camera-lifecycle:1.0.0-rc03
יוצאות. גרסה 1.0.0-rc03 מכילה את הקומיטים האלה.
תיקוני באגים
- תיקון שגיאת פורמט במסמך של
ProcessCameraProvider#getInstance
- תוקנה הבעיה שגרמה לכשל בבדיקת Robolectric כשנעשה שימוש ב-setAvailableCamerasLimiter ב-CameraXConfig.
- בוצע תיקון של רגרסיה בביצועים של ImageCapture על ידי הסרת האימות של מיקום שמירת התמונה לפני צילום התמונה. אחרי שמבצעים את השינוי הזה, אם יעד השמירה לא תקין, ייקח יותר זמן לקבל את תגובת השגיאה כי המערכת תנסה לשמור את התמונה אחרי הצילום.
- השינוי הזה מטפל בחריגה כשמגיעים למקסימום של תור התמונות ב-ImageAnalysis. לכן, במקום קריסה, יכול להיות שתבחינו בתרחישים אחרים לדוגמה שנתקעים או פועלים לאט. לדוגמה, תצוגה מקדימה שנתקעת או פועלת לאט.
- נוסף פתרון לבעיה של נתוני תמונה פגומים לסירוגין בפורמט JPEG במצלמה האחורית של SM-G930T. (I52001, b/159831206)
- השינוי הזה מטפל בחריגה כשמגיעים למקסימום של תור התמונות ב-ImageAnalysis. לכן, במקום קריסה, יכול להיות שתבחינו בתרחישי שימוש אחרים שקופאים או פועלים לאט. לדוגמה, תצוגה מקדימה קפואה או איטית. (Ic12da, b/175851631)
- תוקנה הבעיה שגרמה לכשל בבדיקת Robolectric כשנעשה שימוש ב-setAvailableCamerasLimiter ב-CameraXConfig. (Ice307)
- בוצע תיקון של רגרסיה בביצועים של ImageCapture על ידי הסרת האימות של מיקום שמירת התמונה לפני צילום התמונה. אחרי שמבצעים את השינוי הזה, אם יעד השמירה לא תקין, ייקח יותר זמן לקבל את תגובת השגיאה כי המערכת תנסה לשמור את התמונה אחרי הצילום. (I1fd4e, b/177061560)
- תוקנה רגרסיה בביצועים של ImageCapture עם OutputFileOptions מסוג 'קובץ'. (I5164a, b/177061560)
גרסה 1.0.0-rc02
27 בינואר 2021
הגרסאות androidx.camera:camera-camera2:1.0.0-rc02
, androidx.camera:camera-core:1.0.0-rc02
ו-androidx.camera:camera-lifecycle:1.0.0-rc02
יוצאות. גרסה 1.0.0-rc02 מכילה את הקומיטים האלה.
תיקוני באגים
- תוקנה בעיה של IllegalArgumentException שקרתה כשכל הגדלים הנתמכים בתצוגה המקדימה היו קטנים מ-640x480 וגודל התצוגה היה גדול מ-640x480. (b/150506192)
הגבלת מספר הניסיונות לפתיחה מחדש של המצלמה. בניסיון לשחזר נתונים מבעיות מסוימות בפתיחת המצלמה, CameraX לא ינסה יותר לפתוח מחדש את המצלמה ללא הגבלת זמן, אלא יפסיק אחרי ניסיון חוזר של 10 שניות.I435d2
תוקנה בעיה מספר
IllegalArgumentException
שקרתה כשכל הגדלים הנתמכים בתצוגה מקדימה קטנים מ-640x480 וגודל התצוגה גדול מ-640x480. (I2a63c, b/150506192)
גרסה 1.0.0-rc01
16 בדצמבר 2020
הגרסאות androidx.camera:camera-camera2:1.0.0-rc01
, androidx.camera:camera-core:1.0.0-rc01
ו-androidx.camera:camera-lifecycle:1.0.0-rc01
יוצאות. גרסה 1.0.0-rc01 כוללת את הקומיטים האלה.
שינויים ב-API
- השינוי של CameraFilter ו-Camera2Filter כדי לקבל CameraInfo. (I6883d)
- נוסף ניסוי Camera2CameraControl בכיתה כדי לאפשר אינטראקציה עם ממשקי Camera2 API באופן דינמי. (I45cf3)
- השם Camera2CameraInfo#fromCameraInfo שונה ל-#from. (Ia2bd6)
- נוסף API ניסיוני בשם setAvailableCamerasLimiter ל-CameraXConfig כדי לאפשר לאפליקציות לבצע אופטימיזציה של זמן האחזור של האתחול על ידי מניעת אתחול של מצלמות שלא נעשה בהן שימוש. (I6cf88)
- נוספה שיטה ניסיונית
CameraXConfig.Builder#setMinimumLoggingLevel()
שמאפשרת להגדיר רמת רישום מינימלית ליומני CameraX. אם לא מגדירים את המדיניות, ברירת המחדל היאLog#DEBUG
. (Ic3245)
תיקוני באגים
- נוסף פתרון לבעיה של נתוני תמונה פגומים לסירוגין בפורמט JPEG במצלמה האחורית של SM-G930V. (I5aca5, b/159831206)
- תוקנה הבעיה שגרמה לכך שלא מתקבלות תוצאות כשמצלמים תמונות כשהפלאש מופעל תמיד או מופעל והסביבה חשוכה במכשירי Samsung SM-A716. (If98b2, b/172036589)
- תוקנה הבעיה שגרמה לכך שלא הייתה אפשרות לעצור את התצוגה המקדימה על ידי התקשרות למספר
Preview.setSurfaceProvider(null)
. (I3ac18) - תוקנה בעיה שקשורה לכיוון כשמצלמים תמונות ביחס רוחב-גובה של 4:3 במכשירים מסוימים. (I0e3fb, b/171492111)
Camera Camera2, Core, & Lifecycle Version 1.0.0-beta12
11 בנובמבר 2020
הגרסאות androidx.camera:camera-camera2:1.0.0-beta12
, androidx.camera:camera-core:1.0.0-beta12
ו-androidx.camera:camera-lifecycle:1.0.0-beta12
יוצאות. גרסה 1.0.0-beta12 מכילה את הקומיטים האלה.
תיקוני באגים
- השבתנו את ההבזק האוטומטי במכשירי Samsung A3 כדי לתקן את הקריסה כשמצלמים תמונה במצב AE עם הבזק אוטומטי במכשירי Samsung A3. (Ia5fe3, b/157535165)
- תוקנה בעיה שבה התצוגה המקדימה נמתחה במכשירי Nexus 4 שפועלת בהם Android L (רמות API 21 ו-22). (I4d407, b/158749159)
- ההטמעה של מחלקת הבסיס
OnImageCapturedCallback#onCaptureSuccess
לא סוגרת יותר את התמונה. ההגדרה הזו נועדה למנוע התנהגות לא צפויה אצל מפתחים. מפתחים לא צריכים להסתמך על super.onCaptureSuccess כדי לסגור את התמונה. (Ifbf9c) - הווריאציה של androidx של ההערה Experimental הוצאה משימוש כדי לספק שוויון עם Kotlin. היא הוחלפה בהערה RequiresOptIn, והכלי לבדיקת קוד (linter) של Java עודכן כדי לתמוך גם בהערת Kotlin החדשה וגם בגרסת androidx החדשה. (I52495, b/151331381)
מצלמה-מצלמה2 גרסה 1.0.0-beta11
14 באוקטובר 2020
androidx.camera:camera-camera2:1.0.0-beta11
משוחרר. גרסה 1.0.0-beta11 מכילה את הקומיטים האלה.
תכונות חדשות
- תמיכה ב-Android 11
CONTROL_ZOOM_RATIO
API לזום במכשירי Android 11 ואילך שמכיליםCONTROL_ZOOM_RATIO_RANGE
. (I62cc6)
תיקוני באגים
- תוקנה הבעיה NumberFormatException שקרתה כשמזהה המצלמה לא היה מספר שלם. (Ib2228)
- שיפור זמן האחזור של אתחול CameraX ושל bindToLifecycle (I61dc5)
- כדי ליצור UseCases לא צריך לאתחל את CameraX. כל ההגדרות הספציפיות להטמעה מוגדרות ב-UseCase אחרי שהוא מצורף למופע של Camera, שהוא
ProcessCameraProvider.bindToLifecycle()
עבור ה-API הציבורי. (Ia5411) - הפונקציה
<UseCase>.getTargetRotation()
תחזירSurface.ROTATION_0
אם היא נקראת לפני שהיא מצורפת למופע של Camera, אלא אם הוגדר targetRotation ב-Builder או ב-UseCase. (I80fcd)
Camera-Core Version 1.0.0-beta11
14 באוקטובר 2020
androidx.camera:camera-core:1.0.0-beta11
משוחרר. גרסה 1.0.0-beta11 מכילה את הקומיטים האלה.
תכונות חדשות
- תמיכה ב-API של Android 11 CONTROL_ZOOM_RATIO
להגדלת התצוגה במכשירי Android 11 ואילך שמכילים CONTROL_ZOOM_RATIO_RANGE
תקף. (I62cc6)
תיקוני באגים
- תוקנה הבעיה NumberFormatException שקרתה כשמזהה המצלמה לא היה מספר שלם. (Ib2228)
- כדי ליצור UseCases לא צריך לאתחל את CameraX. כל ההגדרות הספציפיות להטמעה מוגדרות ב-UseCase אחרי שהוא מצורף למופע של Camera, שהוא
ProcessCameraProvider.bindToLifecycle()
עבור ה-API הציבורי. (Ia5411) - הפונקציה
<UseCase>.getTargetRotation()
תחזירSurface.ROTATION_0
אם היא נקראת לפני שהיא מצורפת למופע של Camera, אלא אם הוגדר targetRotation ב-Builder או ב-UseCase. (I80fcd)
Camera-Core Version 1.0.0-beta10
23 בספטמבר 2020
androidx.camera:camera-core:1.0.0-beta10
משוחרר. גרסה 1.0.0-beta10 מכילה את הקומיטים האלה.
תיקוני באגים
- תיקון באג באימות יעד השמירה של קובץ לצילום תמונה (I8c565, b/167697553)
מצלמה-מצלמה2 גרסה 1.0.0-beta10
23 בספטמבר 2020
androidx.camera:camera-camera2:1.0.0-beta10
משוחרר. גרסה 1.0.0-beta10 מכילה את הקומיטים האלה.
תיקוני באגים
- גרסה לתמיכה ב-Camera-Core 1.0.0-beta10
מצלמה-מצלמה2 גרסה 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) - כדי שהאפליקציה תוכל לטפל בצורה תקינה בשגיאת AssertionError שמתרחשת כשיוצרים CameraCharacteristics, צריך להשתמש ב-
InitializationException
. (I89c8c, b/160524721) - הוספנו ממשקי ניסויים ל-ExposureCompensation (If96c7)
Camera-Core Version 1.0.0-beta09
16 בספטמבר 2020
androidx.camera:camera-core:1.0.0-beta09
משוחרר. גרסה 1.0.0-beta09 מכילה את הקומיטים האלה.
שינויים ב-API
- תוקן הבאג שבו אזור התצוגה מסומן כלא null ב-UseCaseGroup. מפתחים צריכים להיות מסוגלים ליצור אזור תצוגה בלי להגדיר אזור תצוגה. (Ie3d2e)
- נוספו ממשקי ניסוי ל-
ExposureCompensation
(If96c7) - מאפשרים סיבוב שרירותי של היעד בתצוגה המקדימה. פרטי ההמרה מחושבים ומוחזרים למשתמש באופן מיידי באמצעות
TranformationInfoListener
קריאה חוזרת (callback) חדשה. (I21470)
תיקוני באגים
- תוקנה הבעיה שגרמה לכך שהפלאש בחלק מהמכשירים לא נכבה. הבעיה הזו מתרחשת כשמצב הפלאש מוגדר ל
FLASH_MODE_ON
לצילום תמונה, ואז משתנה לFLASH_MODE_OFF
כשהפלאש מופעל. הסימפטום דומה למצב פנס מופעל. (Ib4451, b/162568128) - הכריחו את PreviewView להשתמש ב-TextureView אם אפקט התוסף מופעל וההטמעה של ספריית הספק צריכה לבצע תהליך מיוחד במשטח הפלט. (I0c3cc)
- תוקן דליפת הפעילות/הקטע כשמעבירים הקשר של פעילות/קטע אל
ProcessCameraProvider.getInstance(Context)
.
בעיות מוכרות
- כשמגדירים את ViewPort, יכול להיות שחיתוך המלבן של ImageCapture יהיה שגוי במכשירים שמסובבים את מאגר התמונות ב-HAL. נפתור את הבעיה הזו במהדורה הבאה.
מצלמה-מצלמה2 גרסה 1.0.0-beta08
19 באוגוסט 2020
androidx.camera:camera-camera2:1.0.0-beta08
משוחרר. גרסה 1.0.0-beta08 מכילה את הקומיטים האלה.
תיקוני באגים
- בוצעה אופטימיזציה של bindToLifecycle כדי להפעיל אותו במהירות בשרשור הראשי. (I1d57e)
- הפונקציה DisplayOrientedMeteringPointFactory מקבלת מופע CameraInfo במקום CameraSelector, כך שיש מיפוי ישיר למצלמה שעבורה המפעל ייצור נקודות. כל הכיתות שמשתמשות ב-DisplayOrientedMeteringPointFactory מקבלות גם מופע של CameraInfo במקום CameraSelector. (I400c1)
- תוקנה בעיה בקבוצת הגדלים של יחס הגובה-רוחב של הרזולוציה האוטומטית, שגורמת לבחירה בגודל של 16:9 mod16 (864x480) כשהגדרת רזולוציית היעד היא 2016x1080 ויש גודל נוסף של 1920x1080 16:9 שנתמך. (I53167, b/159363774)
- תוקנה הבעיה ב-CameraControl שגרמה לכך שהיא לא פעלה בגלל מצב מירוץ (I2279f, b/152333890, b/160714166)
Camera-Core Version 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.getApplicationContext()
. (I3d3c9, b/160817073)
Camera-Camera2 Version 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 Version 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)
מצלמה-מצלמה2 גרסה 1.0.0-beta06
24 ביוני 2020
androidx.camera:camera-camera2:1.0.0-beta06
משוחרר. גרסה 1.0.0-beta06 כוללת את הקומיטים האלה.
שינויים ב-API
- נוספו ממשקי ניסוי לסינון מצלמות לפי מזהה מצלמה (camera ID) ומאפייני מצלמה (CameraCharacteristics). (I28f61)
תיקוני באגים
- תוקנה הבעיה שבה הפונקציה startFocusAndMetering לא מצליחה להתמקד ב-Samsung Galaxy S7. (If3be7, b/159039233)
- תיקון הבעיה שאי אפשר לסגור את המצלמה אחרי שיוצאים מהאפליקציה. (I7a7b3)
- תיקון של בעיה שגורמת להפסקת התצוגה המקדימה כשמשתמשים ב-SurfaceView implementation של PreviewView (I920ce)
- הפונקציה
CameraControl#startFocusAndMetering
תיכשל אם אף אחת מהנקודות MeteringPoint שצוינו לא יכולה ליצור מלבני מדידה תקינים. (Id53ce)
גרסה 1.0.0-beta06 של Camera-Core
24 ביוני 2020
androidx.camera:camera-core:1.0.0-beta06
משוחרר. גרסה 1.0.0-beta06 כוללת את הקומיטים האלה.
שינויים ב-API
- נוספו ממשקי ניסוי לסינון מצלמות לפי מזהה מצלמה (camera ID) ומאפייני מצלמה (CameraCharacteristics). (I28f61)
תיקוני באגים
- עכשיו אפשר להגדיר את CameraX עם
ProcessCameraProvider#configureInstance()
לפני שמתקשרים אלProcessCameraProvider#getInstance()
. כך אפשר להתאים אישית אתCameraXConfig
בלי להטמיע אתCameraXConfig.Provider
במחלקת האפליקציה של האפליקציה. (Ia1a8d) - הפונקציה
CameraControl#startFocusAndMetering
תיכשל אם אף אחת מהנקודות MeteringPoint שצוינו לא יכולה ליצור מלבני מדידה תקינים. (Id53ce)
Camera-Camera2 Version 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 Version 1.0.0-beta05
10 ביוני 2020
androidx.camera:camera-core:1.0.0-beta05
משוחרר. גרסה 1.0.0-beta05 מכילה את הקומיטים האלה.
שינויים ב-API
- תוקן קריסת האפליקציה בזמן ההפעלה כשמאתחלים את CameraX בזמן שהטלפון במצב 'נא לא להפריע'. הערך של
InitializationException
שמכילCameraUnavailableException
יוגדר ל-ListenableFuture
של תוצאת האתחול במקום לגרום לקריסת האפליקציה. (I9909a, b/149413835)
תיקוני באגים
- עדכון של מסמכי ה-Javadoc של
setTargetResolution
ו-setTargetRotation
. (Iae16f)
מצלמה-מצלמה2 גרסה 1.0.0-beta04
27 במאי 2020
androidx.camera:camera-camera2:1.0.0-beta04
משוחרר. גרסה 1.0.0-beta04 כוללת את הקומיטים האלה.
תיקוני באגים
- אפליקציות מורשות יכולות להגדיר כל פרמטר של בקשת צילום camera2 דרך
Camera2Interop
בלי לגרום לקריסה. חשוב לזכור שאם יש בעיות שנובעות משינוי הפרמטרים, לא מובטחת יציבות או התנהגות מסוימת כשמשנים פרמטרים באמצעות Camera2Interop. (Ibe5a1, b/149103700) - הבעיה של אתחול אוטומטי תוקנה כשמשתמשים באפליקציה במכשיר שמוגדר בו פסאודו-לוקאל. (I3bef3, b/154767663)
- הומרה יומן שגיאות שקשור לתרחיש שימוש מנותק ליומן ניפוי באגים ב-Camera2CameraImpl. (I1a565, b/154422490)
- תוקנה בעיה שבה התמונה שצולמה הייתה חשוכה מדי לפעמים, גם אם נעשה שימוש בפלאש. (I5d9fa, b/149729613)
- תיקון באג שבו לא בוצע rewind למאגר ב-
ImageProxy
מ-ImageCapture
(I0c455, b/153249512) - תוקנו הבעיות שבהן קישור ImageCapture בלבד: (1) לא הצליח לצלם תמונות עם MAX_QUALITY; (2) יצר איכות תמונה נמוכה כי החשיפה האוטומטית לא פעלה. (I17782, b/145326998)
- שיפרנו את המהימנות של פתיחה מחדש של המצלמה כש-CameraX מתנתק בגלל תהליך אחר או נתיב קוד שגורם להשתלטות על המצלמה (I1fbc3, b/153714651)
Camera-Core Version 1.0.0-beta04
27 במאי 2020
androidx.camera:camera-core:1.0.0-beta04
משוחרר. גרסה 1.0.0-beta04 כוללת את הקומיטים האלה.
שינויים ב-API
- נוסף API ניסיוני,
CameraXConfig.Builder#setSchedulerHandler()
להגדרת ה-handler שמשמש באופן פנימי את מחסנית המצלמה של CameraX. ממשק ה-API החדש הזה, יחד עםCameraXConfig.Builder#setCameraExecutor()
, אמור לאפשר שליטה מלאה בשרשורים שבהם נעשה שימוש במערך המצלמה של CameraX. (I7bf32, b/121160431)
תיקוני באגים
- תוקנה קריסה ב-
ImageAnalysis
שמתרחשת כשניגשים אלImageProxy
אחרי שסוגרים אתImageReaderProxy
. בנוסף, כלImageProxy
שמתקבלים על ידיAnalyzer
צריכים להיסגר לפני ש-ImageReaderProxy
ייסגר. (I4b299, b/145956416, b/154155377, b/156357269) - הפרמטר
CameraInfo
הוסר מהפונקציותPreviewView#createSurfaceProvider()
ו-PreviewView
. עכשיו הפונקציהPreviewView
מאחזרת אותו באופן פנימי מהפונקציהSurfaceRequest
. (If18f0, b/154652477) - הבעיה של אתחול אוטומטי תוקנה כשמשתמשים באפליקציה במכשיר שמוגדר בו פסאודו-לוקאל. (I3bef3, b/154767663)
- תוקנה בעיה שבה התמונה שצולמה הייתה חשוכה מדי לפעמים, גם אם נעשה שימוש בפלאש. (I5d9fa, b/149729613)
- תוקנה בעיה ב-
ImageAnalysis
שבה כמה קריאות ל-setAnalyzer/clearAnalyzer גרמו לכך שהכלי לניתוח לא קיבל תמונות לניתוח. (I6169f, b/151605317, b/153514544) - תיקון באג שבו לא בוצע rewind למאגר ב-
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)
מצלמה-מצלמה2 גרסה 1.0.0-beta03
15 באפריל 2020
androidx.camera:camera-camera2:1.0.0-beta03
משוחרר. גרסה 1.0.0-beta03 מכילה את הקומיטים האלה.
תיקוני באגים
- תיקונים לתמיכה בהשקה של
camera-core
Camera-Core Version 1.0.0-beta03
15 באפריל 2020
androidx.camera:camera-core:1.0.0-beta03
משוחרר. גרסה 1.0.0-beta03 מכילה את הקומיטים האלה.
תיקוני באגים
- תוקנה רגרסיה מגרסה beta03 שבה קריאה ל-
bindToLifecycle()
עם אפסUseCase
s גרמה לחריגה. הסיבה לכך היא שלא בוצע שיוך שלUseCase
ל-Camera
.
Camera-Camera2 Version 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. עכשיו אין יותר צורך לעדכן את UseCase כדי לבצע את החישובים (I78d9e)
Camera-Core Version 1.0.0-beta02
1 באפריל 2020
androidx.camera:camera-core:1.0.0-beta02
משוחרר. גרסה 1.0.0-beta02 מכילה את הקומיטים האלה.
תיקוני באגים
- תוקן הערך
ImageInfo.getRotationDegrees()
שלImageProxy
שנוצר על ידיImageCapture
כך שיתאים לערך הסיבוב של כיוון ה-EXIF. (Id4281, b/150802561) - תוקן
bindToLifecycle
כך שהוא ישנה את UseCase רק אם הוא נקשר בהצלחה. בעבר, כשמתקשרים אלbindToLifecycle
כדי לבצע חישובי רזולוציה, מתבצע עדכון של UseCase. עכשיו אין יותר צורך לעדכן את UseCase כדי לבצע את החישובים (I78d9e) - תוקנה בעיה שגרמה לכך שהסשן של תרחיש השימוש
Preview
לא התעדכן כשמשטח התצוגה המקדימה השתנה אחרי קריאה ל-Preview.setSurfaceProvider()
יותר מפעם אחת.
Camera-Camera2 Version 1.0.0-beta01
26 בפברואר 2020
androidx.camera:camera-camera2:1.0.0-beta01
משוחרר. גרסה 1.0.0-beta01 מכילה את הקומיטים האלה.
תיקוני באגים
- השם של
SurfaceRequest.setSurface(Surface)
שונה ל-SurfaceRequest.provideSurface(Surface)
, והשם שלSurfaceRequest.setWillNotComplete()
שונה ל-SurfaceRequest.willNotProvideSurface()
. (I224fe) - תוקנה בעיה שבה יחס הגובה-רוחב של תמונה שנשמרה לא היה נכון אחרי שינוי ערך הסיבוב של היעד באמצעות
ImageCapture.setTargetRotation()
. (I474ea, b/148763432) - תוקן תהליך האתחול של וריאציות של אפליקציות עם ProGuard מופעל, על ידי שמירת הדגל שמגדיר את ספק
CameraXConfig
ברירת המחדל. (I2d6c1)
גרסה 1.0.0-beta01 של Camera-Core
26 בפברואר 2020
androidx.camera:camera-core:1.0.0-beta01
משוחרר. גרסה 1.0.0-beta01 מכילה את הקומיטים האלה.
שינויים ב-API
- החלפתי את
ListenableFuture
ב-SurfaceRequest.provideSurface()
ב-Executor
וב-Callback
. השינוי הזה מפשט את ה-API כי כבר לא צריך לטפל בחריגים ב-provideSurface()
, ומבטיח שלא ניתן לבטל את הקריאה החוזרת (callback) שלprovideSurface()
. הסיבה לכך היא למנוע קריסות במכשירים ישנים יותר שנגרמות כתוצאה משחרור מוקדם מדי של משטחים. האובייקטSurfaceRequest.Result
משמש עכשיו למעקב אחרי השימוש שלSurfaceRequest
ב-Surface
שסופק. (I7854b) - השם של
SurfaceRequest.setSurface(Surface)
שונה ל-SurfaceRequest.provideSurface(Surface)
ושלSurfaceRequest.setWillNotComplete()
ל-SurfaceRequest.willNotProvideSurface()
. (I224fe)
תיקוני באגים
- תוקנה בעיה שבה יחס הגובה-רוחב של תמונה שנשמרה לא היה נכון אחרי שינוי ערך הסיבוב של היעד באמצעות
ImageCapture.setTargetRotation()
. (I474ea, b/148763432) - תוקן תהליך האתחול של וריאציות של אפליקציות עם ProGuard מופעל, על ידי שמירת הדגל שמגדיר את ספק
CameraXConfig
ברירת המחדל. (I2d6c1) - עדכנו את מסמכי התיעוד של ממשקי API של מצב פלאש כדי לכלול ערכים אפשריים. (I4a3ec)
מצלמה-מצלמה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 Version 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)
מצלמה-מצלמה2 גרסה 1.0.0-אלפא09
22 בינואר 2020
androidx.camera:camera-camera2:1.0.0-alpha09
משוחרר. גרסה 1.0.0-alpha09 מכילה את הקומיטים האלה.
שינויים ב-API
הוספת נתיב פעולה הדדית של Camera2 לחילוץ מזהה מצלמה של Camera2. אפשר לחלץ את מזהה המצלמה מ-
CameraInfo
באמצעותCamera2CameraInfo.extractCameraId()
. בדוגמת הקוד הבאה אפשר לראות איך משתמשים בזה:Camera camera = provider.bindToLifecycle(...); String cameraId = Camera2CameraInfo.extractCameraId(camera.getCameraInfo());
בכיתה
Camera2CameraInfo
נדרשExperimentalCamera2Interop
markerClass.
גרסה 1.0.0-alpha09 של Camera-Core
22 בינואר 2020
androidx.camera:camera-core:1.0.0-alpha09
משוחרר. גרסה 1.0.0-alpha09 מכילה את הקומיטים האלה.
שינויים ב-API
- הפרמטר
SurfaceOrientedMeteringPointFactory
useCaseForSurface
שונה ל-useCaseForAspectRatio
, והרחבנו את מאמרי העזרה. - השיטות
FocusMeteringAction.Builder.from()
מוחלפות ב-constructorsFocusMeteringAction.Builder()
. - הוסר
DisplayOrientedMeteringPointFactory(android.content.Context, androidx.camera.core.CameraSelector, float, float)
. באפליקציות צריך להשתמש בבונה שמקבל פרמטרDisplay
ולהעביר את התצוגה הנוכחית. - שיפורים ב-Javadoc עבור ממשקי API של מיקוד ומדידה בנוגע ל-
MeteringMode
ולדגלים של 3A, ושימוש בפרמטרDisplay
. - הרחבנו את מאמרי העזרה של
setZoomRatio
ו-setLinearZoom
.
תיקוני באגים
- תוקנו בעיות שקרו כשסוגרים ואז פותחים מצלמות, שגרמו לכשל בבדיקת 'תנאי מוקדם'.
- תוקנה בעיה ב-
ConcurrentModificationException
שיכולה להתרחש כשמשתמשים בממשקי API של פנס וזום. - תוקנה בעיה שגרמה לבחירת רזולוציות שרחוקות מהרזולוציה המבוקשת, כשהיה זמין גודל של מידות mod16.
- ממשקי ה-API
startFocusMetering
ו-cancelFocusMetering
פועלים עכשיו כמו שמתואר במסמכים, עם תזמון נכון, ויכול להיות שהם יחזירו שגיאות כשהן יתרחשו. - תוקנה בעיה שקרתה כשבוצעה בקשה לרזולוציית יעד ספציפית עם יחס גובה-רוחב של חיתוך במכשיר שלא תומך בגדלים כאלה. עכשיו, אם יש גודל לא חתוך ברזולוציה מספיקה כדי לתחום את הבקשה המקורית, הוא ייבחר.
מצלמה – Camera2 גרסה 1.0.0-alpha08
18 בדצמבר 2019
androidx.camera:camera-camera2:1.0.0-alpha08
משוחרר. גרסה 1.0.0-alpha08 מכילה את הקומיטים האלה.
בעיות מוכרות
- לא כל האפשרויות של בקשת צילום ב-Camera2 פועלות כשמשתמשים ב-Camera2 interop. אם האפשרות המבוקשת לא נתמכת, הסשן לא יתחיל ותופיע שגיאה כמו:
09-09 14:04:13.643 10117 26020 26036 E AndroidRuntime: java.lang.IllegalArgumentException: Unsupported session configuration combination
תיקוני באגים
- תוקנה בעיה שבה הופיע מסך שחור בתצוגה המקדימה אחרי סיבוב המצלמה או מעבר למצלמה אחרת ברמות API 21 ו-22.
שינויים ב-API
- ניסיוני: נוספה דרך פעולה הדדית של camera2 לחילוץ מזהה המצלמה.
גרסה 1.0.0-alpha08 של Camera-Core
18 בדצמבר 2019
androidx.camera:camera-core:1.0.0-alpha08
משוחרר. גרסה 1.0.0-alpha08 מכילה את הקומיטים האלה.
בעיות מוכרות
- יכול להיות שבאפליקציות שמשתמשות ב-
PreviewView
או ב-CameraView
, התצוגה המקדימה של יחס הגובה-רוחב תהיה שגויה. זה קורה אחרי השהיה או ההפעלה מחדש בחלק מהמכשירים המלאים, כמו Pixel2.
תיקוני באגים
- עדכנו את התיעוד של
FocusMeteringAction
ושלCameraControl
. - הוטמעה
TorchControl
עבורenableTorch()
ו-getTorchState()
.
שינויים ב-API
- הסתרנו את IntDefs והעברנו קבועים של IntDef מחוץ להגדרה של IntDef.
- הועבר
rotationDegrees
מהכיתהOnImageCaptureCallback
אלImageInfo
. - הועבר
rotationDegrees
מהכיתהAnalyzer
אלImageInfo
.
מצלמה-מצלמה2 גרסה 1.0.0-אלפא07
4 בדצמבר 2019
androidx.camera:camera-camera2:1.0.0-alpha07
משוחרר. Version 1.0.0-alpha07 of camera-camera2 contains these commits
-
Camera2Config
זמין עכשיו לשימוש באתחול ובהגדרה של הטמעה מבוססת Camera2 עבור CameraX. פרטים נוספים על אופן השימוש בפרמטר הזה במהלך ההפעלה מופיעים בקטע camera-core בהערות לגרסה. - הפונקציונליות של camera2 interop מסומנת עכשיו כניסיונית והועברה לחבילה נפרדת,
androidx.camera.camera2.interop.
גרסה 1.0.0-alpha07 של Camera-Core
4 בדצמבר 2019
androidx.camera:camera-core:1.0.0-alpha07
משוחרר. גרסה 1.0.0-alpha07 של camera-core מכילה את הקומיטים האלה
שימו לב: יש כמה שינויים משמעותיים בגרסת האלפא הזו, כחלק מההכנות לגרסת הבטא. מומלץ לעיין בשינויים ולשתף משוב בקבוצת Google של CameraX. מפתחים שמשתמשים ב-CameraX באפליקציות שזמינות בחנות Play, מומלץ להמתין לגרסת הבטא הרשמית לפני שמשדרגים את הספרייה באפליקציות.
שינויים ב-API
חשוב: חל שינוי באתחול של CameraX. באפליקציות צריך להטמיע את
CameraXConfig.Provider
ולהשתמש בערך ברירת המחדלCamera2Config
שמוגדר על ידיandroidx.camera.camera2
. שימוש טיפוסי:import androidx.camera.camera2.Camera2Config import androidx.camera.core.CameraXConfig public class MyCameraXApplication : Application(), CameraXConfig.Provider { override fun getCameraXConfig(): CameraXConfig { return Camera2Config.defaultConfig(this) } }
הוסר המחלקה CameraX. הערכים
bindToLifecycle()
,unbind()
,unbindAll()
,isBound()
ו-hasCamera()
שסופקו בעבר על ידי קריאת המחלקה CameraX זמינים עכשיו דרךProcessCameraProvider
.מופע של
ProcessCameraProvider
לכל תהליך מתקבל באופן אסינכרוני באמצעות השיטה הסטטיתProcessCameraProvider.getInstance()
, שמחזירה עתיד שניתן להאזנה, שמספק את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
Analyzer חייבת לקרוא ל-image.close()
בתמונות שהתקבלו אחרי שמסיימים להשתמש בהן. אחרת, יכול להיות שלא יתקבלו תמונות חדשות או שהמצלמה תיתקע, בהתאם להגדרת הלחץ האחורי. פרטים נוספים מופיעים במאמרי העזרה.שיטת הבידינג
ImageAnalysis ImageReaderMode
השתנתה לשיטת בידינג לפי תקציבintdef
.ImageProxy.getImage()
מסומן כניסיוני. אפליקציות צריכות להוסיף הערות לשימוש, למשל באמצעות@androidx.camera.core.ExperimentalGetImage
הדרישה להערה
UIThread
עבורAnalyzer
הוסרה.הפונקציה
ImageAnalysis.clearAnalyzer()
נוספת להסרת כלי ניתוח.שם המאזינים עם יותר משיטה אחת שונה ל-Callback:
-
ImageCapture.OnImageCapturedListener
נקרא עכשיוImageCapture.OnImageCapturedCallback
-
ImageCapture.OnImageSavedListener
נקרא עכשיוImageCapture.OnImageSavedCallback
-
VideoCapture.OnVideoSavedListener
נקרא עכשיוVideoCapture.OnVideoSavedCallback
-
הסוגים המנויים השתנו ל-IntDef
נוספו אמצעי בקרה על שינוי המרחק מהתצוגה:
CameraControl.setLinearZoom()
CameraControl.setZoomRatio()
CameraInfo.getLinearZoom()
CameraInfo.getMaxZoomRatio()
CameraInfo.getZoomRatio()
ההגדרה
CameraInfo.hasFlashUnit()
נוספת כדי לקבוע אם קיימת חומרה של פלאש או פנס.CameraInfo.isFlashAvailable()
הוסר. הפנס מבטל את הפונקציונליות של הפלאש. פרטים נוספים מופיעים במאמרי העזרה.השדות
ImageCapture.Metadata
מוחלפים בשיטות גישה מסוג get/set/is.הפונקציות
startFocusMetering
ו-cancelFocusMetering
מחזירות עכשיו את הערךListenableFutures
, שמייצג את הפעולה האסינכרונית של השיחה.התכונה
MeteringPoints
פועלת עכשיו כנקודות אחיזה לפעולות מדידה, והיא נוצרת על ידי מפעלים. באפליקציות צריך להשתמש במפעלים הקיימים ולא במפעלים מותאמים אישית.
בעיות שתוקנו
- תוקנה בעיה שקרתה כשצילמו תמונה בהפעלה מחדש (אחרי שהייתה הפסקה קודמת שבה צילום התמונות היה בהמתנה להשלמה).
- בעיה מוכרת: הפונקציה
CameraControl.enableTorch()
פועלת, אבל הערךListenableFuture<Void>
שמוחזר הוא תמידcomplete(success)
עתידי מיידי, גם אם אין יחידת פלאש. בגרסאות עתידיות, הבעיה הזו תיפתר וההתנהגות תהיה כזו: אם אין יחידת פלאש, הפעולהenableTorch(true)
תיכשל באופן מיידי (לא תישלח בקשה אלCaptureSession
), וההגדרהTorchState
תישאר מושבתת. - בעיה מוכרת: הפונקציות
startFocusAndMetering
ו-cancelFocusAndMetering
מתחילות ומבטלות את מדידת הפוקוס, אבל מחזירות באופן מיידיcompleted (success)
future שלא מייצג את ההתנהגות המתועדת. הערךFocusMeteringResult
מ-ListenableFuture<FocusMeteringResult> CameraControl.startFocusAndMetering()
הוא תוצאה מזויפת ש-isFocusSuccessful()
והוא תמיד false, בניגוד להתנהגות המיועדת והמתועדת. - בעיה מוכרת: אנחנו מפתחים מפעל של נקודות מדידה לשימוש עם אירועי מגע מסוג
PreviewView
. בשלב הזה, אפליקציות שמתחברות למשטחים מנוהלים בהתאמה אישית יכולות להשתמש במפעלים הקיימים של נקודות המדידה. אחרת, אין פונקציונליות של מיקוד במגע ב-PreviewView
.
Camera-Camera2 ו-Camera-Core גרסה 1.0.0-alpha06
9 באוקטובר 2019
הגרסאות androidx.camera:camera-camera2:1.0.0-alpha06
ו-androidx.camera:camera-core:1.0.0-alpha06
יוצאות לאור. אלה הקודים שנכללים ב-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 נחתך בהתאם.
Executor APIs
- הפונקציות הבאות מקבלות פרמטר של executor, שמאפשר לאפליקציה לקבוע באיזה executor הפונקציה תפעל.
Preview.setOnPreviewOutputUpdateListener()
API. אם אין מפעיל לפונקציה, היא מופעלת בשרשור הראשי.Preview.setOnPreviewOutputUpdateListener
FocusMeteringAction.Builder.setAutoFocusCallback
ImageAnalysis.setAnalyzer
ImageCapture.takePicture
CameraView.takePicture
CameraView.startRecording
VideoCapture.startRecording
הוספנו את CameraInfo עם ממשקי ה-API לבדיקת הזמינות של הפלאש וסיבוב החיישן
נוספו
CameraInfo
ושיטהgetCameraInfo
, שמאפשרות לאפליקציות לבדוק אם יש עדשה שפונה ל-CameraInfo ואם יש פלאש במצלמה הזו. לדוגמה:try { CameraInfo cameraInfo = CameraX.getCameraInfo(currentCameraLensFacing); LiveData<Boolean> isFlashAvailable = cameraInfo.isFlashAvailable(); flashToggle.setVisibility(isFlashAvailable.getValue() ? View.VISIBLE : View.INVISIBLE); } catch (CameraInfoUnavailableException e) { Log.w(TAG, "Cannot get flash available information", e); flashToggle.setVisibility(View.VISIBLE); }
צירפנו את
CameraInfo.getSensorRotationDegrees()
למרחב המשותף. היא מספקת את כיוון חיישן המצלמה ביחס לכיוון הטבעי של המכשיר, או ביחס לכיוון שמתואר על ידי סיבוב המשטח (שמתאר כיוון ביחס לכיוון הטבעי).
שינויים ב-API ותיקוני באגים
- יחסי גובה-רוחב: לכל תרחיש שימוש, האפליקציות צריכות להפעיל רק את
setTargetResolution()
או אתsetTargetAspectRatio()
. הפעלת שתי הפונקציות באותו כלי לבניית גרסאות build תחזיר שגיאה.- באופן כללי, מומלץ להשתמש ב-
setTargetAspectRatio()
על סמך עיצוב ממשק המשתמש של האפליקציה. הפתרונות הספציפיים תלויים בתרחיש השימוש. לדוגמה, התצוגה המקדימה קרובה לרזולוציות המסך, וצילום התמונה מספק תמונות סטילס ברזולוציה גבוהה. מידע נוסף זמין בטבלה של פתרונות אוטומטיים. - משתמשים ב-
setTargetResolution()
למקרים ספציפיים יותר, למשל כשנדרשת רזולוציה מינימלית (כדי לחסוך בחישובים) או רזולוציה מקסימלית (כדי לעבד פרטים).
- באופן כללי, מומלץ להשתמש ב-
- Executor API: הוסר הקריאה
setCallbackHandler()
מממשקי API להגדרת תרחישי שימוש. במקום זאת, אפליקציות יכולות להגדיר את ה-executor כפרמטר בממשקי API שונים אחרים שמגדירים קריאה חוזרת. - עדכנו את הערות ה-null לפונקציות שונות.
- תוקנה בעיה שגרמה להצגת השגיאה
java.lang.IllegalStateException at Camera$StateCallback.onError
כשפותחים את המצלמה. - תוקנה בעיה שבה נבחרו רזולוציות קטנות מדי (פחות מ-640x480) כשהאפליקציה ביקשה רזולוציות גדולות יותר או רזולוציות ברירת מחדל, וכתוצאה מכך תמונת התצוגה המקדימה הייתה מטושטשת או מורכבת מריבועים. אפליקציות שזקוקות באופן ספציפי לרזולוציות קטנות יותר יכולות לבקש אותן באופן מפורש.
- תוקנה בעיה שבה המצלמה הציגה מסך שחור (הפעלת המצלמה נכשלה) אחרי חזרה מ-Intent שהפעיל אפליקציית מצלמה אחרת.
- תוקן באג שגרם להצגת השגיאה הבאה כשמפעילים או מפסיקים אפליקציות שוב ושוב:
java.lang.IllegalArgumentException: CaptureRequest contains unconfigured Input/Output Surface!
- תוקנה השגיאה הבאה שמתרחשת כשמשביתים את ImageAnalysis:
java.lang.IllegalStateException: maxImages (4) has already been acquired, call #close before acquiring more.
- נוספו בדיקות נוספות לתהליך הניתוק של המצלמה.
- שיפרנו את העמידות של מערכת הבדיקה כשמריצים בדיקות מצלמה בזו אחר זו.
גרסה Camera-Camera2 וגרסה Camera-Core 1.0.0-alpha05
5 בספטמבר 2019
הגרסאות androidx.camera:camera-camera2:1.0.0-alpha05
ו-androidx.camera:camera-core:1.0.0-alpha05
יוצאות לאור. אלה הקומטים שנכללים ב-camera-camera2:1.0.0-alpha05 ואלה הקומטים שנכללים ב-camera-core:1.0.0-alpha05.
שינוי ב-API: שמות המשתנים של שגיאות בתרחישי שימוש שונו:
- השם של
ImageCapture.UseCaseError
שונה לImageCapture.ImageCaptureError
- השם של
VideoCapture.UseCaseError
שונה לVideoCapture.VideoCaptureError
- השם של
נוסף
CameraControl
API עם ממשקי Tap-to-Focus APIsהוספנו API לקבלת
CameraControl
מ-CameraX למצלמה, שנבחרה לפי כיוון העדשה:CameraX.getCameraControl(LensFacing lensFacing)
הוספנו את
MeteringPointFactory
,MeteringPoint
,MeteringMode
ו-FocusMeteringAction
כדי להפעיל את התכונה 'הקשה למיקוד':MeteringPointFactory factory = new SensorOrientedMeteringPointFactory(width, height); MeteringPoint point = factory.createPoint(x, y); FocusMeteringAction action = FocusMeteringAction.Builder.from(point, MeteringMode.AF_ONLY) .addPoint(point2, MeteringMode.AE_ONLY) // could have many .setAutoFocusCallback(new OnAutoFocusListener(){ public void onFocusCompleted(boolean isSuccess) { } }) // auto calling cancelFocusAndMetering in 5 sec. .setAutoCancelDuration(5, TimeUnit.Second) .build();
הוספנו API
CameraControl
כדי להתחיל ולבטל מדידת מיקוד:getCameraControl(lensFacing).startFocusAndMetering(action);
getCameraControl(lensFacing).cancelFocusAndMetering();
הוספנו ממשקי API ל-Metering Point Factories (מפעלים של נקודות מדידה) שעוזרים לתרגם קואורדינטות של הקשה לקואורדינטות של חיישן, על סמך מחלקות תצוגה:
MeteringPointFactory factory = new TextureViewMeteringPointFactory(textureView);
MeteringPointFactory factory = new DisplayOrientedMeteringPointFactory(context, lensFacing, viewWidth, viewHeight);
הגדרת אכיפה של קריאה לשיטות הבאות בשרשור הראשי (UI), והצגת שגיאה מסוג
IllegalStateException
אם הן לא נקראות. בגרסאות עתידיות יהיה אפשר להשתמש בהן בשרשורים אחרים, והן יבטיחו סדרות.CameraX.bindToLifecycle()
CameraX.unbind()
CameraX.unbindAll()
ImageAnalysis.setAnalyzer()
ImageAnalysis.getAnalyzer()
ImageAnalysis.removeAnalyzer()
Preview.removePreviewOutputListener()
Preview.getOnPreviewOutputUpdateListener()
Preview.setOnPreviewOutputUpdateListener()
הגדרות שונות של config מקבלות עכשיו פרמטרים מסוג null, ופונקציות ה-getter המתאימות עשויות להחזיר null.
תוקנה בעיה שקרתה כשבודקים באמולטורים שלא תומכים בהגדרות AF/AE/AWB.
תוקן באג שגרם לקריסה בזמן סיבוב התמונה במהלך הניתוח שלה.
תוקן באג שגרם לתצוגה המקדימה להופיע בשחור בהתחלה (ללא נתוני מצלמה), אחרי סיבוב או מעבר בין המצלמה הקדמית לאחורית.
הסרנו את הבדיקה של תרחישי שימוש מרובים בניתוח תמונות בו-זמני. כדי להבטיח תאימות, באפליקציות צריך לצרף רק תרחיש שימוש אחד של ניתוח תמונות.
נוספו בדיקות ראשוניות של Robolectric למצלמה מזויפת בחבילת בדיקות המצלמה (בשלבי פיתוח).
הבדיקה Camera2Inititalizer הוסרה, כי הכיסוי שלה לא היה ברור או שהיה מטעה.
Camera-Camera2 ו-Camera-Core גרסה 1.0.0-alpha04
7 באוגוסט 2019
הגרסאות androidx.camera:camera-camera2:1.0.0-alpha04
ו-androidx.camera:camera-core:1.0.0-alpha04
יוצאות לאור. גרסה 1.0.0-alpha04 מכילה את הקומיטים האלה.
תכונות חדשות
שינויים בבחירת יחס גובה-רוחב ורזולוציה
המטרה של CameraX היא לאתחל סשן מצלמה בהצלחה. המשמעות היא ש-CameraX מתפשרת על רזולוציה או יחסי גובה-רוחב בהתאם ליכולות המכשיר, כדי להתחיל סשן צילום בתור המטרה הראשונה שלה, ולכן יכול להיות שבקשות מדויקות לא יתקבלו. הסיבה לכך יכולה להיות:
- מכשירים שלא תומכים ברזולוציה המבוקשת
- בעיות תאימות, למשל במכשירים מדור קודם שבהם צריך להשתמש ברזולוציות מסוימות כדי שהמכשיר יפעל בצורה תקינה
- במכשירים מסוימים, פורמטים מסוימים זמינים רק ביחסי גובה-רוחב מסוימים
- העדפה של 'הערך הקרוב ביותר שמתחלק ב-16' לקידוד של JPEG או של סרטון. ראו
CameraCharacteristics#SCALER_STREAM_CONFIGURATION_MAP
למרות ש-CameraX יוצרת את הסשן ומנהלת אותו, תמיד צריך לבדוק את גדלי התמונות שמוחזרים בפלט של תרחיש השימוש בקוד, ולבצע התאמות בהתאם.
בוצעו כמה שינויים בהגדרת הרזולוציות ויחסי הגובה-רוחב, במטרה להפוך את ה-API לברור יותר:
- אם לא מוגדר יחס גובה-רוחב, יחס הגובה-רוחב שמוגדר כברירת מחדל בתצוגה המקדימה הוא 4:3.
- כש-CameraX שוקלת באופן פנימי שינויים ברזולוציות וביחסי גובה-רוחב מבוקשים על סמך יכולת המכשיר, היא קודם מנסה לשמור על אותו יחס גובה-רוחב (כפי שנקבע על ידי קריאות של
setTargetAspectRatio
אוsetTargetResolution
) - גרסה של הרזולוציה שבה המספרים הם הקרובים ביותר למספרים המקוריים שמתחלקים ב-16 נחשבת כבעלת אותו יחס גובה-רוחב.
מצב לא חוסם של ImageAnalysis
- ההתנהגות של
ImageReaderMode.ACQUIRE_LATEST_IMAGE
היא עכשיו לא חוסמת. היא מקבלת את התמונה האחרונה בתור, אבל משליכה תמונות שלא נעשה בהן שימוש באופן רציף כדי למנוע חסימה של צינור המצלמה. - הכלי לניתוח יכול להחזיק תמונה אחת ללא הגבלת זמן בלי לעצור את הצינור.
- אם האפליקציה מספקת מפעיל שחוסם, תרחיש השימוש ImageAnalysis נחסם.
- קבוצת ברירת המחדל של מפעילים שמוגדרת באופן פנימי מתנהגת כמפעיל לא חוסם.
תיקוני באגים
- תוקנו בעיות שקשורות לזמן קצוב לתפוגה בהמתנה להתכנסות של 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 artifacts לתצוגת המצלמה ולהרחבות המצלמה מתפרסמים עכשיו כגרסאות אלפא
מצלמה-מצלמה2 וליבה של מצלמה – גרסה 1.0.0-אלפא03
2 ביולי 2019
הגרסאות androidx.camera:camera-core:1.0.0-alpha03
ו-androidx.camera:camera-camera2:1.0.0-alpha03
יוצאות לאור. גרסה 1.0.0-alpha03 מכילה את הקומיטים האלה.
שינויים ב-API
- נוספה הבהרה ל-javadoc לגבי 'יעד' בקריאות להגדרת setTarget
Camera-Core
- תוקנה קריסה של משטח קלט/פלט שלא הוגדר, שמתרחשת בפתיחה/סגירה מהירה או בקישור/ביטול קישור
- מעבר להטמעות חדשות של חוזים עתידיים
- בדיקת תיקונים כדי לבצע בדיקות חזקות יותר
- בדיקת השילוב המרכזית מציגה עכשיו את זמן הצילום של התמונות
- פותחה מחלקה פנימית של תאימות ל-Executors
- אפליקציה לבדיקת תזמון של לכידת תמונות – ההמתנה להשלמת הפעולה הקודמת ויציבות משופרת
תוספים
- נוספו בדיקות של ניהול גרסאות
- כיסוי בדיקות נוסף – קריאות חוזרות (callback) של אירועים בתוסף
- שיפורים בתאימות הפנימית בין תמונה למטא-נתונים
- תיקונים למעבר בין מצבים באפליקציית הבדיקה
מצלמה-מצלמה2 ומצלמה-ליבה גרסה 1.0.0-אלפא02
5 ביוני 2019
הגרסאות androidx.camera:camera-core:1.0.0-alpha02
ו-androidx.camera:camera-camera2:1.0.0-alpha02
יוצאות לאור. גרסה 1.0.0-alpha02 מכילה את הקומיטים האלה.
תיקוני באגים
- תוקנה בעיה של חלוקה באפס כשמשתמשים באמולטור
- תוקנה שגיאת NullPointerException/Surface Abandoned שמתרחשת בחלק מהמכשירים כשמצלמים תמונות במהירות בזמן ביטול הקישור וקישור מחדש של תרחישי שימוש במהירות.
- תוקנה בעיה פנימית כדי להבטיח שעדכונים של בקשות צילום מסך ישפיעו על כל הפלטפורמות באופן עקבי
- שיפורים ביציבות כשמפעילים מחדש תרחישי שימוש במופעים חדשים של האפליקציה
- שינויים בארכיטקטורה הפנימית כדי להתכונן לתמיכה ב-executors ב-API
- הבהרות נוספות ב-Javadoc לגבי מחלקת CameraX וניהול מחזור החיים
- נוספה בדיקה עם מכשור לאפליקציית בדיקת הביצועים Antelope
- הסרת הצורך ב-'-keepattributes Signature' בהגדרות Proguard של האפליקציה
Camera-Camera2 ו-Camera-Core 1.0.0-alpha01
7 במאי 2019
השירותים androidx.camera:camera-core:1.0.0-alpha01
ו-androidx.camera:camera-camera2:1.0.0-alpha01
מושקים. גרסה 1.0.0-alpha01 מכילה את הקומיטים האלה.
Camera-Lifecycle Version 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 Version 1.0.0-beta10
23 בספטמבר 2020
androidx.camera:camera-lifecycle:1.0.0-beta10
משוחרר. גרסה 1.0.0-beta10 מכילה את הקומיטים האלה.
תיקוני באגים
- גרסה לתמיכה ב-Camera-Core 1.0.0-beta10
מצלמה – מחזור חיים גרסה 1.0.0-beta09
16 בספטמבר 2020
androidx.camera:camera-lifecycle:1.0.0-beta09
משוחרר. גרסה 1.0.0-beta09 מכילה את הקומיטים האלה.
מצלמה-מחזור חיים גרסה 1.0.0-beta08
19 באוגוסט 2020
androidx.camera:camera-lifecycle:1.0.0-beta08
משוחרר. גרסה 1.0.0-beta08 מכילה את הקומיטים האלה.
תיקוני באגים
- האתחול לא אמור לקרוס יותר כשמשתמשים בהקשר שלא מחזיר אובייקט של אפליקציה מ-
Context.getApplicationContext()
. (I3d3c9, b/160817073)
Camera-Lifecycle Version 1.0.0-beta07
22 ביולי 2020
androidx.camera:camera-lifecycle:1.0.0-beta07
משוחרר. גרסה 1.0.0-beta07 מכילה את הקומיטים האלה.
Camera-Lifecycle Version 1.0.0-beta06
24 ביוני 2020
androidx.camera:camera-lifecycle:1.0.0-beta06
משוחרר. גרסה 1.0.0-beta06 כוללת את הקומיטים האלה.
שינויים ב-API
- עכשיו אפשר להגדיר את CameraX באמצעות ProcessCameraProvider#configureInstance() לפני שקוראים ל-ProcessCameraProvider#getInstance(). כך אפשר להתאים אישית את CameraXConfig בלי להטמיע את CameraXConfig.Provider במחלקת Application של האפליקציה. (Ia1a8d)
Camera-Lifecycle Version 1.0.0-beta05
10 ביוני 2020
androidx.camera:camera-lifecycle:1.0.0-beta05
משוחרר. גרסה 1.0.0-beta05 מכילה את הקומיטים האלה.
תיקוני באגים
- תוקן קריסת האפליקציה בזמן ההפעלה כשמאתחלים את CameraX בזמן שהטלפון במצב 'נא לא להפריע'. הערך של
InitializationException
שמכילCameraUnavailableException
יוגדר ל-ListenableFuture
של תוצאת האתחול במקום לגרום לקריסת האפליקציה. (I9909a, b/149413835)
Camera-Lifecycle Version 1.0.0-beta04
27 במאי 2020
androidx.camera:camera-lifecycle:1.0.0-beta04
משוחרר. גרסה 1.0.0-beta04 כוללת את הקומיטים האלה.
Camera-Lifecycle Version 1.0.0-beta03
15 באפריל 2020
androidx.camera:camera-lifecycle:1.0.0-beta03
משוחרר. גרסה 1.0.0-beta03 מכילה את הקומיטים האלה.
תיקוני באגים
- תוקנה רגרסיה מגרסה beta03 שבה קריאה ל-
bindToLifecycle()
עם אפסUseCase
s גרמה לחריגה. הסיבה לכך היא שלא בוצע שיוך שלUseCase
ל-Camera
. - תיקונים לתמיכה בהשקה של
camera-core
Camera-Lifecycle Version 1.0.0-beta01
26 בפברואר 2020
androidx.camera:camera-lifecycle:1.0.0-beta01
משוחרר. גרסה 1.0.0-beta01 מכילה את הקומיטים האלה.
תיקוני באגים
- תיקנו את התיעוד כדי לציין שכאשר מקבלים
ProcessCameraProvider
במהלך האתחול, נעשה שימוש בהגדרת ברירת מחדל, ושהרחבתApplication
היא אופציונלית. (I5e395)
Camera-Lifecycle Version 1.0.0-beta02
1 באפריל 2020
androidx.camera:camera-lifecycle:1.0.0-beta02
משוחרר. גרסה 1.0.0-beta02 מכילה את הקומיטים האלה.
תיקוני באגים
- העדכון כולל תמיכה בתיקוני הבאגים בפריטים
camera-camera2:1.0.0-beta02
ו-camera-core:1.0.0-beta02
.
Camera-Lifecycle Version 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.
Camera-Lifecycle Version 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 Version 1.0.0-alpha01
4 בדצמבר 2019
androidx.camera:camera-lifecycle:1.0.0-alpha01
משוחרר. גרסה 1.0.0-alpha01 של camera-lifecycle מכילה את הקומיטים האלה
הערות לגבי API
- נוסף ארטיפקט של מחזור החיים של המצלמה, שמספק ממשק
LifeCycleCameraProvider
ויישום שנקראProcessCameraProvider
, שמספק רבות מהפונקציות של המחלקה הקודמת CameraX ב-core, ומתקבל באמצעות שיטתgetInstance()
. - כדי להשתמש ב-CameraX, האפליקציות צריכות לכלול את ספריית מחזור החיים של המצלמה.
- הערות לגבי אופן ההפעלה של CameraX באמצעות
ProcessCameraProvider
מופיעות בקטע camera-core.
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
. אם האפליקציה מבצעת binding ל-VideoCapture
ומפעילה מצב תוסף כלשהו, תופעלIllegalArgumentException
. (I0d87b) -
CameraSelector#filter
כבר לא מחזירהIllegalArgumentException
כשקבוצת התוצאות ריקה. (I27804) - שינינו את השם של
ExtensionsManager#getInstance
API ל-getInstanceAsync
כי הוא מחזירListenableFuture
. הסיומת Async של שם הפונקציה יכולה להציג בבירור שמדובר בפונקציה אסינכרונית. (I279d2) - הסרת פרמטר הרזולוציה מ-API
ExtensionsManager#getEstimatedCaptureLatencyRange
, כי משתמשים לא יכולים לדעת אילו גדלים נתמכים לתרחיש השימושImageCapture
, ולא יכולים להבחין אם נתוני ההשהיה שמוחזרים מתייחסים לגודל הפלט המקסימלי של הלכידה או לפרמטר הרזולוציה של הקלט. (I74bb2) - העברת הפרמטר
CameraProvider
של הפונקציותExtensionsManager
אלgetInstance()
API. כדי שהמשתמשים לא יצטרכו להזין את הפרמטרCameraProvider
בכל פעם שהם קוראים לפונקציותExtensionsManager
. (Ic7e48)
גרסה 1.0.0-alpha31
17 בנובמבר 2021
הגרסאות androidx.camera:camera-extensions:1.0.0-alpha31
ו-androidx.camera:camera-view:1.0.0-alpha31
יוצאות לאור. גרסה 1.0.0-alpha31 כוללת את הקומיטים האלה.
שינויים ב-API
- נוסף CameraSelector#filter לממשק ה-API הציבורי כדי לסנן רשימה של CameraInfo על סמך CameraSelector. (I105d0)
תיקוני באגים
- תוקנה קריסה שמתרחשת כשמחליפים במהירות את מצב התוספים במכשירים מסוימים. (Iebbef)
גרסה 1.0.0-alpha30
13 באוקטובר 2021
הגרסאות androidx.camera:camera-extensions:1.0.0-alpha30
ו-androidx.camera:camera-view:1.0.0-alpha30
יוצאות לאור. גרסה 1.0.0-alpha30 מכילה את הקומיטים האלה.
שינויים ב-API
- הוספנו את ההערה @RequiresApi(21) לכל המחלקות של CameraX והסרנו את minSdkVersion מ-AndroidManifest.xml. ההרשאה הזו מאפשרת לשלב בקלות את camera-core באפליקציות עם minSdkVersion נמוך מ-21, אבל רוצים להשתמש באופן מותנה בנתיבי קוד שמסתמכים על API 21 ומעלה. אם באפליקציה מוגדר minSdkVersion 21 ומעלה, לא צריך לבצע שום פעולה. (Ie7f2e, b/200599470)
תיקוני באגים
- תוקנה הבעיה AbstractMethodError שמתרחשת כש-proguard מופעל. (Iae468, b/201177844)
גרסה 1.0.0-alpha29
29 בספטמבר 2021
הגרסאות androidx.camera:camera-extensions:1.0.0-alpha29
ו-androidx.camera:camera-view:1.0.0-alpha29
יוצאות לאור. גרסה 1.0.0-alpha29 מכילה את הקומיטים האלה.
שינויים ב-API
- ההערה ExperimentalUseCaseGroup הוסרה עכשיו כי ממשקי ה-API כבר לא ניסיוניים. (I01ef5)
- הסרה של
RotationProvider#removeAllListeners()
. במקומה צריך להשתמש ב-RotationProvider#removeListener(...)
. (Id9d4a) - עדכנו את המחלקה RotationReceiver: שינינו את set/clear Listener ל-add/remove/removeAll, הסרנו את הווריאציה setListener שמשתמשת בשרשור הראשי כברירת מחדל והוספנו הערות לשיטות. (Ib1669)
תיקוני באגים
- שם המשתנה ExtensionMode#BEAUTY שונה ל-FACE_RETOUCH כדי לשקף בצורה נכונה את הפעולה שמתבצעת במצב התוסף. (I61f54, b/198515274)
- תוקנה הבעיה שבה המצלמה נסגרת באופן לא צפוי כשמשתמשים בכמה CameraController ו-PreviewView בפעילות אחת. (Ibfd18, b/197539358)
גרסה 1.0.0-alpha28
18 באוגוסט 2021
הגרסאות androidx.camera:camera-extensions:1.0.0-alpha28
ו-androidx.camera:camera-view:1.0.0-alpha28
יוצאות לאור. גרסה 1.0.0-alpha28 מכילה את הקומיטים האלה.
שינויים ב-API
- ההערה ExperimentalUseCaseGroupLifecycle הוסרה עכשיו כי ממשקי ה-API כבר לא ניסיוניים. (I17b85)
- בוצע refactoring של RotationListener והשם שלו שונה ל-RotationProvider. הוא ממשיך לספק את אותה תכונה עם API שונה במקצת. (Idffc5)
- שינוי השם של TAP_TO_FOCUS_UNSUCCESSFUL ל-TAP_TO_FOCUS_NOT_FOCUSED ושל TAP_TO_FOCUS_SUCCESSFUL ל-TAP_TO_FOCUS_FOCUSED. הגדרת OutputSize כסופי (I099fa)
תיקוני באגים
- הוסרו מחלקות
<EffectName><UseCase>Extender
שיצאו משימוש, ExtensionsErrorListener וממשקי API קשורים של ExtensionsManager. (I3b8c3)
גרסה 1.0.0-alpha27
21 ביולי 2021
הגרסאות androidx.camera:camera-extensions:1.0.0-alpha27
ו-androidx.camera:camera-view:1.0.0-alpha27
יוצאות לאור. גרסה 1.0.0-alpha27 מכילה את הקומיטים האלה.
שינויים ב-API
- העברנו את viewport API ממצב ניסיוני למצב פעיל. מסירים את האנוטציה הניסיונית של ה-API. (I717ea)
- שינוי השם של
CoordinateTransform#getTransform
ל-CoordinateTransform#transform
ועדכון JavaDoc (I864ae)
תיקוני באגים
- תוקנה בעיה במצב
PreviewView PERFORMANCE
של מתיחת התמונה כשמשתמשים בו יחד עם Compose UI. (Ie1137, b/183864890)
גרסה 1.0.0-alpha26
30 ביוני 2021
הגרסאות androidx.camera:camera-extensions:1.0.0-alpha26
ו-androidx.camera:camera-view:1.0.0-alpha26
יוצאות לאור. גרסה 1.0.0-alpha26 מכילה את הקומיטים האלה.
שינויים ב-API
- להוסיף שיטה חדשה
CameraController#getTapToFocusState()
שחושפת את התוצאה האחרונה של ההקשה למיקוד. (Iaccb0) - הוספת תכונות נוספות של ליבת המצלמה ל-CameraController: פונקציות getter/setter ליחס גובה-רוחב של היעד, לרזולוציית היעד, למצב הצילום, ל-CameraControl ולמבצעים מותאמים אישית. (Iea8f2)
- להוסיף מחלקה RotationReceiver שמקבלת שינויים בסיבוב של Surface. אפשר להשתמש בערך הזה כדי להגדיר את סיבוב היעד כשהמכשיר נמצא במצב קבוע של תצוגה לאורך או לרוחב. (Ib278f)
- חשפנו ממשקי API ציבוריים חדשים של getEstimatedCaptureLatencyRange במחלקה ExtensionsManager. (I6a8ec)
- הוצא משימוש ExtensionsErrorListener. בשלב הזה, הממשק הזה משמש רק למעקב אחרי חוסר בתצוגה מקדימה או ב-ImageCapture כשמפעילים מצבי תוסף. CameraX יוסיף באופן אוטומטי תצוגה מקדימה או ImageCapture נוספים כדי שהפונקציות של התוסף יפעלו בצורה טובה. אחרי כן, לא תדווח שגיאה דרך הממשק הזה. (I47d9e)
- הוספנו את ממשקי ה-API הציבוריים החדשים ExtensionsManager getInstance, isExtensionAvailable ו-getExtensionEnabledCameraSelector והוצאנו משימוש את המחלקות הישנות
<EffectName><UseCase>Extender
וממשקי API קשורים. (I329e6)
גרסה 1.0.0-alpha25
2 ביוני 2021
הגרסאות androidx.camera:camera-extensions:1.0.0-alpha25
ו-androidx.camera:camera-view:1.0.0-alpha25
יוצאות לאור. גרסה 1.0.0-alpha25 מכילה את הקומיטים האלה.
שינויים ב-API
- ממשקי ה-API של ExperimentalCameraFilter כבר לא בשלב הניסיוני והם הפכו לממשקי API רשמיים. אפשר להשתמש בהם בלי הערת הסכמה. (I4bc94)
- להוסיף כלי שמשנה את הקואורדינטות בין תרחישים לדוגמה. דוגמה לשימוש: שינוי הקואורדינטות שזוהו בתרחיש לדוגמה של ImageAnalysis והדגשת האובייקט שזוהה בתצוגה המקדימה. (I63ab1, b/137515129)
- בוצעה הסרה של
CameraView
. CameraView
הוחלף ב-CameraController
. במדריך ההעברה מוסבר איך מעבירים את הנתונים. (Id5005)
תיקוני באגים
- הטקסט
ExperimentalUseCaseGroupLifecycle
הוחלף בטקסטExperimentalUseCaseGroup
. (I3b2ef, b/159033688)
גרסה 1.0.0-alpha24
21 באפריל 2021
הגרסאות androidx.camera:camera-extensions:1.0.0-alpha24
ו-androidx.camera:camera-view:1.0.0-alpha24
יוצאות לאור. גרסה 1.0.0-alpha24 מכילה את הקומיטים האלה.
תיקוני באגים
- החלפנו את ההערה
@Experimental
בהערה@RequiresOptIn
בממשקי API ניסיוניים. כדי לקרוא לממשקי API ניסיוניים, צריך להשתמש ב-androidx.annotation.OptIn
במקום ב-androidx.annotation.experimental.UseExperimental
שהוצא משימוש. (Iff226) - תוקנה הבעיה של מתיחת PreviewView ב-Samsung J5 Prime (Ib10b6)
תוספים למצלמה ותצוגה בגרסה 1.0.0-alpha23
24 במרץ 2021
הגרסאות androidx.camera:camera-extensions:1.0.0-alpha23
ו-androidx.camera:camera-view:1.0.0-alpha23
יוצאות לאור. גרסה 1.0.0-alpha23 מכילה את הקומיטים האלה.
שינויים ב-API
- התכונה CameraView לא זמינה יותר. במקומה צריך להשתמש ב-
LifecycleCameraController
. למדריך להעברת נתונים (Idac2c) - הערה FloatRange נוספה ל-setLinearZoom() (I69971)
תיקוני באגים
- הצמדת תלות בתצוגת המצלמה כדי להסתמך על פריטי מידע מגרסה 1.0.0. הסתמכות על camera-view לא תגרום יותר לשדרוג אוטומטי של camera-core, camera-camera2 ו-camera-lifecycle לגרסאות האחרונות של ארטיפקטים 1.1.0, למרות ש-camera-view עדיין תואם לארטיפקטים האלה אם הם מוגדרים במפורש לשימוש בגרסה 1.1.0. (Ic8fa1, b/181599852)
- תוקנה תצוגה מקדימה מתוחה ב-PreviewView ב-Samsung A3. (Iacb30, b/180121821)
- תוקנה הבעיה שבה אי אפשר להגדיר את בורר המצלמות לפני שהמצלמה מאותחלת. (Ic8bd0)
Camera Extensions & View Version 1.0.0-alpha22
24 בפברואר 2021
הגרסאות androidx.camera:camera-extensions:1.0.0-alpha22
ו-androidx.camera:camera-view:1.0.0-alpha22
יוצאות לאור. גרסה 1.0.0-alpha22 מכילה את הקומיטים האלה.
שינויים ב-API
- הוספת פונקציית getter של CameraInfo ל-CameraController. (Ib8138, b/178251727)
תיקוני באגים
- תוקן ExtensionsErrorListener כדי לדווח על שגיאות כשרק Preview או ImageCapture מאוגדים. (I5ae39)
Camera Extensions & View Version 1.0.0-alpha21
27 בינואר 2021
הגרסאות androidx.camera:camera-extensions:1.0.0-alpha21
ו-androidx.camera:camera-view:1.0.0-alpha21
יוצאות לאור. גרסה 1.0.0-alpha21 מכילה את הקומיטים האלה.
הגרסה הזו הושקה כדי לתמוך בארטיפקטים אחרים של ספריות מצלמה.
תוספים למצלמה וגרסה 1.0.0-alpha20
16 בדצמבר 2020
הגרסאות androidx.camera:camera-extensions:1.0.0-alpha20
ו-androidx.camera:camera-view:1.0.0-alpha20
יוצאות לאור. גרסה 1.0.0-alpha20 מכילה את הקומיטים האלה.
הגרסה הזו הושקה כדי לתמוך בארטיפקטים אחרים של ספריות מצלמה.
Camera-Extensions & Camera-View Version 1.0.0-alpha19
11 בנובמבר 2020
הגרסאות androidx.camera:camera-extensions:1.0.0-alpha19
ו-androidx.camera:camera-view:1.0.0-alpha19
יוצאות לאור. גרסה 1.0.0-alpha19 מכילה את הקומיטים האלה.
תיקוני באגים
- ההערה
@ExperimentalVideo
נוספה לתצוגת המצלמה. ההערה הזו מציינת ממשקי API שחושפים פונקציונליות ניסיונית של סרטונים, שעשויה להשתנות ככל שהתכונות יפותחו במלואן. כל שיטה שמשתמשת בממשקי ה-API האלה צריכה להשתמש בהערה@UseExperimental
עםExperimentalVideo
בתורmarkerClass
. (I6d729)
גרסה 1.0.0-alpha18 של Camera-Extensions
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 מכילה את הקומיטים האלה.
הגרסה הזו הושקה כדי לתמוך בארטיפקטים אחרים של ספריות מצלמה.
גרסה 1.0.0-alpha17 של Camera-Extensions
23 בספטמבר 2020
androidx.camera:camera-extensions:1.0.0-alpha17
משוחרר. גרסה 1.0.0-alpha17 מכילה את הקומיטים האלה.
תיקוני באגים
- גרסה לתמיכה ב-Camera-Core 1.0.0-beta10
גרסה 1.0.0-alpha17 של Camera-View
23 בספטמבר 2020
androidx.camera:camera-view:1.0.0-alpha17
משוחרר. גרסה 1.0.0-alpha17 מכילה את הקומיטים האלה.
תיקוני באגים
- גרסה לתמיכה ב-Camera-Core 1.0.0-beta10
גרסה 1.0.0-alpha16 של Camera-Extensions
16 בספטמבר 2020
androidx.camera:camera-extensions:1.0.0-alpha16
משוחרר. גרסה 1.0.0-alpha16 מכילה את הקומיטים האלה.
תיקוני באגים
- נוספה שיטה ב-
ExtensionsManager
לקבלת אובייקטExtensions
שמשמש להפעלה ולשאילתה של תוספים במופעי מצלמה (I4fb7e)
גרסה 1.0.0-alpha16 של Camera-View
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
קריאה חוזרת (callback) חדשה. (I21470)
בעיות מוכרות
- ב-PreviewView,
OnClickListener#onClick()
לא מופעל כשמשתמש הקצה לוחץ על PreviewView. האירוע של המגע נצרך בטעות על ידי PreviewView#onTouchEvent(). הבעיה תיפתר במהדורה הבאה. - יכול להיות שהערך של MeteringPoint שמתקבל מ-
PreviewView#getMeteringPointFactory()
שגוי אם נעשה שימוש ב-ViewPort עם PreviewView.
גרסה 1.0.0-alpha15 של Camera-Extensions
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)
גרסה 1.0.0-alpha14 של Camera-Extensions
22 ביולי 2020
androidx.camera:camera-extensions:1.0.0-alpha14
משוחרר. גרסה 1.0.0-alpha14 מכילה את הקומיטים האלה.
גרסה 1.0.0-alpha14 של תצוגת המצלמה
22 ביולי 2020
androidx.camera:camera-view:1.0.0-alpha14
משוחרר. גרסה 1.0.0-alpha14 מכילה את הקומיטים האלה.
גרסה 1.0.0-alpha13 של Camera-Extensions
24 ביוני 2020
androidx.camera:camera-extensions:1.0.0-alpha13
משוחרר. גרסה 1.0.0-alpha13 מכילה את הקומיטים האלה.
תיקוני באגים
- נוספו ממשקי ניסוי לסינון מצלמות לפי מזהה מצלמה (camera ID) ומאפייני מצלמה (CameraCharacteristics). (I28f61)
גרסה 1.0.0-alpha13 של Camera-View
24 ביוני 2020
androidx.camera:camera-view:1.0.0-alpha13
משוחרר. גרסה 1.0.0-alpha13 מכילה את הקומיטים האלה.
תיקוני באגים
- האפליקציה CameraView לא קורסת יותר עם IllegalArgumentException כשמתבצעת הצמדה ל-LifecycleOwner שה-Lifecycle שלו עובר למצב DESTROYED זמן קצר אחרי ההצמדה. לא תהיה אפשרות לפתוח את המצלמה אם מחברים מחזור חיים במצב DESTROYED. (I7c2b8)
- התכונה PreviewView StreamState זמינה עכשיו דרך CameraView.getPreviewStreamState() (I21a2b)
גרסה 1.0.0-alpha12 של Camera-Extensions
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 מכילה את הקומיטים האלה.
תיקוני באגים
- הוספת
PreviewView#getBitmap()
API שמחזיר ייצוג Bitmap של התוכן שמוצג באזור התצוגה המקדימה. (I9b500, b/157659818)
Camera-Extensions Version 1.0.0-alpha11
27 במאי 2020
androidx.camera:camera-extensions:1.0.0-alpha11
משוחרר. גרסה 1.0.0-alpha11 מכילה את הקומיטים האלה.
גרסה 1.0.0-alpha12 של Camera-View
10 ביוני 2020
androidx.camera:camera-view:1.0.0-alpha12
משוחרר. גרסה 1.0.0-alpha12 מכילה את הקומיטים האלה.
תכונות חדשות
שינויים ב-API
תיקוני באגים
- הוספת
PreviewView#getBitmap()
API שמחזיר ייצוג Bitmap של התוכן שמוצג באזור התצוגה המקדימה. (I9b500, b/157659818)
Camera-View Version 1.0.0-alpha11
27 במאי 2020
androidx.camera:camera-view:1.0.0-alpha11
משוחרר. גרסה 1.0.0-alpha11 מכילה את הקומיטים האלה.
שינויים ב-API
- הוספת
PreviewView#getPreviewStreamState
API שמאפשר לאפליקציות לבדוק אם התצוגה המקדימה מוזרמת או לא. כש-PreviewView במצב TEXTURE_VIEW, המצב STREAMING מבטיח גם שהתמונה של התצוגה המקדימה תהיה גלויה. (Ic0906, b/154652477) - נוסף
PreviewView#setDeviceRotationForRemoteDisplayMode()
API כדי לספק סיבוב מכשיר לחישובי טרנספורמציה אם האפליקציה פועלת במצב תצוגה מרחוק. (I59b95, b/153514525)
תיקוני באגים
- תוקנה בעיה של עיוות בתצוגה המקדימה במצלמות
FULL/LIMITED/LEVEL_3
שפועלות ב-Android מגרסה 7.0 ומטה. מצבImplementationMode#TEXTURE_VIEW
שימוש מאולץ כשגרסת Android היא 7.0 ומטה. (I83e30, b/155085307) - הפרמטר
CameraInfo
הוסר מהפונקציותPreviewView#createSurfaceProvider()
ו-PreviewView
. עכשיו הפונקציהPreviewView
מאחזרת אותו באופן פנימי מהפונקציהSurfaceRequest
. (If18f0, b/154652477) - יחס הגובה-רוחב שמוגדר כברירת מחדל ב-VideoCapture הוא עכשיו 16:9 ב-CameraView. (Ie6a7b, b/153237864)
- תוקנה בעיה שבה
PreviewView
מסך שחור הופיע כשמבצעים החלקה כדי להוציאPreview
קטע ואז מחליקים כדי להחזיר אותו ב-ViewPager2. פתרתי גם את הבעיה כשremoveView(previewview)
ואזaddView(previewView)
. (Iab555, b/149877652, b/147354615) - צריך לעדכן את
CameraView#takePicture()
API כדי לאפשר שמירת תמונות ב-Uri
וב-OutputStream
. מעדכנים את אפליקציית הבדיקה כך שתשתמש ב-Uri
כדוגמה קנונית. (Ia2459, b/153607583) - אפשר להגדיר את סוג קנה המידה של PreviewView מפריסת XML על ידי הגדרת המאפיין
ScaleType
. (I08565, b/153015659) CameraView.ScaleType
הוסר. במקום זאת, משתמשים ב-PreviewView.ScaleType
כדי להגדיר או לקבל סוג קנה מידה באמצעות CameraView. (Ia8974, b/153014831)- נותנים ל-
PreviewView
צבע רקע כברירת מחדל אם עדיין אין לו צבע רקע. כך לא ניתן לראות את התוכן שמאחורי המודעה לפני שהזרמת התצוגה המקדימה מתחילה. (I09fad)
Camera-Extensions גרסה 1.0.0-alpha10
15 באפריל 2020
androidx.camera:camera-extensions:1.0.0-alpha10
משוחרר. גרסה 1.0.0-alpha10 מכילה את הקומיטים האלה.
תיקוני באגים
- תיקונים לתמיכה בהשקת Camera-Core
Camera-View Version 1.0.0-alpha10
15 באפריל 2020
androidx.camera:camera-view:1.0.0-alpha010
משוחרר. גרסה 1.0.0-alpha010 מכילה את הקומיטים האלה.
תיקוני באגים
- פתרנו בעיה מוכרת קודמת שבה ההטמעה של
PreviewView
surfaceView לא פעלה בצורה טובה במכשירים מסוימים, וגרמה לקריסת האפליקציה אחרי חידוש התצוגה המקדימה. (I5ed6b)
גרסה 1.0.0-alpha09 של Camera-Extensions
1 באפריל 2020
androidx.camera:camera-extensions:1.0.0-alpha09
משוחרר. גרסה 1.0.0-alpha09 מכילה את הקומיטים האלה.
תיקוני באגים
- עדכון לתמיכה בתיקוני הבאגים בארטיפקטים
camera-camera2:1.0.0-beta02
,camera-core:1.0.0-beta02
ו-camera-lifecycle:1.0.0-beta02
גרסה 1.0.0-alpha09 של Camera-View
1 באפריל 2020
androidx.camera:camera-view:1.0.0-alpha09
יוצא לאור. גרסה 1.0.0-alpha09 מכילה את הקומיטים האלה.
בעיות מוכרות
- יכול להיות שהשימוש ב-
ImplementationMode.SURFACE_VIEW
עםPreviewView
לא יעבוד טוב במכשירים מסוימים. הסיבה לכך היא ש-SurfaceView
שמשמש לתצוגה מקדימה מבטל את התוקף של השטח שלו כשהמחזור של החלון שבו הוא נמצא נעצר. כשהוא מופעל מחדש, המצלמה נפתחת מחדש ויכול להיות שהיא תנסה להמשיך את התצוגה המקדימה לפני שהשטח שלSurfaceView
יהיה תקף שוב. בשלב הזה, כדאי להשתמש ב-ImplementationMode.TEXTURE_VIEW
.
שינויים ב-API
- השם של
PreviewView.setImplementationMode()
שונה ל-PreviewView.setPreferredImplementationMode()
. - השם של
PreviewView.getImplementationMode()
שונה ל-PreviewView.getPreferredImplementationMode()
. - הפונקציה
PreviewView.getSurfaceProvider()
הוחלפה בפונקציהPreviewView.createSurfaceProvider(CameraInfo)
, שמקבלת מופעCameraInfo
שניתן לאתחול ל-null. המופע הזה משמש לאופטימיזציה של התצוגה המקדימה באמצעותImplementationMode.SURFACE_VIEW
בכל הזדמנות. אם מועבר מופע null או אם מגדירים את מצב ההטמעה המועדף ל-ImplementationMode.TEXTURE_VIEW
, נעשה שימוש פנימי ב-ImplementationMode.TEXTURE_VIEW
. דוגמת הקוד הבאה מראה איך השתמשו בעבר ב-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
.הוספת
createMeteringPointFactory()
API ל-PreviewView כדי לתמוך בהמרה של (x, y) ב-PreviewView
ל-MeteringPoint
. (Ib36d7)
תיקוני באגים
- תוקנו מקרים שבהם מוצגת תצוגה מקדימה שגויה אחרי שינוי הגודל של
PreviewView
. (I71101)
גרסה 1.0.0-alpha08 של Camera-Extensions
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 Version 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
- ההטמעה של
PreviewView
ב-TextureView
מגדירה עכשיו את הגודל שלTextureView
לגודל הפלט של חיישן המצלמה לפני שינוי קנה המידה שלו כדי למלא אתPreviewView
האב. אם רוצים שתצוגה מקדימה של המצלמה תמלא חלק שלם בממשק המשתמש (למשל, את המסך כולו), לא צריך להגדיר את הגודל שלPreviewView
כערך קבוע, או לגרום לו להקיף את התוכן שלו (למשל באמצעות המאפייןwrap_content
). פעולות כאלה עלולות לגרום לכך שהתצוגה המקדימה של המצלמה תמלא רק חלק מה-PreviewView
(אם גודל הפלט של חיישן המצלמה קטן יותר). במקום זאת, צריך להגדיר אתPreviewView
כך שיהיה גדול כמו רכיב האב שלו (לדוגמה, באמצעות המאפייןmatch_parent
). (1204869)
תיקוני באגים
- עדכנו את
ImageCapture
כדי לאפשר שמירת תמונות ב-Uri
וב-OutputStream
. שילבנו את שיטותtakePicture
העמוסות מדי לאחת. עדכנו את אפליקציית הבדיקה כך שתשתמש ב-Uri
כדוגמה קנונית. (Ia3bec) - השם של
Preview.PreviewSurfaceProvider
שונה ל-Preview.SurfaceProvider
.SurfaceProvider
כבר לא מחייב את המפתחים ליצורListenableFuture
משלהם, ואספקתSurface
מתבצעת עכשיו באמצעות אובייקטSurfaceRequest
חדש. הסרנו את השיטהPreview.getPreviewSurfaceProvider()
כי יש פוטנציאל לשימוש לרעה בה כשמשלבים אתPreview
עם מחלקות אחרות כמוPreviewView
. (I20105) - הארגומנטים שהועברו קודם ב-
ImageCapture.OnImageSavedCallback.onError()
וב-ImageCapture.OnImageCapturedCallback.onError()
הוחלפו עכשיו בארגומנט יחידImageCaptureException
, שעדיין מכיל את כל המידע שהועבר קודם. - הארגומנט של הקובץ שהועבר קודם ב-
ImageCapture.OnImageSavedCallback.onImageSaved()
הוסר. (I750d2) - ה-API עודכן, ושיטות
getZoomRatio()
,getMaxZoomRatio()
,getMinZoomRatio()
ו-getLinearZoom()
שלCameraInfo
מוזגו ל-getZoomState()
שמחזירה מופע שלZoomState
. (Ib19fe)
גרסה 1.0.0-alpha06 של Camera-Extensions
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.
גרסה 1.0.0-alpha05 של Camera-Extensions
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 של Camera-Extensions
4 בדצמבר 2019
androidx.camera:camera-extensions:1.0.0-alpha04
משוחרר. Version 1.0.0-alpha04 of camera-extensions contains these commits
שינויים ב-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() )
גרסה 1.0.0-alpha04 של Camera-View
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.setPreviewSurfaceProvider(previewView.previewSurfaceProvider)
השם
ZoomLevel
הוא עכשיוZoomRatio
בשמות של ממשקי APIחלק מהפרמטרים של השיטות השתנו מבחינת האפשרות שלהם להיות null
Camera-Extensions ו-Camera-View גרסה 1.0.0-alpha03
9 באוקטובר 2019
הגרסאות androidx.camera:camera-extensions:1.0.0-alpha03
ו-androidx.camera:camera-view:1.0.0-alpha03
יוצאות לאור. אלה הקודים שנכללים ב-camera-extensions:1.0.0-alpha03
ואלה הקודים שנכללים ב-camera-view:1.0.0-alpha03
.
תכונות חדשות
- נוסף מאתחל הקשר לתוספים. הגרסה של התוספים עודכנה ל-1.1.0
Camera-Extensions ו-Camera-View גרסה 1.0.0-alpha02
5 בספטמבר 2019
השירותים androidx.camera:camera-extensions:1.0.0-alpha02
ו-androidx.camera:camera-view:1.0.0-alpha02
מושקים. אלה הקומטים שכלולים ב-camera-extensions:1.0.0-alpha02 ואלה הקומטים שכלולים ב-camera-view:1.0.0-alpha02.
- נוספו בדיקות כדי לוודא ש-
PreviewImageProcessorImpl
הטמיע חותמות זמן בצורה נכונה. - תיקון של
ExtensionTest
בדיקת כשל ב-Nexus 5 (API ברמה 21) והבטחה שהתצוגה המקדימה זמינה.
Camera-Extensions ו-Camera-View גרסה 1.0.0-alpha01
7 באוגוסט 2019
השירותים androidx.camera:camera-extensions:1.0.0-alpha01
ו-androidx.camera:camera-view:1.0.0-alpha01
מושקים.
אלה ה-commits שנכללים ב-camera-extensions:1.0.0-alpha011.0.0-alpha01 ואלה ה-commits שנכללים ב-camera-view:1.0.0-alpha011.0.0-alpha01
- ספרייה חדשה לתוספי מצלמה עתידיים, לגישה לאפקטים במכשירים נתמכים. הספרייה הזו נמצאת בשלבי פיתוח.
- כיתה חדשה של Camera View. הספרייה הזו נמצאת בשלבי פיתוח.