跳转到主要内容
每次请求和事件都带有观众在这一集中的位置,叠加广告和暂停广告也会跟随播放:叠加广告只在内容播放时展示,观众一暂停就消失;暂停广告在展示期间内容暂停过、之后再次播放时消失,无论观众如何恢复。剧集开始播放后,把播放器交给 SDK。 使用 AVPlayer 时,直接交给 SDK;SDK 会读取它的时间并关注它的播放(见 AVPlayer):
使用 TTSDK 播放器(TTVideoEngine)时,添加同一个包中的 KontextVideoTTSDK 产品并交给引擎:ads.track(ttVideoEngine: engine) { episode.id };见 TTSDK 播放器。 使用其他播放器时,让它遵循 VideoAdsPlayer:它的位置(秒),以及它是否在播放。缓冲和拖动进度都算作播放。
如果你的播放器已经发布自己的状态,把它作为 isPlayingPublisher 返回,观众一暂停叠加广告就会结束;否则叠加广告在屏幕上期间 SDK 每秒检查 isPlaying 四次。SDK 会保留你的 VideoAdsPlayer 直到 destroy() 或下一次 track(_:),因此一个小的包装类型不需要额外的引用;AVPlayer 被弱持有,因为它归你的应用所有。引用了 VideoAds(或拥有它的对象)的包装类型会让两者一直存活到 destroy():观众离开时调用 destroy(),或者不要在其中引用广告。 在这一集开始播放时调用 track(_:),而不是在创建 VideoAds 时:在那之前播放器的时间属于上一集。在那之前 SDK 发送 0,这对预取来说是正确的。