مقدّمة عن Jetpack Media3

‫Jetpack Media3 هو المركز الجديد لمكتبات الوسائط الذي يتيح لتطبيقات Android عرض تجارب صوتية ومرئية غنية. توفّر Media3 بنية بسيطة مع إمكانات تخصيص فعّالة وموثوقية وتحسينات استنادًا إلى إمكانات الجهاز لإزالة التعقيدات الناتجة عن التجزئة.

يقدّم هذا المستند مقدّمة عن واجهات برمجة التطبيقات الرئيسية لتنفيذ حالات استخدام التشغيل والتعديل باستخدام Media3.

مكوّنات التشغيل

توفّر Media3 عدة مكوّنات رئيسية لحالات استخدام التشغيل. ستكون الفئات التي تتألف منها هذه المكوّنات مألوفة لك إذا سبق لك استخدام مكتبات وسائط Android السابقة.

يوضّح المخطّط البياني التالي كيفية تجميع هذه المكوّنات معًا في تطبيق عادي.

تتصل المكوّنات المختلفة لتطبيق الوسائط الذي يستخدم Media3 معًا بعدة طرق بسيطة بسبب مشاركتها للواجهات والفئات.
الشكل 1: مكوّنات تطبيق الوسائط

مشغّل الوسائط

مشغّل الوسائط هو أحد مكوّنات تطبيقك التي تتيح تشغيل ملفات الوسائط. في Media3، ستجد ما يلي:

الفئة الوصف ملاحظة حول التنفيذ
Player ‫Player هي واجهة تحدّد الإمكانات التقليدية العالية المستوى لمشغّل الوسائط، مثل إمكانية التشغيل والإيقاف المؤقت والتقديم أو الترجيع. في Media3، واجهة Player هي واجهة برمجة تطبيقات شائعة يتم تنفيذها أو استخدامها من خلال عدة مكوّنات، بما في ذلك MediaSession وMediaController، على سبيل المثال.
ExoPlayer ‫ExoPlayer هو التنفيذ التلقائي لواجهة Player في Media3.

مزيد من المعلومات حول Media3 ExoPlayer

جلسة الوسائط

توفّر جلسة الوسائط طريقة عامة للتفاعل مع مشغّل وسائط. يتيح ذلك للتطبيق الإعلان عن تشغيل الوسائط لمصادر خارجية وتلقّي طلبات عناصر التحكّم في التشغيل من مصادر خارجية. في Media3، ستجد ما يلي:

الفئة الوصف ملاحظة حول التنفيذ
MediaSession تتيح جلسات الوسائط لتطبيقك التفاعل مع مشغّل صوت أو فيديو. وتعلن عن تشغيل الوسائط خارجيًا وتتلقّى أوامر التشغيل من مصادر خارجية. في Media3، يحتاج MediaSession إلى Player لتنفيذ الأوامر والحصول على الحالة الحالية.
MediaSessionService يحتفظ MediaSessionService بجلسة وسائط ومشغّل الوسائط المرتبط بها في خدمة منفصلة عن Activity الرئيسي لتطبيقك لتسهيل التشغيل في الخلفية.
MediaController تُستخدم فئة MediaController بشكل عام لإرسال الأوامر من خارج تطبيقك، على سبيل المثال، من تطبيقات أخرى أو من النظام نفسه. يتم إرسال الأوامر إلى Player الأساسي لـ MediaSession المرتبط. تنفّذ فئة MediaController واجهة Player، ولكن عند استدعاء طريقة، ترسل فئة MediaController الأمر المرسَل إلى MediaSession المتصل. يمكن لتطبيقات العميل، مثل "مساعد Google"، استخدام MediaController للتحكّم في التشغيل في جلسة متصلة.
MediaLibraryService يتشابه MediaLibraryService مع MediaSessionService، إلا أنّه يتضمّن واجهات برمجة تطبيقات إضافية تتيح لك عرض مكتبة المحتوى لتطبيقات العملاء.
MediaBrowser تسمح فئة MediaBrowser للمستخدم بالتنقّل في مكتبة محتوى تطبيق الموسيقى واختيار العناصر التي يريد تشغيلها. تنفّذ الفئة MediaBrowser كلاً من الواجهتَين MediaController وPlayer. على غرار MediaController، تنفّذ تطبيقات العميل، مثل Android Auto، بشكل عام MediaBrowser.

مزيد من المعلومات حول Media3 MediaSession

مكونات واجهة المستخدم

توفّر Media3 مكوّنات تلقائية لواجهة المستخدم تتيح مشاهدة الفيديوهات والتحكّم في تشغيلها.

الفئة الوصف ملاحظة حول التنفيذ
PlayerView ‫View تلقائي لعرض عناصر التحكّم في الفيديو والتشغيل يتصل بـ ExoPlayer أو MediaController أو أي Player مخصّص آخر.
PlayerSurface دالة مركّبة تمثّل رسمًا مخصّصًا Surface لعرض الفيديو يتصل بأي جهاز Player، ولكنّه لا يحتوي على عناصر تحكّم في التشغيل. يُستخدم فقط لعرض الإطارات ويمكن تغيير حجمه وفقًا لأنواع ContentScale المختلفة. يمكن العثور على هذه الدالة المركّبة والعديد من الدوال الأخرى في أدوات واجهة مستخدم Compose.

مزيد من المعلومات حول واجهة مستخدم Media3

تعديل المكوّنات

تتضمّن Media3 واجهات برمجة التطبيقات Transformer API لحالات استخدام تعديل الوسائط، بما في ذلك:

  • معالجة الصوت والفيديو، مثل إضافة الفلاتر والتأثيرات
  • التعامل مع التنسيقات الخاصة، مثل فيديو HDR وفيديو الحركة البطيئة
  • التركيب، مثل دمج ملفات إدخال متعددة
  • تصدير الناتج النهائي إلى ملف
الفئة الوصف ملاحظة حول التنفيذ
Transformer استخدِم الفئة Transformer لبدء عمليات التحويل وإيقافها والتحقّق من آخر المعلومات عن مستوى تقدّم عملية تحويل جارية.
Effects عنصر Effects هو مجموعة من تأثيرات الصوت والفيديو التي يمكن تطبيقها على ملف وسائط. يمكنك استخدام ExoPlayer لمعاينة المؤثرات المضافة إلى ملف وسائط قبل بدء عملية التصدير.
EditedMediaItem يمثّل EditedMediaItem ملف وسائط مطلوب معالجته والتعديلات المطلوب تطبيقها عليه.

مزيد من المعلومات حول Media3 Transformer

فيديو تقديمي

شاهِد هذا الفيديو للحصول على مقدّمة حول Media3 من المهندسين الذين صمّموه: