Prise en charge de plusieurs types de métadonnées dans les flux

Pour les flux utilisant deux types de métadonnées différents, vous devrez peut-être configurer des paramètres supplémentaires 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 les informations sur les annonces à partir du contenu multimédia. Par exemple, SCTE-35 est un deuxième type de métadonnées courant.

Pour les applications qui utilisent Media3 ExoPlayer v1.6 ou version ultérieure, les flux avec deux types de métadonnées sont gérés par défaut.

Pour les applications qui utilisent une version d'ExoPlayer antérieure à la version 1.6, vous devez ajouter une instance MetadataRenderer supplémentaire à votre implémentation d'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();;