Support multiple metadata types in streams

For streams using two different types of metadata, you might need additional configuration setup depending on your player implementation. A stream can contain multiple types of metadata. The IMA SDK adds metadata to the stream to retrieve ad information from the media. For example, SCTE-35 is a common second metadata type.

For apps using Media3 ExoPlayer v1.6 or higher, streams with two metadata types are handled by default.

For apps using an ExoPlayer version lower than v1.6, you must add an additional MetadataRenderer instance to your ExoPlayer implementation. The following example adds a second MetadataRenderer instance to support two metadata types:

  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 
 ();; 
 
Create a Mobile Website
View Site in Mobile | Classic
Share by: