شروع به کار با UI مبتنی بر Views

وابستگی را اضافه کنید

کاتلین

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

شیار

implementation "androidx.media3:media3-ui:1.6.0"

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 این ویژگی ها و روش های تنظیم کننده را با جزئیات بیشتری فهرست می کند.

هنگامی که نمای در فایل layout اعلام شد، می توان آن را در متد onCreate فعالیت جستجو کرد:

کاتلین

override fun onCreate(savedInstanceState: Bundle?) {
  super.onCreate(savedInstanceState)
  // ...
  playerView = findViewById(R.id.player_view)
}

جاوا

@Override
protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  // ...
  playerView = findViewById(R.id.player_view);
}

هنگامی که یک پخش کننده مقداردهی اولیه شد، می توان آن را با فراخوانی setPlayer به view متصل کرد:

کاتلین

// 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()

جاوا

// 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 (فقط برای پخش صدا). اطلاعات بیشتر در مورد نوع سطحی که باید انتخاب کنید را می توانید در صفحه Surface پیدا کنید.