Compatibilidad con varios tipos de metadatos en transmisiones

En el caso de las transmisiones que usan dos tipos diferentes de metadatos, es posible que necesites una configuración adicional según la implementación del reproductor. Una transmisión puede contener varios tipos de metadatos. El SDK de IMA agrega metadatos al flujo para recuperar información del anuncio del contenido multimedia. Por ejemplo, SCTE-35 es un segundo tipo de metadatos común.

En el caso de las apps que usan Media3 ExoPlayer v1.6 o versiones posteriores, las transmisiones con dos tipos de metadatos se controlan de forma predeterminada.

En el caso de las apps que usan una versión de ExoPlayer anterior a la v1.6, debes agregar una instancia adicional de MetadataRenderer a tu implementación de ExoPlayer. En el siguiente ejemplo, se agrega una segunda instancia de MetadataRenderer para admitir dos tipos de metadatos:

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();;