स्ट्रीम में कई तरह के मेटाडेटा का इस्तेमाल किया जा सकता है

दो अलग-अलग तरह के मेटाडेटा का इस्तेमाल करने वाले स्ट्रीम के लिए, आपको अपने प्लेयर के लागू करने के तरीके के हिसाब से, अतिरिक्त कॉन्फ़िगरेशन सेट अप करने की ज़रूरत पड़ सकती है. किसी स्ट्रीम में, कई तरह का मेटाडेटा हो सकता है. IMA SDK, मीडिया से विज्ञापन की जानकारी पाने के लिए, स्ट्रीम में मेटाडेटा जोड़ता है. उदाहरण के लिए, SCTE-35, दूसरे मेटाडेटा का एक सामान्य टाइप है.

Media3 ExoPlayer के v1.6 या उससे नए वर्शन का इस्तेमाल करने वाले ऐप्लिकेशन के लिए, दो तरह के मेटाडेटा वाले स्ट्रीम को डिफ़ॉल्ट रूप से हैंडल किया जाता है.

ExoPlayer के v1.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();;