HlsInterstitialsAdsLoader


@UnstableApi
class HlsInterstitialsAdsLoader : AdsLoader


An ads loader that reads interstitials from the HLS playlist, adds them to the AdPlaybackState and passes the ad playback state to onAdPlaybackState.

An ads ID must be unique within the playlist of ExoPlayer. If this is the case, a single HlsInterstitialsAdsLoader instance can be passed to multiple ads media sources. These ad media source can be added to the same playlist as far as each of the sources have a different ads IDs.

Summary

Nested types

A MediaSource.Factory to create a media source to play HLS streams with interstitials.

A listener to be notified of events emitted by the ads loader.

Public constructors

Creates an instance.

Public functions

Unit

Adds a Listener.

Unit
handleContentTimelineChanged(
    adsMediaSource: AdsMediaSource!,
    timeline: Timeline!
)

Notifies the ads loader when the content source has changed its timeline.

Unit
handlePrepareComplete(
    adsMediaSource: AdsMediaSource!,
    adGroupIndex: Int,
    adIndexInAdGroup: Int
)

Notifies the ads loader that preparation of an ad media period is complete.

Unit
handlePrepareError(
    adsMediaSource: AdsMediaSource!,
    adGroupIndex: Int,
    adIndexInAdGroup: Int,
    exception: IOException!
)

Notifies the ads loader that the player was not able to prepare media for a given ad.

Unit

Releases the loader.

Unit

Removes a Listener.

Unit
setPlayer(player: Player?)

Sets the player that will play the loaded ads.

Unit

Sets the supported content types for ad media.

Unit
start(
    adsMediaSource: AdsMediaSource!,
    adTagDataSpec: DataSpec!,
    adsId: Any!,
    adViewProvider: AdViewProvider!,
    eventListener: AdsLoader.EventListener!
)

Starts using the ads loader for playback.

Unit
stop(
    adsMediaSource: AdsMediaSource!,
    eventListener: AdsLoader.EventListener!
)

Stops using the ads loader for playback and deregisters the event listener.

Public constructors

HlsInterstitialsAdsLoader

HlsInterstitialsAdsLoader()

Creates an instance.

Public functions

addListener

fun addListener(listener: HlsInterstitialsAdsLoader.Listener!): Unit

Adds a Listener.

handleContentTimelineChanged

fun handleContentTimelineChanged(
    adsMediaSource: AdsMediaSource!,
    timeline: Timeline!
): Unit

Notifies the ads loader when the content source has changed its timeline. Called on the main thread by AdsMediaSource.

If you override this callback for the purpose of reading ad data from the timeline to populate the AdPlaybackState with, you need to pass true to the constructor of AdsMediaSource to indicate the content source needs to be prepared upfront.

Parameters
adsMediaSource: AdsMediaSource!

The ads media source for which the content timeline changed.

timeline: Timeline!

The timeline of the content source.

handlePrepareComplete

fun handlePrepareComplete(
    adsMediaSource: AdsMediaSource!,
    adGroupIndex: Int,
    adIndexInAdGroup: Int
): Unit

Notifies the ads loader that preparation of an ad media period is complete. Called on the main thread by AdsMediaSource.

Parameters
adsMediaSource: AdsMediaSource!

The ads media source for which preparation of ad media completed.

adGroupIndex: Int

The index of the ad group.

adIndexInAdGroup: Int

The index of the ad in the ad group.

handlePrepareError

fun handlePrepareError(
    adsMediaSource: AdsMediaSource!,
    adGroupIndex: Int,
    adIndexInAdGroup: Int,
    exception: IOException!
): Unit

Notifies the ads loader that the player was not able to prepare media for a given ad. Implementations should update the ad playback state as the specified ad has failed to load. Called on the main thread by AdsMediaSource.

Parameters
adsMediaSource: AdsMediaSource!

The ads media source for which preparation of ad media failed.

adGroupIndex: Int

The index of the ad group.

adIndexInAdGroup: Int

The index of the ad in the ad group.

exception: IOException!

The preparation error.

release

fun release(): Unit

Releases the loader. Must be called by the application on the main thread when the instance is no longer needed.

removeListener

fun removeListener(listener: HlsInterstitialsAdsLoader.Listener!): Unit

Removes a Listener.

setPlayer

fun setPlayer(player: Player?): Unit

Sets the player that will play the loaded ads.

This method must be called before the player is prepared with media using this ads loader.

This method must also be called on the main thread and only players which are accessed on the main thread are supported ( player.getApplicationLooper() == Looper.getMainLooper()).

Throws
java.lang.IllegalStateException

If an app is attempting to set a new player instance after release was called or while ads media sources started by the old player are still active, an IllegalStateException is thrown. Release the old player first, or remove all ads media sources from it before setting another player instance.

setSupportedContentTypes

fun setSupportedContentTypes(@C.ContentType contentTypes: IntArray!): Unit

Sets the supported content types for ad media. Must be called before the first call to start. Subsequent calls may be ignored. Called on the main thread by AdsMediaSource.

Parameters
@C.ContentType contentTypes: IntArray!

The supported content types for ad media. Each element must be one of CONTENT_TYPE_DASH, CONTENT_TYPE_HLS, CONTENT_TYPE_SS and CONTENT_TYPE_OTHER.

start

fun start(
    adsMediaSource: AdsMediaSource!,
    adTagDataSpec: DataSpec!,
    adsId: Any!,
    adViewProvider: AdViewProvider!,
    eventListener: AdsLoader.EventListener!
): Unit

Starts using the ads loader for playback. Called on the main thread by AdsMediaSource.

Parameters
adsMediaSource: AdsMediaSource!

The ads media source requesting to start loading ads.

adTagDataSpec: DataSpec!

A data spec for the ad tag to load.

adsId: Any!

An opaque identifier for the ad playback state across start/stop calls.

adViewProvider: AdViewProvider!

Provider of views for the ad UI.

eventListener: AdsLoader.EventListener!

Listener for ads loader events.

stop

fun stop(
    adsMediaSource: AdsMediaSource!,
    eventListener: AdsLoader.EventListener!
): Unit

Stops using the ads loader for playback and deregisters the event listener. Called on the main thread by AdsMediaSource.

Parameters
adsMediaSource: AdsMediaSource!

The ads media source requesting to stop loading/playing ads.

eventListener: AdsLoader.EventListener!

The ads media source's listener for ads loader events.