AVPlayer 时,直接交给 SDK;SDK 会读取它的时间并关注它的播放(见 AVPlayer):
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,这对预取来说是正确的。