#11290·ExoPlayer

ServerSideAdInsertionMediaSource 如何显示广告覆盖

作者: moniqueeeeee创建于 2023年9月13日更新于 2025年10月29日
标签question
override fun onAdPlaybackStateUpdateRequested(contentTimeline: Timeline): Boolean {

    val adStatesBuilder = ImmutableMap.builder<Any, AdPlaybackState>()
    (0 until contentTimeline.periodCount).forEach { periodIndex ->
        val uid = contentTimeline.getUidOfPeriod(periodIndex)
        var adPlaybackState = AdPlaybackState(uid, 5 * C.MICROS_PER_SECOND)
            .withAdCount(0, 1)
        adPlaybackStateMap.put(contentTimeline.getUidOfPeriod(0), adPlaybackState)
        adsMediaSource?.setAdPlaybackStates(adPlaybackStateMap.build(),
            contentTimeline)
        adStatesBuilder.put(uid, adPlaybackState) // 该值应为 AdPlaybackState.NONE
    }
    adsMediaSource?.setAdPlaybackStates(adStatesBuilder.build(), contentTimeline)
    return true
}

内容来源: google/ExoPlayer