Добавьте зависимость
Котлин
implementation("androidx.media3:media3-ui:1.9.2")
Классный
implementation "androidx.media3:media3-ui:1.9.2"
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 активности:
Котлин
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 :
Котлин
// 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 (только для воспроизведения звука). Более подробную информацию о выборе типа поверхности можно найти на странице Surface .
Добавьте зависимость
Котлин
implementation("androidx.media3:media3-ui:1.9.2")
Классный
implementation "androidx.media3:media3-ui:1.9.2"
PlayerView
Наиболее важным компонентом является PlayerView , представление для воспроизведения мультимедиа. PlayerView отображает видео, изображения, субтитры и обложки альбомов во время воспроизведения, а также элементы управления воспроизведением.
PlayerView есть метод setPlayer() для добавления и отсоединения (путем передачи значения null ) экземпляров Player .
PlayerView can be used for both video, image and audio playbacks. It renders video and subtitles in the case of video playback, bitmaps for image playback and can display artwork included as metadata in audio files. You can include it in your layout files like any other UI component. For example, a PlayerView can be included with the following 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 активности:
Котлин
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 :
Котлин
// 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 (только для воспроизведения звука). Более подробную информацию о выборе типа поверхности можно найти на странице Surface .