Jetpack Media3 هي المكان الجديد لمكتبات الوسائط التي تتيح لتطبيقات Android عرض تجارب غنية بالصوت والصورة. توفّر Media3 بنية بسيطة مع إمكانية تخصيص فعّالة وموثوقية وتحسينات استنادًا إلى إمكانات الجهاز لإخفاء التعقيد الناتج عن التجزئة.
يقدّم هذا المستند مقدمة عن واجهات برمجة التطبيقات الرئيسية لتنفيذ حالات استخدام التشغيل والتعديل باستخدام Media3.
مكوّنات التشغيل
توفّر Media3 العديد من المكوّنات الرئيسية لحالات استخدام التشغيل. ستكون الفئات التي تتألف منها هذه المكوّنات مألوفة لك إذا كنت قد عملت مع مكتبات وسائط Android السابقة.
يوضّح الرسم البياني التالي كيفية تجميع هذه المكوّنات في تطبيق نموذجي.
 
  مشغّل الوسائط
مشغّل الوسائط هو أحد مكوّنات تطبيقك التي تتيح تشغيل ملفات الوسائط. في 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 من المهندسين الذين أنشأوها.
روابط مفيدة
- مركز مطوّري الوسائط
- مستندات ExoPlayer
- دليل نقل البيانات
- AndroidX Media3 على GitHub
- تطبيق نموذجي لجلسة وسائط Media3
- تطبيق Universal Android Music Player التجريبي
