Introduzione a Jetpack Media3

Jetpack Media3 è la nuova casa delle librerie multimediali che consente alle app per Android di mostrare esperienze audio e visive ricche. Media3 offre un'architettura semplice con ottimizzazioni, affidabilità e personalizzazioni efficaci in base alle funzionalità dei dispositivi per sgravare la complessità della frammentazione.

Questo documento fornisce un'introduzione alle API chiave per l'implementazione di casi d'uso di riproduzione e editing con Media3.

Componenti di riproduzione

Media3 offre diversi componenti chiave per i casi d'uso di riproduzione. Le classi che costituiscono questi componenti ti saranno familiari se hai già lavorato con le librerie multimediali Android precedenti.

Il seguente diagramma mostra come questi componenti si combinano in un'app tipica.

I diversi componenti di un'app multimediale che utilizza Media3 si collegano 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 sull'implementazione
Player Player è un'interfaccia che definisce le funzionalità tradizionali di alto livello per un media player, come la possibilità di riprodurre, mettere in pausa e cercare. 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 per interagire con un media player. In questo modo, un'app può pubblicizzare la riproduzione di contenuti multimediali a origini esterne e ricevere richieste di controllo della riproduzione da origini esterne. In Media3 troverai:

Corso Descrizione Nota sull'implementazione
MediaSession Le sessioni multimediali consentono alla tua app di interagire con un media player audio o video. Pubblicizza la riproduzione di contenuti multimediali all'esterno e riceve comandi di riproduzione da fonti esterne. In Media3, un MediaSession ha bisogno di un Player per eseguire comandi e ottenere lo stato corrente.
MediaSessionService Il MediaSessionService contiene una sessione multimediale e il relativo player in un servizio separato dal Activity principale della tua 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 al Player sottostante del MediaSession associato. La classe MediaController implementa l'interfaccia Player, ma quando viene chiamato un metodo, MediaController invia il comando al MediaSession collegato. Le app client come l'Assistente Google possono utilizzare MediaController per controllare la riproduzione in una sessione connessa.
MediaLibraryService Un MediaLibraryService è simile a un MediaSessionService, tranne per il fatto che include API aggiuntive per consentirti di pubblicare la tua raccolta di contenuti nelle app client.
MediaBrowser La classe MediaBrowser consente all'utente di navigare nella raccolta di contenuti di un'app multimediale e di selezionare gli elementi da riprodurre. La classe MediaBrowser implementa sia le interfacce MediaController che Player. Analogamente a MediaController, le app client come Android Auto in genere implementano MediaBrowser.

Scopri di più su Media3 MediaSession

Componenti dell'interfaccia utente

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

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

Scopri di più sull'interfaccia Media3

Modificare i componenti

Media3 include le API Transformer per i casi d'uso di modifica dei contenuti multimediali, 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 la combinazione di più file di input
  • Esportazione dell'output finale in un file
Corso Descrizione Nota sull'implementazione
Transformer Utilizza la classe Transformer per avviare e interrompere le trasformazioni e per verificare gli aggiornamenti di 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 media prima di avviare il processo di esportazione.

Scopri di più su Media3 Transformer

Video introduttivo

Guarda il video di seguito per un'introduzione a Media3 da parte degli ingegneri che l'hanno sviluppato.