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, 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 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 ExoPlayer phiên bản thấp hơn 1.6, bạn phải thêm một thực thể MetadataRenderer bổ sung vào cách triển khai ExoPlayer. Ví dụ sau đây thêm một thứ hai MetadataRenderer thực thể để 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();;