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.

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.
Link utili
- Media Developer Center
ExoPlayer
docs- Guida alla migrazione
- AndroidX Media3 su GitHub
- App di esempio per sessioni multimediali Media3
- App di esempio di lettore musicale universale per Android