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 a la transmisión para recuperar información de los anuncios 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 inferior a la v1.6, debes agregar una instancia adicional MetadataRenderer a tu implementación de ExoPlayer. En el siguiente ejemplo, se agrega una segunda MetadataRenderer instancia 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();;