إضافة التبعية
Kotlin
implementation("androidx.media3:media3-ui:1.11.1")
أنيق
implementation "androidx.media3:media3-ui:1.11.1"
PlayerView
أهم مكوّن هو PlayerView، وهو طريقة عرض لتشغيل الوسائط.
يعرض "PlayerView" الفيديو والصور والترجمة وصورة الألبوم أثناء التشغيل،
بالإضافة إلى عناصر التحكّم في التشغيل.
يحتوي PlayerView على طريقة setPlayer() لإرفاق وفصل (عن طريق تمرير null) مثيلات Player.
يمكن استخدام PlayerView لتشغيل الفيديوهات والصور والمحتوى الصوتي. ويعرض
الفيديو والترجمة في حال تشغيل الفيديو، والصور النقطية في حال تشغيل الصور،
ويمكنه عرض الأعمال الفنية المضمّنة كبيانات وصفية في الملفات الصوتية. ويمكنك تضمينه في ملفات التنسيق مثل أي عنصر آخر من عناصر واجهة المستخدم. على سبيل المثال، يمكن تضمين PlayerView
باستخدام ملف XML التالي:
<androidx.media3.ui.PlayerView
android:id="@+id/player_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:show_buffering="when_playing"
app:show_shuffle_button="true"/>
يوضّح المقتطف أعلاه أنّ PlayerView يوفّر عدة سمات.
يمكن استخدام هذه السمات لتخصيص سلوك العرض، بالإضافة إلى مظهره. تحتوي معظم هذه السمات على طرق ضبط مقابلة، والتي يمكن استخدامها لتخصيص العرض في وقت التشغيل. تسرد مستندات PlayerView هذه السمات وطرق الضبط بمزيد من التفصيل.
لتقديم تجربة أكثر راحة للمستخدمين، ننصحك بإضافة سمة keepScreenOn
في Android أو ضبط قفل التنشيط إذا كنت تستخدم ExoPlayer. يمكنك
التحقيق في الإجراءات الأخرى التي تبقي الجهاز نشطًا في صفحات
العمل في الخلفية.
android:keepScreenOn="true"
بعد الإعلان عن طريقة العرض في ملف التنسيق، يمكن البحث عنها في إجراء onCreate الخاص بالنشاط:
Kotlin
override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) // ... playerView = findViewById(R.id.player_view) }
Java
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // ... playerView = findViewById(R.id.player_view); }
عند إعداد مشغّل، يمكن إرفاقه بالعرض من خلال استدعاء
setPlayer:
Kotlin
// Instantiate the player. val player = ExoPlayer.Builder(context).build() // Attach player to the view. playerView.player = player // Set the media item to be played. player.setMediaItem(mediaItem) // Prepare the player. player.prepare()
Java
// Instantiate the player. player = new ExoPlayer.Builder(context).build(); // Attach player to the view. playerView.setPlayer(player); // Set the media item to be played. player.setMediaItem(mediaItem); // Prepare the player. player.prepare();
PlayerControlView
PlayerControlView هو أحد طرق العرض الفرعية في PlayerView التي تحتوي على
شريط التقدم وأزرار للتحكّم في التشغيل. يُرجى العِلم أنّ PlayerControlView ليس مخصّصًا للاستخدام كمكوّن مستقل خارج PlayerView. ويمكن تخصيصها من خلال ضبط السمات في PlayerView (التي سيتم تمريرها إلى PlayerControlView) أو توفير وحدة تحكّم مخصّصة باستخدام android:id="@id/exo_controller.
اختيار نوع السطح
تتيح لك السمة surface_type في PlayerView ضبط نوع مساحة العرض
المستخدَمة لتشغيل الفيديو. القيم المسموح بها هي surface_view وtexture_view وspherical_gl_surface_view (وهي قيمة خاصة لتشغيل الفيديو الكروي) وvideo_decoder_gl_surface_view (وهي مخصّصة لعرض الفيديو باستخدام أدوات عرض الإضافات) وnone (لتشغيل الصوت فقط). يمكنك العثور على مزيد من المعلومات حول نوع السطح الذي يجب اختياره في صفحة "السطح".