Для потоков, использующих два разных типа метаданных, может потребоваться дополнительная настройка в зависимости от реализации вашего проигрывателя. Поток может содержать несколько типов метаданных. IMA SDK добавляет метаданные в поток для извлечения рекламной информации из медиаконтента. Например, SCTE-35 — распространённый второй тип метаданных.
Для приложений, использующих Media3 ExoPlayer v1.6 или выше, потоки с двумя типами метаданных обрабатываются по умолчанию.
Для приложений, использующих ExoPlayer версии ниже 1.6, необходимо добавить дополнительный экземпляр MetadataRenderer
в реализацию ExoPlayer. В следующем примере добавляется второй экземпляр MetadataRenderer
для поддержки двух типов метаданных:
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();;