Pour les flux utilisant deux types de métadonnées différents, vous devrez peut-être effectuer une configuration supplémentaire en fonction de l'implémentation de votre lecteur. Un flux peut contenir plusieurs types de métadonnées. Le SDK IMA ajoute des métadonnées au flux pour récupérer des informations sur les annonces à partir du média. Par exemple, SCTE-35 est un deuxième type de métadonnées courant.
Pour les applications utilisant Media3 ExoPlayer v1.6 ou une version ultérieure, les flux avec deux types de métadonnées sont gérés par défaut.
Pour les applications utilisant une version d'ExoPlayer antérieure à la version 1.6, vous devez ajouter une instance supplémentaire
MetadataRenderer
à votre implémentation ExoPlayer. L'exemple suivant ajoute une deuxième instance MetadataRenderer pour prendre en charge deux types de métadonnées :
RenderersFactory defaultRenderersFactory = new DefaultRenderersFactory(context) {
@Override
protected void buildMetadataRenderers(Context context, MetadataOutput output,
Looper outputLooper, @ExtensionRendererMode int extensionRendererMode,
ArrayList<Renderer> out) {
// Add a `MetadataRenderer` for each type of metadata. This example adds 2.
out.add(new MetadataRenderer(output, outputLooper));
out.add(new MetadataRenderer(output, outputLooper));
}
};
new ExoPlayer.Builder()
.setRenderersFactory(defaultRenderersFactory)
.setMediaSourceFactory(mediaSourceFactory)
.build();;