مقدّمة عن 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، ولكن عند استدعاء طريقة، يتم إرسال الأمر إلى MediaSession المتصلة. ويمكن لتطبيقات العميل، مثل "مساعد Google"، استخدام MediaController للتحكّم في التشغيل في جلسة مرتبطة.
MediaLibraryService وتشبه السمة MediaLibraryService السمة MediaSessionService، باستثناء أنّها تتضمّن واجهات برمجة تطبيقات إضافية لتتمكّن من عرض مكتبة المحتوى الخاصة بك على تطبيقات العملاء.
MediaBrowser تسمح الصف MediaBrowser للمستخدم بالتنقل عبر مكتبة محتوى تطبيق الوسائط واختيار العناصر المراد تشغيلها. تستخدم الفئة MediaBrowser الواجهتَين MediaController وPlayer معًا. على غرار MediaController، تستخدم تطبيقات العملاء، مثل Android Auto، السمة MediaBrowser بشكل عام.

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

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

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

الفئة الوصف ملاحظة بالتنفيذ
PlayerView View تلقائي لعرض عناصر التحكم في الفيديو والتشغيل. الاتصال بـ ExoPlayer أو MediaController أو أي Player مخصَّص آخر.

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

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

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

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

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

فيديو تقديمي

انظر الفيديو أدناه للحصول على مقدمة عن Media3 من المهندسين الذين قاموا بإنشائها.