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

Đối với những luồng phát sử dụng 2 loại siêu dữ liệu, bạn có thể cần thiết lập cấu hình bổ sung 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 phát có 2 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 ExoPlayer phiên bản thấp hơn v1.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 sẽ thêm một thực thể MetadataRenderer thứ hai để hỗ trợ 2 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();;