与之前 Chromecast 和 DAI 之间的集成不同,CAF DAI SDK 非常注重维护 Cast 应用框架制定的标准和预期。因此,您无需对发送器应用进行大幅自定义,以管理 IMA 和发送器应用之间的双向通信。现在,这些通信通过集成的 CAF 广告插播时间点功能进行管理,而无需自定义消息系统在发送者应用和接收者之间进行通信。
您可能仍需要向发送方添加一些有限的代码,以便完全启用 CAF 广告插播时间点支持,例如为网络发送方添加对可跳过式广告的支持,具体取决于您的发件人。
除了支持 CAF 广告插播时间点之外,现在只需将 DAI 流数据添加到从发送方发送到接收方的 CAF MediaInfo 对象中。您可以选择以多种不同的方式发送此数据,例如,您可以对接收器上的 contentSourceID 进行硬编码,并且仅发送 videoID 与 MediaInfo 对象;或者,您可以向接收器发送任意标识符,并从该处查询在线数据库以获取实际的 DAI 参数。
不过,为简单起见,我们的所有示例都将假定您的 MediaInfo 对象遵循以下简单的结构和命名惯例:
contentId | 此媒体项的唯一标识符 | |
contentUrl | 在 DAI StreamRequest 因任何原因失败时要加载的后备直播网址 | |
streamType | 对于直播,此值应设置为“LIVE”。对于 VOD 视频流,此值应设置为“BUFFERED” | |
customData | assetKey | 仅限直播。标识要加载的直播 |
contentSourceId | 仅限 VOD 直播。标识包含所请求视频流的媒体 Feed。 | |
videoId | 仅限 VOD 直播。识别指定媒体 Feed 中请求的视频流。 | |
ApiKey | 可选的 API 密钥,在从 IMA DAI SDK 检索视频流网址时可能需要该密钥。 | |
senderCanSkip | 一个布尔值,用于告知接收方设备能否显示“跳过”按钮,从而实现对可跳过式广告的支持 |
直播示例:
{
"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"
}
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"
}