Obsługa wielu typów metadanych w strumieniach

W przypadku strumieni używających 2 rodzaje metadanych może być konieczne dodatkowe skonfigurowanie w zależności od implementacji odtwarzacza. Strumień może zawierać wiele typów metadanych. Pakiet IMA SDK dodaje do strumienia metadane, aby pobierać informacje o reklamach z mediów. Na przykład SCTE-35 to typowy drugi typ metadanych.

W przypadku aplikacji korzystających z Media3 ExoPlayer w wersji 1.6 lub nowszej transmisje z 2 typami metadanych są obsługiwane domyślnie.

W przypadku aplikacji korzystających z wersji ExoPlayer niższej niż 1.6 musisz dodać do implementacji ExoPlayera dodatkowy egzemplarz MetadataRenderer. W tym przykładzie dodajemy drugą instancję MetadataRenderer, aby obsługiwać 2 typy metadanych:

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