支援串流中的多種中繼資料類型

如果串流使用兩種不同類型的中繼資料,您可能需要額外設定,具體視播放器實作方式而定。一個串流可以包含多種中繼資料。IMA SDK 會在串流中加入中繼資料,從媒體擷取廣告資訊。舉例來說,SCTE-35 是常見的第二個中繼資料類型。

如果應用程式使用 Media3 ExoPlayer 1.6 以上版本,系統預設會處理具有兩種中繼資料類型的串流。

如果應用程式使用的 ExoPlayer 版本低於 1.6 版,您必須在 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();;