Dodawanie zależności
Kotlin
implementation("androidx.media3:media3-ui:1.6.0")
Groovy
implementation "androidx.media3:media3-ui:1.6.0"
PlayerView
Najważniejszym elementem 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łączania i odłączania (z ominięciem null
) instancji Player
.
PlayerView
może służyć do odtwarzania filmów, obrazów i dźwięku. Renderuje on filmy i napisy w przypadku odtwarzania wideo, bitmapy w przypadku odtwarzania obrazu oraz może wyświetlać elementy graficzne zawarte w metadanych w plikach audio. Możesz go umieścić w plikach układu tak samo jak każdy inny komponent UI. Na przykład pole PlayerView
może być uwzględnione w tym pliku 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"/>
Wycinek powyżej pokazuje, że PlayerView
zawiera kilka atrybutów.
Atrybutów tych można używać do dostosowywania zachowania widoku, a także jego wyglądu i wygody. Większość z tych atrybutów ma odpowiednie metody settera, których można używać do dostosowywania widoku w czasie wykonywania. Więcej informacji o tych atrybutach i metodach znajdziesz w dokumentacji PlayerView
.
Gdy widok zostanie zadeklarowany w pliku układu, można go wyszukać w metodie onCreate
aktywności:
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 funkcję 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 widoków podrzędnych PlayerView
, który zawiera pasek postępu i przyciski do sterowania odtwarzaniem. Pamiętaj, że PlayerControlView
nie jest przeznaczony do używania jako samodzielny komponent poza PlayerView
. Można go dostosować, ustawiając atrybuty w komponencie PlayerView
(które zostaną przekazane do komponentu PlayerControlView
) lub podając niestandardowy kontroler w komponencie android:id="@id/exo_controller
.
Wybieranie typu powierzchni
Atrybut surface_type
elementu PlayerView
pozwala określić typ powierzchni, na której wyświetlany jest film. Dozwolone wartości to surface_view
, texture_view
, spherical_gl_surface_view
(wartość specjalna dla odtwarzania filmów sferycznych), video_decoder_gl_surface_view
(renderowanie filmów za pomocą rendererów rozszerzeń) i none
(tylko do odtwarzania dźwięku). Więcej informacji o tym, który typ powierzchni wybrać, znajdziesz na stronie Surface.