Suporte a vários tipos de metadados em transmissões

Para transmissões que usam dois tipos diferentes de metadados, talvez seja necessário fazer mais configurações, dependendo da implementação do player. Um stream pode conter vários tipos de metadados. O SDK do IMA adiciona metadados ao fluxo para extrair informações do anúncio da mídia. Por exemplo, SCTE-35 é um segundo tipo de metadados comum.

Para apps que usam o Media3 ExoPlayer v1.6 ou mais recente, as transmissões com dois tipos de metadados são processadas por padrão.

Para apps que usam uma versão do ExoPlayer anterior à v1.6, adicione uma instância MetadataRenderer extra à implementação do ExoPlayer. O exemplo a seguir adiciona uma segunda instância de MetadataRenderer para oferecer suporte a dois tipos de metadados:

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