Description
We are using Exoplayer 2.16.1 in our application. We are seeing video startup time is high with pre-roll ads and we are checking different options to reduce it.
Our application is using custom ads loader but the implementation sequence is similar to IMA Ads loader.
We are doing the CustomAdsLoader.requestAds()
before the player.prepare()
as recommended in different Exoplayer threads. So we have the ads URL while making the player.prepare()
call.
We noticed that once the player.prepare()
call is made,
- Exoplayer first makes call to content's master manifest.
- Later it makes call to
AdsLoader.start(AdsMediaSource adsMediaSource, DataSpec adTagDataSpec, Object adsId, AdViewProvider adViewProvider, EventListener eventListener)
The CustomAdsLoader
can provide the ad URLs to Exoplayer using the eventListener.onAdPlaybackState(adPlaybackState)
only after the AdsLoader.start()
call from Exoplayer.
We think this is causing some playback delay.
So my questions are,
- Why content manifest call is made before
AdsLoader.start()
whenAdsMediaSource
is used? - Is there anyway we can force pre-roll manifest and segment download calls before content manifest call?
I checked these questions, did not get answer to my questions: