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 uma configuração adicional, dependendo da implementação do player. Um stream pode conter vários tipos de metadados. O SDK do IMA adiciona metadados ao stream para recuperar informações de anúncios da mídia. Por exemplo, SCTE-35 é um tipo comum de segundo metadado.

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