Hỗ trợ nhiều loại siêu dữ liệu trong luồng

Đối với các luồng sử dụng hai loại siêu dữ liệu khác nhau, bạn có thể cần thiết lập thêm cấu hình tuỳ thuộc vào cách triển khai trình phát. Một luồng có thể chứa nhiều loại siêu dữ liệu. SDK IMA thêm siêu dữ liệu vào luồng để truy xuất thông tin quảng cáo từ nội dung nghe nhìn. Ví dụ: SCTE-35 là một loại siêu dữ liệu thứ hai phổ biến.

Đối với các ứng dụng sử dụng Media3 ExoPlayer phiên bản 1.6 trở lên, các luồng có hai loại siêu dữ liệu sẽ được xử lý theo mặc định.

Đối với các ứng dụng sử dụng phiên bản ExoPlayer thấp hơn phiên bản 1.6, bạn phải thêm một thực thể MetadataRenderer khác vào quá trình triển khai ExoPlayer. Ví dụ sau đây thêm một thực thể MetadataRenderer thứ hai để hỗ trợ hai loại siêu dữ liệu:

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();;