Media2
androidx.media2.common
androidx.media2.player
androidx.media2.session
androidx.media2.widget
העדכון האחרון | גרסה יציבה | גרסה מועמדת להפצה | גרסת בטא | גרסה אלפא |
---|---|---|---|---|
10 בינואר 2024 | 1.3.0 | - | - | - |
הצהרת יחסי תלות
כדי להוסיף תלות ב-Media2, צריך להוסיף את מאגר Google Maven לפרויקט. מידע נוסף זמין במאגר Maven של Google.
מוסיפים את יחסי התלות של הארטיפקטים הנדרשים בקובץ build.gradle
של האפליקציה או המודול:
מגניב
dependencies { def media2_version = "1.3.0" // Interacting with MediaSessions implementation "androidx.media2:media2-session:$media2_version" // optional - UI widgets for VideoView and MediaControlView implementation "androidx.media2:media2-widget:$media2_version" // optional - Implementation of a SessionPlayer implementation "androidx.media2:media2-player:$media2_version" }
Kotlin
dependencies { val media2_version = "1.3.0" // Interacting with MediaSessions implementation("androidx.media2:media2-session:$media2_version") // optional - UI widgets for VideoView and MediaControlView implementation("androidx.media2:media2-widget:$media2_version") // optional - Implementation of a SessionPlayer implementation("androidx.media2:media2-player:$media2_version") }
מידע נוסף על יחסי תלות זמין במאמר הוספת יחסי תלות ל-build.
משוב
המשוב שלכם עוזר לנו לשפר את Jetpack. אם נתקלתם בבעיות חדשות או שיש לכם רעיונות לשיפור הספרייה הזו, נשמח לשמוע מכם. לפני שיוצרים בעיה חדשה, כדאי לעיין בבעיות הקיימות בספרייה הזו. כדי להצביע על בעיה קיימת, לוחצים על לחצן הכוכב.
מידע נוסף זמין במסמכי התיעוד של Issue Tracker.
גרסה 1.3
גרסה 1.3.0
10 בינואר 2024
androidx.media2:media2-*:1.3.0
משוחרר. גרסה 1.3.0 כוללת את ההצהרות האלה.
שינויים חשובים מאז גרסה 1.2.0
- androidx.media2 הוצא משימוש באופן מלא. במקום זאת, צריך להשתמש ב-androidx.media3.
גרסה 1.3.0-rc01
13 בדצמבר 2023
androidx.media2:media2-*:1.3.0-rc01
פורסמה ללא שינויים מ-Media2 1.3.0-beta01. גרסה 1.3.0-rc01 כוללת את ההצהרות האלה.
גרסה 1.3.0-beta01
29 בנובמבר 2023
androidx.media2:media2-*:1.3.0-beta01
פורסם ללא שינויים מ-Media2 1.3.0-alpha01
. גרסה 1.3.0-beta01 מכילה את ההצהרות האלה.
גרסה 1.3.0-alpha01
15 בנובמבר 2023
androidx.media2:media2-*:1.3.0-alpha01
משוחרר. גרסה 1.3.0-alpha01 כוללת את ההוספות האלה.
שינויים ב-API
- האפשרות
androidx.media2
הוצאה משימוש באופן מלא. במקום זאת, אתם צריכים להשתמש ב-androidx.media3
. (I53164)
גרסה 1.2.1
גרסה 1.2.1
9 בפברואר 2022
androidx.media2:media2-*:1.2.1
משוחרר. גרסה 1.2.1 מכילה את השמירות האלה.
תיקוני באגים
- תיקון הבדיקה של Parcelables בהתאמה אישית כשמגדירים טירגוט ל-API 33.
גרסה 1.2.0
גרסה 1.2.0
15 בספטמבר 2021
androidx.media2:media2-*:1.2.0
משוחרר. גרסה 1.2.0 מכילה את ההוספות האלה.
שינויים חשובים מאז גרסה 1.1.0
- תמיכה ביכולת פעולה הדדית עם מדיה של AndroidX מסוג (prepare|play)From(MediaId|Uri|Search)
- נוספו
MEDIA_URI_PATH_SET_MEDIA_URI
ו-MEDIA_URI_QUERY_URI
ב-MediaConstants
גרסה 1.2.0-rc01
1 בספטמבר 2021
androidx.media2:media2-*:1.2.0-rc01
משוחרר. גרסה 1.2.0-rc01 כוללת את ההוספות האלה.
תיקוני באגים
- תוקנה בעיה של ANR כשסוגרים התראה על מדיה (Ifdcc2, b/148011394)
גרסה 1.2.0-beta01
30 ביוני 2021
androidx.media2:media2-*:1.2.0-beta01
משוחרר. גרסה 1.2.0-beta01 כוללת את ההצהרות האלה.
תכונות חדשות
- תמיכה ביכולת פעולה הדדית עם מדיה של AndroidX מסוג (prepare|play)From(MediaId|Uri|Search)
שינויים ב-API
- נוספו
MEDIA_URI_PATH_SET_MEDIA_URI
ו-MEDIA_URI_QUERY_URI
ב-MediaConstants
גרסה 1.2.0-alpha01
21 באפריל 2021
androidx.media2:media2-*:1.2.0-alpha01
משוחרר. גרסה 1.2.0-alpha01 כוללת את ההוספות האלה.
שינויים ב-API
- הוספת תמיכה ב-(prepare|play)From(MediaId|Uri|Search) (I13475, b/176949057)
תיקוני באגים
- תיקון בעיה של נעילה גורפת שנגרמה על ידי חסימה מסונכרנת מיותרת.
- איך מאפסים את הנגן כשאין פריטים שניתן להפעיל
- מתן הרשאה ל-onCurrentMediaItemChanged לקבל פריט מדיה null
- עדכון ההתראה כשפריט המדיה הנוכחי משתנה
- תיקון של יכולת הפעולה ההדדית עם תאימות ל-Controller מיד אחרי יצירת הסשן
גרסה 1.1.3
גרסה 1.1.3
21 באפריל 2021
androidx.media2:media2-*:1.1.3
משוחרר. גרסה 1.1.3 מכילה את ההצהרות האלה על ביצוע שינויים (commits).
תיקוני באגים
- תיקון בעיה של נעילה גורפת שנגרמה על ידי חסימה מסונכרנת מיותרת.
גרסה 1.1.2
גרסה 1.1.2
27 בינואר 2021
androidx.media2:media2-*:1.1.2
משוחרר. גרסה 1.1.2 כוללת את השמירות האלה.
תיקוני באגים
- תוקן שגיאת NPE מ-VersionedParcelable (I1ec28, b/177060207)
גרסה 1.1.1
גרסה 1.1.1
16 בדצמבר 2020
androidx.media2:media2-*:1.1.1
משוחרר. גרסה 1.1.1 מכילה את השמירות האלה.
תיקוני באגים
- מעדכנים את ההתראה על המדיה כשפריט המדיה הנוכחי משתנה.
גרסה 1.1.0
גרסה 1.1.0
2 בדצמבר 2020
androidx.media2:media2-*:1.1.0
משוחרר. גרסה 1.1.0 כוללת את השמירות האלה.
שינויים משמעותיים מאז גרסה 1.0.0
- הוספנו ממשקי API נוספים לטיפול בטראקים של מדיה
- תמיכה משופרת בתאימות הדדית עם ספריית המדיה של AndroidX
- האפשרות
MediaSession#setMediaUri
נוספה - חשיפה של
MediaSessionCompat.Token
דרךMediaSession#getSessionCompatToken()
- האפשרות
גרסה 1.1.0-rc01
28 באוקטובר 2020
androidx.media2:media2-*:1.1.0-rc01
משוחרר. גרסה 1.1.0-rc01 כוללת את השמירות האלה.
- תוקנה בעיה שבה MediaController שלח התראות על קריאות חוזרות (callbacks) בזמן שהוא מחזיק בנעילה, מה שעלול להוביל לנעילה מרובת משתתפים (deadlock) (I76c56
- תוקנה בעיה שבה
MediaSessionImplBase#isClosed()
עלול לקרוס כשקוראים ל-getCurrentControllerInfo()
ב-MediaSessionCompat
שפורסם. (aosp/1423291] - תוקנה בעיה שבה media2
MediaSession
לא הגדיר את מזהה הפריט הפעיל בתור ל-PlaybackStateCompat
(aosp/1421652) - נוספה הדגל
BIND_INCLUDE_CAPABILITIES
בזמן הקישור לשירות, שמאפשר לאפליקציות מדיה ללא ראש לגשת למיקום אם יש להן הרשאה. האפשרות הזו שימושית במיוחד לאפליקציות של Android Auto. (aosp/1440731)
גרסה 1.1.0-beta01
16 בספטמבר 2020
androidx.media2:media2-*:1.1.0-beta01
משוחרר. גרסה 1.1.0-beta01 כוללת את ההצהרות האלה.
תיקוני באגים
- איך מאפסים את המיקום הנוכחי כשפריט המדיה משתנה
- שליחת מטא-נתונים ומצב האחסון במטמון כשמחוברים
- תיקון קריסה בעת שליחת נתונים גדולים בין סשן לבין בקר
- מוסיפים את
<queries>
למניפסט של media ושל media2 עבור Android 11 - תיקון שגיאת NPE עבור
MediaController.getPlaylist()
- השבתת סרגל ההתקדמות של
MediaControlView
כשלא ניתן להשתמש בפקודת הקפיצה - שליחת התראה ל-
PlaybackStateCompat
כשפריט המדיה הנוכחי בסשן השתנה - תיקון חלוקת
SessionPlayer.TrackInfo
גרסה 1.1.0-alpha01
24 ביוני 2020
androidx.media2:media2-*:1.1.0-alpha01
משוחרר. גרסה 1.1.0-alpha01 כוללת את ההוספות האלה.
תיקוני באגים
- תוקנה בעיה שקשורת לתזמון בזמן עדכון המטא-נתונים (I45567, b/143999611)
- SessionResult ישמור את MediaItem מ-PlayerResult (I927b0, b/154885520)
- תוקן באג שגרם לכך ש-
MediaController#setVolumeTo()
יכול לשנות את עוצמת הקול של הסטרימינג הלא נכון. (I76870, b/151204736)
גרסה 1.0.3
גרסה 1.0.3
19 בפברואר 2020
androidx.media2:media2-*:1.0.3
משוחרר. גרסה 1.0.3 של media2-{common,player,session}
מכילה את השמירות האלה וגרסה 1.0.3 של media2-widget
מכילה את השמירות האלה
תיקוני באגים
- תוקנה השגיאה NullPointerException שנגרמה ביצירת MediaController עם קריאה חוזרת (callback) של null
- תוקנה בעיה שבה לא הייתה קריאה ל-
onPlaylistChanged()
אחריMediaPlayer.setMediaItem
גרסה 1.0.2
גרסה 1.0.2
5 בפברואר 2020
androidx.media2:media2-*:1.0.2
משוחרר. גרסה 1.0.2 של media2-{common,player,session}
מכילה את השמירות האלה וגרסה 1.0.2 של media2-widget
מכילה את השמירות האלה
תיקוני באגים
- תוקנה בעיה ב-
IndexOutOfBoundsException
ב-MediaPlayer#getSelectedTrack()
. (aosp/987003) - טיפול משופר במקרה שבו ExoPlayer קורא ל-getDuration() ופריט המדיה לא קיים (aosp/987484)
- תוקן באג שגרם לכך ש-ExoPlayer לא יזרוק
IllegalStateException
כשgetDuration()
נקרא במצבIDLE
(aosp/987246) - אסור לאפשר Parcelables מותאמים אישית ל-media2 (aosp/1091056)
- תוקנה בעיה שגרמה להשהיה ב-
close()
(aosp/1096455) - MediaBrowser: שיפור הטיפול בשגיאות ב-
subscribe()
באמצעותMediaBrowserService
(aosp/1158057) - תוקן קריסה של MediaController עם Framework MediaSession(aosp/1177663)
- לא לשלוח התראות לגבי פרטי הסשן באמצעות קריאות חזרה (callbacks) כשמתבצע החיבור (aosp/1195030, b/142925848)
- תוקנה בעיה שבה יכול להיות ש-SessionResult יישלח יותר מפעם אחת באופן בלתי צפוי מ-MediaController (aosp/1198634)
- תוקנה בעיה שבה MediaController עשוי לשלוח פקודות אסורות ל-MediaSession, כך ש-MediaSession שולח עכשיו את
RESULT_ERROR_PERMISSION_DENIED
(aosp/1204183) - תוקנה בעיה לא עקבית ב-
MediaControllerView#setPlayer
(aosp/987004)
גרסה 1.0.1
גרסה 1.0.1
9 באוקטובר 2019
androidx.media2:media2-*:1.0.1
משוחרר. גרסה 1.0.1 של androidx.media2:media2-{player, session}:1.0.1
מכילה את ההצהרות האלה וגרסה 1.0.1 של androidx.media2:media2-widget:1.0.1
מכילה את ההצהרות האלה.
תיקוני באגים
- תוקן RuntimeException כשסוג משנה של MediaItem נשלח בתהליך (aosp/1098971)
- תוקנה בעיה שבה MediaPlayer קורא ל-
onCurrentMediaItemChanged()
רק פעם אחת כשמפעילים פלייליסט - תוקנה בעיה שבה MediaPlayer לא יכול היה להפעיל פלייליסט עם יותר מ-2 פריטים (aosp/1108440)
- תוקנה בעיה שבה הנגן ממשיך לפעול ב-SurfaceView, גם אם הוא לא גלוי
- תוקנה בעיה בהפעלת VideoView שמתרחשת כשמתבצעת שיחה אל
setViewType
לפניsetPlayer
גרסה 1.0.0
5 בספטמבר 2019
androidx.media2:media2-*:1.0.0
משוחרר. אלה ההתחייבויות שכלולות ב-media2-{player, session}:1.0.0, ואלה ההתחייבויות שכלולות ב-media2-widget:1.0.0.
תכונות עיקריות של Media2 1.0.0
Media2 הוא הדור הבא של ממשקי ה-Media API הבאים: MediaSession
, MediaController
, MediaBrowser
, MediaBrowserService
, VideoView
ו-MediaControlView
.
media2.player.MediaPlayer
- רוב ממשקי ה-API מותאמים ל-
android.media.MediaPlayer
, והמנוע הבסיסי הוא ExoPlayer - מיקוד אודיו מובנה וטיפול ברעש
- הטמעת SessionPlayer
- רוב ממשקי ה-API מותאמים ל-
media2.session.MediaSession
- בקרת הרשאות מפורטת
- תמיכה בפריסות בהתאמה אישית
- קל לשימוש עם SessionPlayer, כמו
androidx.media2.player.MediaPlayer
- יכולת פעולה הדדית עם
MediaControllerCompat
media2.session.MediaSessionService
- גרסה קלה של
MediaLibraryService
- ניהול מחזור החיים של השירות להפעלה ברקע
- יכולת פעולה הדדית עם
MediaControllerCompat
ועםMediaBrowserServiceCompat
- גרסה קלה של
media2.session.MediaLibraryService
- תמיכה טובה יותר בחלוקה לדפים לצורך ניווט בפריטי מדיה או בתוצאות חיפוש עם הרבה פריטים
- יכולת פעולה הדדית עם
MediaControllerCompat
ועםMediaBrowserServiceCompat
media2.session.MediaController
- יכול להתחבר אל
MediaSession
,MediaSessionService
ו-MediaLibraryService
- יכולת פעולה הדדית עם
MediaSessionCompat
ועםMediaBrowserServiceCompat
- יכול להתחבר אל
media2.session.MediaBrowser
- עובר בירושה מ-
MediaController
- יכול להתחבר אל
MediaSession
,MediaSessionService
ו-MediaLibraryService
- יכולת פעולה הדדית עם
MediaSessionCompat
ועםMediaBrowserServiceCompat
- עובר בירושה מ-
media2.widget.VideoView
- מכיל את כל הפונקציונליות של
android.widget.VideoView
- שירות שמאפשר מעבר בין
TextureView
לביןSurfaceView
- יכולים לעבוד יחד עם
MediaSession
- מכיל את כל הפונקציונליות של
media2.widget.MediaControlView
- עיצוב וסגנון משופרים
- מכיל את כל הפונקציונליות של
android.widget.MediaController
- בחירת טראק של כתוביות, בחירת מהירות הפעלה ומצב מסך מלא
גרסה 1.0.0-rc02
22 באוגוסט 2019
הגרסה androidx.media2:media2-*:1.0.0-rc02
זמינה, והשינויים שכלולים בגרסה הזו מפורטים כאן. הגרסה הזו כוללת את androidx.media2:media2-widget:1.0.0-rc02
, והשינויים שכלולים בגרסה הזו מפורטים כאן.
תכונות חדשות
- אסור יותר להפעיל את
setPlayer
או אתsetController
דרךMediaControlView
(MCV) כשה-MediaControlView
שייך ל-VideoView
תיקוני באגים
MediaControlView
: אפשר ללחוץ על הלחצנים 'הבא' ו'הקודם' רק אם יש פריטים קודמים או הבאים של מדיהMediaControlView
: תוקנה בעיה לא עקבית ב-NullPointerException
כשקוראים ל-onAttachedToWindow()
- הווידג'ט Media2 מטפל עכשיו כראוי במטא-נתונים של פריט המדיה החדש כשפריט המדיה הנוכחי השתנה
Media2-Widget גרסה 1.0.0-beta01
2 ביולי 2019
androidx.media2:media2-widget:1.0.0-beta01
משוחרר. כאן אפשר למצוא את ההתחייבויות (commits) שכלולות בגרסה הזו.
תכונות חדשות
- הפעלה ברקע: במקום ליצור נגן בתוך VideoView, אפשר להשתמש ב-VideoView עם SessionPlayer או MediaController כדי שהאפליקציה תוכל לעבור למצב הפעלה ברקע בצורה חלקה.
- הסרת התלות בספריית media2-player
- האפשרות
onViewTypeChangedListener
נוספה
שינויים ב-API
- שינוי הרשאות הגישה מ'גלוי לכולם' ל'מוגן':
VideoView.onMeasure(int, int)
VideoView.onAttachedToWindow()
VideoView.onDetachedFromWindow()
MediaControlView.onMeasure(int, int)
- הוסר:
VideoView.getSessionToken()
VideoView.setAudioAttributes(AudioAttributesCompat)
VideoView.setMedaItem(MediaItem)
MediaControlView.setSessionToken(SessionToken)
- נוספו:
VideoView.setMediaController(MediaController)
VideoView.getMediaControlView()
VideoView.setMediaController(MediaController)
VideoView.setPlayer(SessionPlayer)
VideoView.setOnViewTypeChangedListener()
MediaControlView.setPlayer(SessionPlayer)
MediaControlView.setMediaController(MediaContoller)
גרסה 1.0.0-rc01
18 ביוני 2019
androidx.media2:media2-common:1.0.0-rc01
, androidx.media2:media2-player:1.0.0-rc01
וגם androidx.media2:media2-session:1.0.0-rc01
משוחררים. כאן אפשר למצוא את ההתחייבויות (commits) שכלולות בגרסה הזו.
שינויים ב-API
יחסי התלות ב-
ListenableFuture
הועברו חזרה להטמעה העצמאית של Guava.שימו לב: אם יש לכם יעדי בדיקה שתלויים ב-artifact המלא של Guava, יכול להיות שתתקלו בהתנגשויות בפתרון יחסי התלות כשמשתמשים בגרסאות מסוימות של Android Gradle Plugin. אם נתקלתם בשגיאה מסוג
Could not resolve all artifacts
שקשורה ל-ListenableFuture
, תוכלו לעקוף את הבעיה באופן זמני על ידי הוספתandroid.dependency.useConstraints=false
להגדרות ה-build של הפרויקט. אנחנו עובדים כרגע על תיקון קבוע ב-Android Gradle Plugin שיופץ במועד מאוחר יותר.
גרסה 1.0.0-beta02
5 ביוני 2019
התכונות androidx.media2:media2-common:1.0.0-beta02
, androidx.media2:media2-player:1.0.0-beta02
וגם androidx.media2:media2-session:1.0.0-beta02
משוחררות. כאן אפשר למצוא את ההתחייבויות (commits) שכלולות בגרסה הזו.
תיקוני באגים
- הגדרת מהירות הפעלה שלילית ב-androidx.media.player.MediaPlayer תחזיר את הערך RESULT_ERROR_BAD_VALUE.
- החלפת Guava ListenableFuture בהטמעה של Jetpack (aosp/968828)
גרסה 1.0.0-beta01
7 במאי 2019
androidx.media2:media2-common:1.0.0-beta01
, androidx.media2:media2-player:1.0.0-beta01
וגם androidx.media2:media2-session:1.0.0-beta01
משוחררים. כאן אפשר למצוא את ההתחייבויות (commits) שכלולות בגרסה הזו.
תכונות חדשות
- הספריות מחולקות ל-3 חלקים: media2-common, media2-player ו-media2-session
- השינויים:
IllegalPointerException
ל-NullPointerException
עבור הארגומנטים של null שסומנו בתווית @NonNull.
שינויים ב-API
- הוספנו את
MediaController.Builder
- נוספו שיטות להגדרת שדות אופציונליים של
FileMediaItem.Builder
MediaController
ו-MediaBrowser
יכולים לשלוח את הטיפים להתחברות של האפליקציה אלMediaSession
, MediaSessionService
אוMediaLibraryService
- השמות של חלק מה-methods השתנו בהתאם לממשקי ה-API של Media2 ב-Android 10
גרסה 1.0.0-alpha04
17 בדצמבר 2018
שינויים ב-API
- שינינו את השמות של הכיתות הבאות:
MediaPlayer2
→MediaPlayer
MediaSession2
→MediaSession
MediaController2
→MediaController
MediaSessionService2
→MediaSessionService
MediaLibraryService2
→MediaLibraryService
MediaBrowser2
→MediaBrowser
MediaMetadata2
→MediaMetadata
Rating2
→Rating
SessionToken2
→SessionToken
SessionCommand2
→SessionCommand
SessionCommandGroup2
→SessionCommandGroup
- מוזגו הכיתות הבאות:
DataSourceDesc2
ו-MediaItem2
אוחדו ל-MediaItem
MediaPlaylistAgent
ו-MediaPlayerConnector
אוחדו ל-SessionPlayer
- נוספו שתי קבוצות המשנה הבאות של
Rating
:HeartRating
,PercentageRating
,StarRating
ו-ThumbRating
Media2
משתמש עכשיו ב-ListenableFuture
לשיטות אסינכרוניות