الوسائط2

مشاركة محتوى الوسائط وعناصر التحكّم مع تطبيقات أخرى
آخر تعديل الإصدار المستقر إصدار مرشح الإصدار التجريبي الإصدار الأولي
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")
}

للمزيد من المعلومات حول الاعتماديات، يُرجى الاطّلاع على مقالة إضافة تبعيات الإصدار.

ملاحظات

تساعدنا ملاحظاتك في تحسين 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 على هذه الالتزامات.

إصلاح الأخطاء

الإصدار 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

التغييرات في واجهة برمجة التطبيقات

  • تمت إعادة تسمية الفئات التالية:
    • MediaPlayer2MediaPlayer
    • MediaSession2MediaSession
    • MediaController2MediaController
    • MediaSessionService2MediaSessionService
    • MediaLibraryService2MediaLibraryService
    • MediaBrowser2MediaBrowser
    • MediaMetadata2MediaMetadata
    • Rating2Rating
    • SessionToken2SessionToken
    • SessionCommand2SessionCommand
    • SessionCommandGroup2SessionCommandGroup
  • تم دمج الفئات التالية:
    • تم دمج DataSourceDesc2 وMediaItem2 في MediaItem.
    • تم دمج MediaPlaylistAgent وMediaPlayerConnector في SessionPlayer.
  • تمت إضافة الفئات الفرعية التالية من Rating: HeartRating وPercentageRating وStarRating وThumbRating
  • يستخدم Media2 الآن ListenableFuture للطرق غير المتزامنة.