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
ل
تطبيقك أو وحدتك:
Groovy
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") }
لمزيد من المعلومات عن العناصر الاعتمادية، اطّلِع على مقالة إضافة عناصر الاعتماد الخاصة بالإصدار.
ملاحظات
تساعدنا ملاحظاتك في تحسين Jetpack. يُرجى إعلامنا إذا واجهت مشاكل جديدة أو كان لديك أفكار لتحسين هذه المكتبة. يُرجى الاطّلاع على المشاكل الحالية في هذه المكتبة قبل إنشاء مكتبة جديدة. يمكنك إضافة صوتك إلى مشكلة حالية عن طريق النقر على زر النجمة.
اطّلِع على مستندات أداة تتبُّع المشاكل لمزيد من المعلومات.
الإصدار 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 على هذه المراجعات.
تغييرات واجهة برمجة التطبيقات
- تم إيقاف
androidx.media2
نهائيًا. استخدِمandroidx.media3
بدلاً من ذلك. (I53164)
الإصدار 1.2.1
الإصدار 1.2.1
9 شباط (فبراير) 2022
تم إصدار androidx.media2:media2-*:1.2.1
. يحتوي الإصدار 1.2.1 على هذه المراجعات.
إصلاح الأخطاء
- إصلاح التحقّق من Parcelables المخصّصة عند استهداف واجهة برمجة التطبيقات 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)
تغييرات واجهة برمجة التطبيقات
- تمت إضافة
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 على هذه المراجعات.
تغييرات واجهة برمجة التطبيقات
- إتاحة استخدام (prepare|play)From(MediaId|Uri|Search) (I13475، b/176949057)
إصلاح الأخطاء
- تم إصلاح مشكلة "توقُّف عمليات المعالجة في انتظار بعضها" بسبب عمليات المزامنة غير الضرورية.
- إعادة ضبط المشغّل عندما لا تتوفّر عناصر قابلة للتشغيل
- السماح لـ onCurrentMediaItemChanged بقبول عنصر وسائط غير صالح
- تعديل الإشعار عند تغيير عنصر الوسائط الحالي
- حلّ مشكلة عدم التوافق مع وحدة التحكّم بعد إنشاء الجلسة مباشرةً
الإصدار 1.1.3
الإصدار 1.1.3
21 نيسان (أبريل) 2021
تم إصدار androidx.media2:media2-*:1.1.3
. يحتوي الإصدار 1.1.3 على عمليات الربط هذه.
إصلاح الأخطاء
- تم إصلاح مشكلة "توقُّف عمليات المعالجة في انتظار الحصول على الموارد" بسبب عمليات الربط غير الضرورية.
الإصدار 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
- تمت إضافة المزيد من واجهات برمجة التطبيقات لمعالجة مسارات الوسائط
- إتاحة التوافق بشكلٍ أفضل مع مكتبة الوسائط في 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 إشعارات إلى وظائف الاستدعاء أثناء حجز قفل، ما يؤدي إلى حدوث حالات حظر محتملة (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 - حلّ مشكلة "الخطأ في معالجة الطلب" في
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 باستخدام دالة استدعاء فارغة.
- تم إصلاح مشكلة عدم استدعاء
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) - عدم السماح بعناصر Parcelable المخصّصة لـ media2 (aosp/1091056)
- تم إصلاح مشكلة كانت تؤدي إلى تعليق
close()
(aosp/1096455) - MediaBrowser: تم تحسين معالجة الأخطاء في
subscribe()
باستخدامMediaBrowserService
(aosp/1158057) - تم إصلاح تعطُّل MediaController مع Framework MediaSession(aosp/1177663)
- عدم إرسال إشعارات بمعلومات الجلسة من خلال عمليات الاستدعاء عند إجراء عملية الربط (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 تشغيل قائمة تشغيل تحتوي على أكثر من عنصرَين (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 التالية: MediaSession
وMediaController
وMediaBrowser
وMediaBrowserService
وVideoView
وMediaControlView
.
media2.player.MediaPlayer
- تتم مطابقة واجهات برمجة التطبيقات في الغالب مع
android.media.MediaPlayer
، ويكون المحرّك الأساسي هو ExoPlayer. - ميزة "التركيز على الصوت" ومعالجة الضوضاء المضمّنة
- تنفيذ SessionPlayer
- تتم مطابقة واجهات برمجة التطبيقات في الغالب مع
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 Widget البيانات الوصفية لعنصر الوسائط الجديد بشكل صحيح عند تغيير عنصر الوسائط الحالي.
الإصدار 1.0.0-beta01 من تطبيق Media2-Widget
2 تموز (يوليو) 2019
تم إصدار androidx.media2:media2-widget:1.0.0-beta01
. يمكن العثور على عمليات الربط المضمّنة في هذا الإصدار هنا.
الميزات الجديدة
- التشغيل في الخلفية: بدلاً من إنشاء مشغّل داخل VideoView، يمكن أن يستخدم VideoView SessionPlayer أو MediaController ليتمكّن التطبيق من الانتقال إلى وضع التشغيل في الخلفية بسلاسة.
- إزالة الاعتماد على مكتبة media2-player
- تمّت إضافة "
onViewTypeChangedListener
"
تغييرات واجهة برمجة التطبيقات
- تغيير مستوى العرض من "علني" إلى "محمي":
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
. يمكن العثور على عمليات الربط المضمّنة في هذا الإصدار هنا.
تغييرات واجهة برمجة التطبيقات
تم نقل التبعيات على
ListenableFuture
مرة أخرى إلى التنفيذ المستقل لمجموعة Guava.يُرجى العلم أنّه إذا كانت لديك أهداف اختبار تعتمد على عنصر Guava الكامل، قد تواجه تعارضًا في حلّ التبعيات عند استخدام إصدارات معيّنة من "مكوّن Android Gradle". إذا واجهت خطأ
Could not resolve all artifacts
متعلّقًا بـListenableFuture
، يمكنك معالجة المشكلة مؤقتًا عن طريق إضافةandroid.dependency.useConstraints=false
إلى إعدادات إنشاء مشروعك. نعمل حاليًا على حلّ دائم لهذه المشكلة في المكوّن الإضافي لنظام Gradle المتوافق مع Android، وسيتم طرحه في تاريخ لاحق.
الإصدار 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
. يمكن العثور على عمليات الربط المضمّنة في هذا الإصدار هنا.
إصلاح الأخطاء
- سيؤدي ضبط سرعة تشغيل سلبية على 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
. يمكن العثور على عمليات الربط المضمّنة في هذا الإصدار هنا.
الميزات الجديدة
- يتم تقسيم المكتبات إلى 3 أجزاء: media2-common وmedia2-player وmedia2-session.
- تم تغيير
IllegalPointerException
إلىNullPointerException
للوسيطات null التي تم وضع علامة عليها باسم @NonNull.
تغييرات واجهة برمجة التطبيقات
- تم طرحها في
MediaController.Builder
- تمّت إضافة طرق ضبط للحقول الاختيارية في
FileMediaItem.Builder
- يمكن لتطبيقَي
MediaController
وMediaBrowser
إرسال إشارات الربط إلى تطبيقَيMediaSession
أوMediaSessionService
أوMediaLibraryService
. - تمت إعادة تسمية بعض الطرق لتتوافق مع واجهات برمجة تطبيقات Media2 في Android 10
الإصدار 1.0.0-alpha04
17 كانون الأول (ديسمبر) 2018
تغييرات واجهة برمجة التطبيقات
- تمّت إعادة تسمية الفئات التالية:
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
للطُرق غير المتزامنة.