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