مقدّمة عن 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.

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

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

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

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

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

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

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

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

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

فيديو تقديمي

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