Introduzione a Jetpack Media3

Jetpack Media3 è il nuovo punto di riferimento per le librerie multimediali che consente alle app Android di mostrare esperienze audio e visive avanzate. Media3 offre un'architettura semplice con potenti personalizzazione, affidabilità e ottimizzazioni basate sulle capacità dei dispositivi per astrarre la complessità associata alla frammentazione.

Questo documento fornisce un'introduzione alle API chiave per implementare la riproduzione e la modifica di casi d'uso con Media3.

Componenti di riproduzione

Media3 offre diversi componenti chiave per i casi d'uso relativi alla riproduzione. Le classi che compongono questi componenti ti saranno familiari se hai lavorato con le precedenti librerie Android.

Il seguente diagramma mostra come questi componenti vengono combinati in una tipica app.

I diversi componenti di un'app multimediale che utilizza Media3 si connettono tra loro in diversi modi semplici grazie alla condivisione di interfacce e classi.
Figura 1: componenti dell'app multimediale

Il media player

Un media player è un componente della tua app che consente la riproduzione di file multimediali. In Media3, troverai:

Corso Descrizione Nota di implementazione
Player Player è un'interfaccia che definisce le funzionalità tradizionali di alto livello per un media player, come la riproduzione, la messa in pausa e la ricerca. In Media3, l'interfaccia Player è un'API comune implementata o utilizzata da diversi componenti, ad esempio MediaSession e MediaController.
ExoPlayer ExoPlayer è l'implementazione predefinita dell'interfaccia Player in Media3.

Scopri di più su Media3 ExoPlayer

La sessione multimediale

Una sessione multimediale offre un modo universale di interagire con un media player. Ciò consente a un'app di pubblicizzare la riproduzione di contenuti multimediali a fonti esterne e di ricevere richieste di controllo della riproduzione da fonti esterne. In Media3, troverai:

Corso Descrizione Nota di implementazione
MediaSession Le sessioni multimediali consentono alla tua app di interagire con un audio o video player. Pubblicizzano all'esterno la riproduzione di contenuti multimediali e ricevono comandi di riproduzione da fonti esterne. In Media3, un MediaSession ha bisogno di un Player per eseguire i comandi e ottenere lo stato attuale.
MediaSessionService MediaSessionService include una sessione multimediale e il relativo player associato in un servizio separato dal Activity principale dell'app per facilitare la riproduzione in background.
MediaController La classe MediaController viene generalmente utilizzata per inviare comandi dall'esterno dell'app, ad esempio da altre app o dal sistema stesso. I comandi vengono inviati all'elemento Player sottostante del MediaSession associato. La classe MediaController implementa l'interfaccia Player, ma quando chiami un metodo il comando viene inviato alla MediaSession connessa. Le app client come l'Assistente Google possono utilizzare MediaController per controllare la riproduzione in una sessione collegata.
MediaLibraryService MediaLibraryService è simile a MediaSessionService, tranne per il fatto che include API aggiuntive per consentirti di pubblicare la tua raccolta di contenuti nelle app client.
MediaBrowser Il corso MediaBrowser consente all'utente di esplorare la raccolta di contenuti di un'app multimediale e selezionare gli elementi da riprodurre. La classe MediaBrowser implementa entrambe le interfacce MediaController e Player. Analogamente a MediaController, le app client come Android Auto in genere implementano MediaBrowser.

Scopri di più su MediaSession Media3

I componenti dell'interfaccia utente

Media3 fornisce componenti predefiniti dell'interfaccia utente per la visualizzazione dei video e il controllo della riproduzione.

Corso Descrizione Nota di implementazione
PlayerView Un valore predefinito View per mostrare i controlli di riproduzione e video. Si connette a ExoPlayer, MediaController o a qualsiasi altro Player personalizzato.

Scopri di più sulla UI di Media3

Modifica dei componenti

Media3 include le API Transformer per casi d'uso di editing multimediale, tra cui:

  • Elaborazione di audio e video, ad esempio l'aggiunta di filtri ed effetti
  • Gestione di formati speciali, come video HDR e video in slow-motion
  • Composizione, ad esempio combinazione di più file di input
  • Esportazione dell'output finale in un file
Corso Descrizione Nota di implementazione
Transformer Utilizza la classe Transformer per avviare e arrestare le trasformazioni e per verificare la presenza di aggiornamenti sull'avanzamento di una trasformazione in esecuzione.
Effects Un oggetto Effects è una raccolta di effetti audio e video da applicare a un elemento multimediale.
EditedMediaItem Un EditedMediaItem rappresenta un elemento multimediale da elaborare e le modifiche da applicare. Puoi utilizzare ExoPlayer per visualizzare l'anteprima degli effetti aggiunti a un elemento multimediale prima di iniziare il processo di esportazione.

Scopri di più su Media3 Transformer

Video introduttivo

Guarda il video qui sotto per un'introduzione a Media3 da parte dei tecnici che l'hanno sviluppato.