شروع به کار با UI مبتنی بر Views
با مجموعهها، منظم بمانید
ذخیره و طبقهبندی محتوا براساس اولویتهای شما.
وابستگی را اضافه کنید
کاتلین
implementation("androidx.media3:media3-ui:1.8.0")
شیار
implementation "androidx.media3:media3-ui:1.8.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
این ویژگی ها و روش های تنظیم کننده را با جزئیات بیشتری فهرست می کند.
برای تجربه کاربری راحتتر، اگر از ExoPlayer استفاده میکنید، ویژگی keepScreenOn
Android را اضافه کنید یا یک wake lock را تنظیم کنید . میتوانید سایر اقداماتی را که دستگاه را بیدار نگه میدارند در صفحات کاری پسزمینه بررسی کنید.
android:keepScreenOn="true"
هنگامی که نمای در فایل 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 پیدا کنید.
محتوا و نمونه کدها در این صفحه مشمول پروانههای توصیفشده در پروانه محتوا هستند. جاوا و OpenJDK علامتهای تجاری یا علامتهای تجاری ثبتشده Oracle و/یا وابستههای آن هستند.
تاریخ آخرین بهروزرسانی 2025-08-27 بهوقت ساعت هماهنگ جهانی.
[[["درک آسان","easyToUnderstand","thumb-up"],["مشکلم را برطرف کرد","solvedMyProblem","thumb-up"],["غیره","otherUp","thumb-up"]],[["اطلاعاتی که نیاز دارم وجود ندارد","missingTheInformationINeed","thumb-down"],["بیشازحد پیچیده/ مراحل بسیار زیاد","tooComplicatedTooManySteps","thumb-down"],["قدیمی","outOfDate","thumb-down"],["مشکل ترجمه","translationIssue","thumb-down"],["مشکل کد / نمونهها","samplesCodeIssue","thumb-down"],["غیره","otherDown","thumb-down"]],["تاریخ آخرین بهروزرسانی 2025-08-27 بهوقت ساعت هماهنگ جهانی."],[],[],null,["Add the dependency \n\nKotlin \n\n```kotlin\nimplementation(\"androidx.media3:media3-ui:1.8.0\")\n```\n\nGroovy \n\n```groovy\nimplementation \"androidx.media3:media3-ui:1.8.0\"\n```\n\nPlayerView\n\nThe most important component is [`PlayerView`](/reference/androidx/media3/ui/PlayerView), a view for media playback.\n`PlayerView` displays video, images, subtitles, and album art during playback,\nas well as playback controls.\n\n`PlayerView` has a [`setPlayer()`](/reference/androidx/media3/ui/PlayerView#setPlayer(androidx.media3.common.Player)) method for attaching and detaching (by\npassing `null`) [`Player`](/reference/androidx/media3/common/Player) instances.\n\n`PlayerView` can be used for both video, image and audio playbacks. It renders\nvideo and subtitles in the case of video playback, bitmaps for image playback\nand can display artwork included as metadata in audio files. You can include it\nin your layout files like any other UI component. For example, a `PlayerView`\ncan be included with the following XML: \n\n \u003candroidx.media3.ui.PlayerView\n android:id=\"@+id/player_view\"\n android:layout_width=\"match_parent\"\n android:layout_height=\"match_parent\"\n app:show_buffering=\"when_playing\"\n app:show_shuffle_button=\"true\"/\u003e\n\nThe snippet above illustrates that `PlayerView` provides several attributes.\nThese attributes can be used to customize the view's behavior, as well as its\nlook and feel. Most of these attributes have corresponding setter methods, which\ncan be used to customize the view at runtime. The `PlayerView` documentation\nlists these attributes and setter methods in more detail.\n\nFor a more comfortable user experience, consider adding the `keepScreenOn` Android\nattribute or [setting a wake lock](/reference/androidx/media3/exoplayer/ExoPlayer#setWakeMode(int)), if you are using ExoPlayer. You can\ninvestigate other actions that keep the device awake in the [background work\npages](/develop/background-work/background-tasks/awake). \n\n android:keepScreenOn=\"true\"\n\nOnce the view is declared in the layout file, it can be looked up in the\n`onCreate` method of the activity: \n\nKotlin \n\n```kotlin\noverride fun onCreate(savedInstanceState: Bundle?) {\n super.onCreate(savedInstanceState)\n // ...\n playerView = findViewById(R.id.player_view)\n}\n```\n\nJava \n\n```java\n@Override\nprotected void onCreate(Bundle savedInstanceState) {\n super.onCreate(savedInstanceState);\n // ...\n playerView = findViewById(R.id.player_view);\n}\n```\n\n\u003cbr /\u003e\n\nWhen a player has been initialized, it can be attached to the view by calling\n`setPlayer`: \n\nKotlin \n\n```kotlin\n// Instantiate the player.\nval player = ExoPlayer.Builder(context).build()\n// Attach player to the view.\nplayerView.player = player\n// Set the media item to be played.\nplayer.setMediaItem(mediaItem)\n// Prepare the player.\nplayer.prepare()\n```\n\nJava \n\n```java\n// Instantiate the player.\nplayer = new ExoPlayer.Builder(context).build();\n// Attach player to the view.\nplayerView.setPlayer(player);\n// Set the media item to be played.\nplayer.setMediaItem(mediaItem);\n// Prepare the player.\nplayer.prepare();\n```\n\n\u003cbr /\u003e\n\nPlayerControlView\n\n[`PlayerControlView`](/reference/androidx/media3/ui/PlayerControlView) is one of `PlayerView` sub-Views that contains the\nprogress bar and buttons to control playback. Note that `PlayerControlView` is\nnot intended to be used a standalone component outside of `PlayerView`. It can\nbe customized by setting attributes on `PlayerView` (which will be passed onto\n`PlayerControlView`) or providing a custom controller with\n`android:id=\"@id/exo_controller`.\n\nChoose a surface type\n\nThe `surface_type` attribute of `PlayerView` lets you set the type of surface\nused for video playback. The allowed values are `surface_view`, `texture_view`,\n`spherical_gl_surface_view` (which is a special value for spherical video\nplayback), `video_decoder_gl_surface_view` (which is for video rendering using\nextension renderers) and `none` (for audio playback only). More information on\nwhich surface type to pick can be found [on the Surface page](/media/media3/ui/surface)."]]