跳转到主要内容
SDK 用 Android View 绘制广告。so.kontext:video-compose 提供两个 Compose 函数,页面无需自己编写承载视图、副作用和监听器连接。

添加模块

它支持 Compose 1.6 或更高版本,并使用你应用自己的 Compose 版本。

播放器页面

提前加载广告能让 show 立即完成:把已加载的广告保存在状态中,需要时再设置为 adOnScreen。

rememberVideoAds

  • 创建该集的 VideoAds,content.id 变化时创建新的。
  • 组合离开或剧集变化时销毁它。销毁会结束屏幕上的广告,线性广告也是如此:在片尾广告的 onEnded 之后再切换到下一集。
  • 旋转会重建组合,也会重建 VideoAds。在 Activity 上为旋转声明 android:configChanges,或者把 VideoAds 放在 ViewModel 中(见下文)。

VideoAdHost

  • 所有格式。 叠加广告或暂停广告展示在宿主所在的位置。线性广告从承载该组合的 Activity 全屏展示;宿主不会关闭它,它自行结束或由观众结束。
  • 宿主持有广告的监听器。 通过宿主的回调接收广告事件,而不是 ad.listener。
  • 离开组合 会关闭屏幕上的叠加广告或暂停广告。

在旋转后保留广告

把 VideoAds 和广告放在 ViewModel 中;宿主展示状态中的内容:

竖向翻页

为每一页提供自己的 VideoAds 和宿主;只在当前页展示广告:
被滑走的页面上的广告会在大约一秒内结束(INTERRUPTED),为下一页的广告腾出屏幕。

不使用该模块

手动实现同样的效果:用 AndroidView 承载一个 remember 的 FrameLayout,在其上调用 show(container),在 DisposableEffect 中设置广告的监听器并在 onDispose 中清除,在 onDispose 中销毁 VideoAds。对于线性广告,把承载该组合的 Activity 传给 show(activity)。