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 tipo di metadati secondari comune.

Per le app che utilizzano Media3 ExoPlayer v1.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 v1.6, devi aggiungere un'istanza MetadataRenderer aggiuntiva 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();;