W przypadku transmisji korzystających z 2 różnych typów metadanych może być konieczne skonfigurowanie dodatkowych ustawień w zależności od implementacji odtwarzacza. Transmisja może zawierać wiele typów metadanych. Pakiet IMA SDK dodaje metadane do transmisji, aby pobierać informacje o reklamach z multimediów. Częstym drugim typem metadanych jest np. SCTE-35.
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 ExoPlayer w wersji starszej niż 1.6 musisz dodać dodatkową
MetadataRenderer
instancję do implementacji ExoPlayer. Poniższy przykład dodaje 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();;