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