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

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

برای برنامه‌هایی که از Media3 ExoPlayer نسخه ۱.۶ یا بالاتر استفاده می‌کنند، جریان‌هایی با دو نوع فراداده به طور پیش‌فرض مدیریت می‌شوند.

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