Dodawanie zależności
Kotlin
implementation("androidx.media3:media3-ui:1.7.1")
Groovy
implementation "androidx.media3:media3-ui:1.7.1"
PlayerView
Najważniejszym komponentem jest PlayerView
, czyli widok odtwarzania multimediów.
PlayerView
wyświetla film, obrazy, napisy i okładkę albumu podczas odtwarzania, a także elementy sterujące odtwarzaniem.
PlayerView
ma metodę setPlayer()
do dołączania i odłączania instancji Player
(przez przekazywanie null
).
PlayerView
można używać do odtwarzania filmów, obrazów i plików audio. W przypadku odtwarzania wideo renderuje wideo i napisy, w przypadku odtwarzania obrazów – mapy bitowe, a także może wyświetlać okładki dołączone jako metadane w plikach audio. Możesz go uwzględnić w plikach układu tak samo jak każdy inny komponent interfejsu. Na przykład element PlayerView
może być zawarty w tym kodzie 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"/>
Fragment powyżej pokazuje, że PlayerView
udostępnia kilka atrybutów.
Atrybuty te można wykorzystać do dostosowania działania widoku, a także jego wyglądu. Większość tych atrybutów ma odpowiednie metody ustawiające, których można używać do dostosowywania widoku w czasie działania programu. Więcej informacji o tych atrybutach i metodach ustawiających znajdziesz w PlayerView
dokumentacji.
Aby zapewnić użytkownikom większy komfort, rozważ dodanie atrybutu keepScreenOn
Android lub ustawienie blokady wybudzania, jeśli używasz ExoPlayera. Inne działania, które utrzymują urządzenie w stanie aktywności, możesz sprawdzić na stronach dotyczących pracy w tle.
android:keepScreenOn="true"
Po zadeklarowaniu widoku w pliku układu można go wyszukać w metodzie onCreate
działania:
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); }
Po zainicjowaniu odtwarzacza można go dołączyć do widoku, wywołując: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
to jeden z PlayerView
podrzędnych widoków, który zawiera pasek postępu i przyciski sterujące odtwarzaniem. Pamiętaj, że element PlayerControlView
nie jest przeznaczony do używania jako samodzielny komponent poza elementem PlayerView
. Można go dostosować, ustawiając atrybuty w PlayerView
(które zostaną przekazane do PlayerControlView
) lub podając niestandardowy kontroler z android:id="@id/exo_controller
.
Wybierz typ powierzchni
Atrybut surface_type
elementu PlayerView
umożliwia ustawienie typu powierzchni używanej do odtwarzania filmu. Dozwolone wartości to surface_view
, texture_view
, spherical_gl_surface_view
(wartość specjalna w przypadku odtwarzania filmów sferycznych), video_decoder_gl_surface_view
(w przypadku renderowania filmów za pomocą renderów rozszerzeń) i none
(w przypadku odtwarzania tylko dźwięku). Więcej informacji o tym, jaki typ platformy wybrać, znajdziesz na stronie Platforma.