对于使用两种不同类型的元数据的流,您可能需要进行额外的配置设置,具体取决于您的播放器实现。一个流可以包含多种类型的元数据。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();;