主题
暂停卡 —— NovvyPauseAd
实时暂停卡(固定 260×90dp),在播放器暂停时展示。无 load() 预加载、无 onAdLoaded —— attach() 时实时请求。需宿主实现 NovvyPlayerAdapter 供 SDK 读取播放状态。
注意调用时机
在「视频暂停那一刻」调用 attach()(会立即发起请求);恢复播放时 destroy(),下次暂停重新 attach。
对接流程
Episode starts(本集开始播放)
↓
视频被暂停那一刻
↓
setContentContext(...) + attach(container, player) // 实时请求
↓
onAdShown // 卡片显示
↓
恢复播放 → onAdHidden
↓
destroy() // 需宿主主动释放接入代码
kotlin
// 宿主实现播放器适配器
val playerAdapter = object : NovvyPlayerAdapter {
override val currentPositionMs: Long get() = exoPlayer.currentPosition
override val isPlaying: Boolean get() = exoPlayer.isPlaying
}
val pauseAd = NovvyPauseAd(adUnitId = "your_ad_unit_id")
// 一次性:立即请求,就绪后挂载到容器
pauseAd.attach(container, playerAdapter, object : NovvyPauseAdListener {
override fun onAdFailedToLoad(ad: NovvyPauseAd, error: NovvyError) { /* ... */ }
override fun onAdShown(ad: NovvyPauseAd) { /* 暂停卡已展示 */ }
override fun onAdHidden(ad: NovvyPauseAd) { /* 已隐藏(播放恢复) */ }
})
// 释放
pauseAd.detach()
pauseAd.destroy()事件回调
NovvyPauseAdListener 方法均有空实现默认值,按需重写;回调统一在主线程触发。
| 回调 | 触发时机 |
|---|---|
onAdFailedToLoad(ad, error) | 请求失败,error 为 NovvyError,取值见错误类型 |
onAdShown(ad) | 暂停卡挂载展示、曝光上报完成 |
onAdHidden(ad) | 暂停卡隐藏(播放恢复 / detach()) |
暂停卡没有
onAdLoaded——attach()即实时请求,成功后直接进入onAdShown。