پشتیبانی از انواع مختلف فراداده در جاری‌سازی‌ها

برای جاری‌سازی‌هایی که از دو نوع مختلف فراداده استفاده می‌کنند، ممکن است بسته به پیاده‌سازی پخش‌کننده شما، به پیکربندی اضافی نیاز داشته باشید. یک جاری‌سازی می‌تواند شامل چندین نوع فراداده باشد. کیت توسعه نرم‌افزار آگهی‌های رسانه‌ای تعاملی فراداده‌ای به جاری‌سازی اضافه می‌کند تا اطلاعات آگهی را از رسانه بازیابی کند. برای مثال، 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();;