بدء استخدام واجهة المستخدِم المستندة إلى "العروض"

إضافة التبعية

Kotlin

implementation("androidx.media3:media3-ui:1.6.1")

رائع

implementation "androidx.media3:media3-ui:1.6.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 (لتشغيل الصوت فقط). يمكنك العثور على مزيد من المعلومات حول نوع المساحة التي تريد اختيارها في صفحة "المساحة".