Viết ứng dụng người gửi cho SDK CAF DAI

Không giống như các công cụ tích hợp trước đây giữa Chromecast và DAI, SDK DAI của CAF tập trung chủ yếu vào việc duy trì các tiêu chuẩn và kỳ vọng do Khung ứng dụng của Cast (Cast Application Framework) đặt ra. Do đó, không có yêu cầu đối với việc tuỳ chỉnh ở mức độ cao các ứng dụng dành cho người gửi nhằm quản lý hoạt động giao tiếp hai chiều giữa IMA và ứng dụng dành cho người gửi. Giờ đây, các hoạt động liên lạc này được quản lý thông qua chức năng tích hợp Điểm chèn quảng cáo CAF, thay vì yêu cầu hệ thống thông báo tuỳ chỉnh giao tiếp giữa ứng dụng của người gửi và người nhận.

Tuỳ thuộc vào người gửi, bạn có thể vẫn cần thêm một số mã giới hạn cho người gửi để bật đầy đủ tính năng hỗ trợ Điểm chèn quảng cáo của CAF, chẳng hạn như thêm tính năng hỗ trợ quảng cáo có thể bỏ qua cho người gửi trên web.

Hiện tại, ngoài việc hỗ trợ Điểm chèn quảng cáo CAF, tất cả những gì cần thiết là đưa dữ liệu luồng DAI vào đối tượng CAF MediaInfo được gửi từ người gửi đến người nhận. Bạn có thể chọn gửi dữ liệu này theo nhiều cách. Ví dụ: bạn có thể mã hoá cứng contentSourceID trên bộ thu và chỉ gửi videoID với đối tượng MediaInfo hoặc bạn có thể gửi giá trị nhận dạng tuỳ ý đến bộ thu và từ đó truy vấn cơ sở dữ liệu trực tuyến để có các tham số DAI thực tế.

Tuy nhiên, để đơn giản hoá, tất cả các mẫu của chúng tôi sẽ giả định rằng bạn tuân theo cấu trúc và quy ước đặt tên đơn giản này cho các đối tượng MediaInfo của mình:

contentId Giá trị nhận dạng duy nhất của mục nội dung đa phương tiện này
contentUrl Url luồng dự phòng để tải nếu DAI StreamRequest không thành công vì bất kỳ lý do gì
streamType Đối với sự kiện phát trực tiếp, bạn nên đặt giá trị này thành "TRỰC TIẾP". Đối với luồng VOD, bạn phải đặt giá trị này thành "BUFFERED"
customData assetKey Chỉ áp dụng cho sự kiện phát trực tiếp. Xác định sự kiện phát trực tiếp sẽ được tải
contentSourceId Chỉ luồng VOD. Xác định nguồn cấp dữ liệu đa phương tiện chứa luồng được yêu cầu.
videoId Chỉ luồng VOD. Xác định luồng được yêu cầu trong nguồn cấp dữ liệu nội dung nghe nhìn đã chỉ định.
ApiKey Bạn có thể cần một khóa API tùy chọn để truy xuất url luồng từ SDK IMA DAI.
senderCanSkip Giá trị boolean cho người nhận biết liệu thiết bị gửi có thể hiển thị nút bỏ qua hay không, cho phép hỗ trợ quảng cáo có thể bỏ qua

Ví dụ về sự kiện phát trực tiếp:

{
  "media": {
    "contentId": "bbb",
    "contentUrl": "https://storage.googleapis.com/interactive-media-ads/media/bbb.m3u8",
    "streamType": "LIVE",
    "customData": {
      "assetKey": "sN_IYUG8STe1ZzhIIE_ksA",
      "ApiKey": "",
      "senderCanSkip": true
    }
  },
  "credentials": "testCredentials"
}

Ví dụ về sự kiện phát trực tiếp VOD:

{
  "media": {
    "contentId": "tos",
    "contentUrl": "https://storage.googleapis.com/interactive-media-ads/media/tos.m3u8",
    "streamType": "BUFFERED",
    "customData": {
      "contentSourceId": "2548831",
      "videoId": "tears-of-steel",
      "ApiKey": "",
      "senderCanSkip": true
    }
  },
  "credentials": "testCredentials"
}