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, los flujos 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 de MetadataRenderer
adicional 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();;