الوسائط2
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 هذه الالتزامات.
إصلاح الأخطاء
- إصلاح عملية التحقّق من القطع المخصّصة عند استهداف واجهة برمجة التطبيقات 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>
" إلى بيان الوسائط و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 مع استدعاء فارغ
- تم إصلاح المشكلة المتمثلة في عدم استدعاء
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) - عدم السماح بالعناصر المخصّصة للوسائط2 (aosp/1091056)
- تم حل مشكلة تسبّبت في تعليق
close()
(aosp/1096455). - MediaBrowser: تم تحسين معالجة الأخطاء في
subscribe()
باستخدامMediaBrowserService
(aosp/1158057) - إصلاح تعطُّل MediaController مع إطار عمل MediaSession(aosp/1177663)
- عدم إرسال إشعار بمعلومات الجلسة من خلال استدعاءات الاتصال عند إجراء الاتصال (aosp/1195030، b/142925848)
- تم إصلاح المشكلة المتمثلة في إمكانية إرسال نتيجة الجلسة أكثر من مرة بشكل غير متوقع من 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
هذه الالتزامات.
إصلاح الأخطاء
- تم إصلاح استثناء وقت التشغيل عند إرسال فئة فرعية من 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 هي الجيل التالي من واجهات برمجة تطبيقات الوسائط التالية: 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 الآن بشكل صحيح مع البيانات الوصفية لعنصر الوسائط الجديد عند تغيير عنصر الوسائط الحالي.
Media2-Widget الإصدار 1.0.0-beta01
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
للوسيطات الفارغة التي تم وضع علامة @NonNull عليها.
التغييرات في واجهة برمجة التطبيقات
- تاريخ الإصدار:
MediaController.Builder
- تمت إضافة طرق ضبط للحقول الاختيارية لـ
FileMediaItem.Builder
. - يمكن لـ
MediaController
وMediaBrowser
إرسال نصائح بشأن الاتصال في التطبيق إلىMediaSession
أوMediaSessionService
أوMediaLibraryService
. - تتم إعادة تسمية بعض الطرق لاتّباع واجهات برمجة تطبيقات Android 10 Media2.
الإصدار 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
للطرق غير المتزامنة.