Aggiungi la dipendenza
Kotlin
implementation("androidx.media3:media3-ui:1.7.1")
Groovy
implementation "androidx.media3:media3-ui:1.7.1"
PlayerView
Il componente più importante è PlayerView
, una visualizzazione per la riproduzione dei contenuti multimediali.
PlayerView
mostra video, immagini, sottotitoli codificati e copertine degli album durante la riproduzione,
nonché i controlli di riproduzione.
PlayerView
ha un metodo setPlayer()
per collegare e scollegare (tramite
passaggio di null
) istanze Player
.
PlayerView
può essere utilizzato per la riproduzione di video, immagini e audio. Esegue il rendering
di video e sottotitoli in caso di riproduzione video, bitmap per la riproduzione di immagini
e può visualizzare le copertine incluse come metadati nei file audio. Puoi includerlo
nei file di layout come qualsiasi altro componente dell'interfaccia utente. Ad esempio, un PlayerView
può essere incluso nel seguente 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"/>
Lo snippet riportato sopra mostra che PlayerView
fornisce diversi attributi.
Questi attributi possono essere utilizzati per personalizzare il comportamento della visualizzazione, nonché il suo
aspetto. La maggior parte di questi attributi dispone di metodi setter corrispondenti, che
possono essere utilizzati per personalizzare la visualizzazione in fase di runtime. La documentazione di PlayerView
elenca questi attributi e metodi setter in modo più dettagliato.
Per un'esperienza utente più confortevole, valuta la possibilità di aggiungere l'attributo keepScreenOn
Android
o di impostare un wake lock, se utilizzi ExoPlayer. Puoi
esaminare altre azioni che mantengono attivo il dispositivo nelle pagine
relative al lavoro in background.
android:keepScreenOn="true"
Una volta dichiarata la visualizzazione nel file di layout, è possibile cercarla nel metodo
onCreate
dell'attività:
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); }
Una volta inizializzato, un player può essere collegato alla visualizzazione chiamando
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
è una delle PlayerView
sotto-visualizzazioni che contiene la
barra di avanzamento e i pulsanti per controllare la riproduzione. Tieni presente che PlayerControlView
non è
destinato a essere utilizzato come componente autonomo al di fuori di PlayerView
. Può
essere personalizzato impostando gli attributi su PlayerView
(che verranno passati a
PlayerControlView
) o fornendo un controller personalizzato con
android:id="@id/exo_controller
.
Scegli un tipo di piattaforma
L'attributo surface_type
di PlayerView
consente di impostare il tipo di superficie
utilizzata per la riproduzione video. I valori consentiti sono surface_view
, texture_view
,
spherical_gl_surface_view
(che è un valore speciale per la riproduzione di video sferici), video_decoder_gl_surface_view
(per il rendering video tramite renderer di estensioni) e none
(solo per la riproduzione audio). Per maggiori informazioni su
quale tipo di piattaforma scegliere, consulta la pagina Piattaforma.