Supporta più tipi di metadati negli stream

Per gli stream che utilizzano due diversi tipi di metadati, potrebbe essere necessaria una configurazione aggiuntiva a seconda dell'implementazione del player. Uno stream può contenere più tipi di metadati. L'SDK IMA aggiunge metadati allo stream per recuperare le informazioni sugli annunci dai contenuti multimediali. Ad esempio, SCTE-35 è un secondo tipo di metadati comune.

Per le app che utilizzano Media3 ExoPlayer 1.6 o versioni successive, gli stream con due tipi di metadati vengono gestiti per impostazione predefinita.

Per le app che utilizzano una versione di ExoPlayer precedente alla 1.6, devi aggiungere un'altra istanza di MetadataRenderer all'implementazione di ExoPlayer. L'esempio seguente aggiunge una seconda istanza MetadataRenderer per supportare due tipi di metadati:

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