پشتیبانی از چندین نوع ابرداده در جریان ها

برای جریان‌هایی که از دو نوع متادیتا متفاوت استفاده می‌کنند، ممکن است بسته به اجرای پخش‌کننده‌تان به تنظیمات بیشتری نیاز داشته باشید. یک جریان می‌تواند شامل چندین نوع ابرداده باشد. IMA SDK متادیتا را به جریان اضافه می کند تا اطلاعات آگهی را از رسانه بازیابی کند. به عنوان مثال، SCTE-35 یک نوع متاداده دوم رایج است.

برای برنامه‌هایی که از Media3 ExoPlayer نسخه 1.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();;