对于使用两种不同类型元数据的数据流,您可能需要根据播放器实现情况进行额外的配置设置。一个流可以包含多种类型的元数据。IMA SDK 会向视频流添加元数据,以便从媒体中检索广告信息。例如,SCTE-35 是一种常见的第二元数据类型。
对于使用 Media3 ExoPlayer v1.6 或更高版本的应用,默认情况下会处理具有两种元数据类型的视频流。
对于使用低于 v1.6 的 ExoPlayer 版本的应用,您必须向 ExoPlayer 实现添加额外的 MetadataRenderer
实例。以下示例添加了第二个 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();;