Unterstützung mehrerer Metadatentypen in Streams

Bei Streams, für die zwei verschiedene Metadatentypen verwendet werden, ist je nach Playerimplementierung möglicherweise eine zusätzliche Konfiguration erforderlich. Ein Stream kann mehrere Arten von Metadaten enthalten. Das IMA SDK fügt dem Stream Metadaten hinzu, um Anzeigeninformationen aus den Medien abzurufen. SCTE-35 ist beispielsweise ein gängiger zweiter Metadatentyp.

Bei Apps, die Media3 ExoPlayer v1.6 oder höher verwenden, werden Streams mit zwei Metadatentypen standardmäßig verarbeitet.

Bei Apps, die eine ExoPlayer-Version niedriger als 1.6 verwenden, müssen Sie Ihrer ExoPlayer-Implementierung eine zusätzliche MetadataRenderer-Instanz hinzufügen. Im folgenden Beispiel wird eine zweite MetadataRenderer-Instanz hinzugefügt, um zwei Metadatentypen zu unterstützen:

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