Aggiungi la dipendenza
Kotlin
implementation("androidx.media3:media3-ui:1.6.0")
Groovy
implementation "androidx.media3:media3-ui:1.6.0"
PlayerView
Il componente più importante è PlayerView
, una visualizzazione per la riproduzione di contenuti multimediali.
PlayerView
mostra video, immagini, sottotitoli e copertine durante la riproduzione, nonché i controlli di riproduzione.
PlayerView
ha un metodo setPlayer()
per agganciare e sganciare (passando null
) le istanze Player
.
PlayerView
può essere utilizzato sia per la riproduzione di video, immagini e audio. Esegue il rendering di video e sottotitoli nel caso della riproduzione di video, bitmap per la riproduzione di immagini e può mostrare l'artwork incluso 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 con il 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 ha metodi di impostazione corrispondenti, che possono essere utilizzati per personalizzare la visualizzazione in fase di esecuzione. La documentazione di PlayerView
elenca questi attributi e metodi setter in modo più dettagliato.
Una volta dichiarata nel file di layout, la visualizzazione può essere cercata 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 sottovisualizzazioni PlayerView
che contiene la barra di avanzamento e i pulsanti per controllare la riproduzione. Tieni presente che PlayerControlView
non è pensato per essere utilizzato come componente autonomo al di fuori di PlayerView
. Può essere personalizzato impostando gli attributi su PlayerView
(che verranno trasmessi a PlayerControlView
) o fornendo un controller personalizzato con android:id="@id/exo_controller
.
Scegli un tipo di superficie
L'attributo surface_type
di PlayerView
ti consente di impostare il tipo di superficie
utilizzata per la riproduzione dei video. I valori consentiti sono surface_view
, texture_view
,
spherical_gl_surface_view
(un valore speciale per la riproduzione di video sferici), video_decoder_gl_surface_view
(per il rendering video utilizzando i visualizzatori di estensioni) enone
(solo per la riproduzione audio). Per ulteriori informazioni sul tipo di piattaforma da scegliere, consulta la pagina Piattaforma.