Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Stuck in buffering state after the midroll ads finish playing #4681

Closed
objectiveCarlo opened this issue Aug 20, 2018 · 14 comments
Closed

Stuck in buffering state after the midroll ads finish playing #4681

objectiveCarlo opened this issue Aug 20, 2018 · 14 comments
Assignees
Labels

Comments

@objectiveCarlo
Copy link

objectiveCarlo commented Aug 20, 2018

Issue description

On Android 8.0 and above after the none skippable midroll ads completed playing the player will just buffer

Reproduction steps

  1. Scrub to the nearest midroll cue
  2. If the ads is skippable it will work so try and try to get none skippable ads

Version of ExoPlayer being used

ExoPlayer 2.8.4 and 2.8.1
First observed at 2.8.1
And tried to update at

Device(s) and version(s) of Android being used

Pixel 2 Android 9.0
Samsung Phone Android 8.0
Pixel 2 Android 8.0

This issue is reproducible in the sample app by using the following parameters:
I emailed it to: dev.exoplayer@gmail.com
Thanks

@andrewlewis
Copy link
Collaborator

I think there may be a combination of two different issues here.

The first is that the this ad tag has two empty midroll ad breaks. Handling of those should be fixed on dev-v2 (see #4030), so please could you try this out on that branch and see if that issue is fixed?

The second is that if I seek past the third midroll we don't seem to get any notification from IMA that the ad break is empty (I see [ima.adslist.AdBreak] Destroying the ad break, 992 in IMA's debug logging but this doesn't seem to be surfaced via the public API). This may be an IMA bug or a problem with the ad tag.

It would help with both issues if you could depend on the development branch, set ImaAdsLoader.DEBUG to true and reproduce both issues so I can check we're seeing the same thing. Thanks!

@objectiveCarlo
Copy link
Author

OK.

But when I tried dev-v2 Im getting this error:

`* What went wrong:
Could not resolve all files for configuration ':extension-ima:debugCompileClasspath'.

Could not find play-services-ads.jar (com.google.android.gms:play-services-ads:15.0.1).
Searched in the following locations:
https://jcenter.bintray.com/com/google/android/gms/play-services-ads/15.0.1/play-services-ads-15.0.1.jar
`

@andrewlewis
Copy link
Collaborator

Do you have both google() and jcenter() listed in the repositories in your root project?

@asolis90
Copy link

I'm having a similar issue in which if pre-roll is empty and first mid-roll from adgroup is empty it skips the preroll correctly but whenever it gets to the midroll it just gets stuck into a buffering state. Tried with dev-v2 and release-v2 branch with the latest version being 2.8.4 and it didn't seemed to be fixed.

@objectiveCarlo
Copy link
Author

Also not working for me.

@CipherGit
Copy link

I've also encountered the issue with the dev-v2 branch and I've set ImaAdsLoader.DEBUG to true. Here's the relevant logs:

08-21 14:14:43.893 14210-14210/com.google.android.exoplayer2.imademo D/ImaAdsLoader: onAdEvent: LOADED
08-21 14:14:43.894 14210-14210/com.google.android.exoplayer2.imademo D/ImaAdsLoader: Loaded ad 1 of 2 in group 1
08-21 14:14:43.927 14210-14210/com.google.android.exoplayer2.imademo D/ImaAdsLoader: onAdEvent: LOG
08-21 14:14:43.927 14210-14210/com.google.android.exoplayer2.imademo I/ImaAdsLoader: AdEvent: {errorMessage=Linear assets were found in the VAST ad response, but none of them matched the video player's capabilities., errorCode=403, type=adPlayError}
08-21 14:14:43.942 14210-14210/com.google.android.exoplayer2.imademo D/ImaAdsLoader: onAdEvent: LOADED
08-21 14:14:43.943 14210-14210/com.google.android.exoplayer2.imademo D/ImaAdsLoader: Loaded ad 2 of 2 in group 1
08-21 14:14:43.967 14210-14210/com.google.android.exoplayer2.imademo D/ImaAdsLoader: loadAd in ad group 1
08-21 14:14:43.976 14210-14210/com.google.android.exoplayer2.imademo D/ImaAdsLoader: onAdEvent: CONTENT_PAUSE_REQUESTED
08-21 14:14:43.990 14210-14210/com.google.android.exoplayer2.imademo D/ImaAdsLoader: playAd
08-21 14:14:45.291 14210-14210/com.google.android.exoplayer2.imademo D/ImaAdsLoader: onAdEvent: STARTED
08-21 14:14:49.085 14210-14210/com.google.android.exoplayer2.imademo D/ImaAdsLoader: onAdEvent: FIRST_QUARTILE
08-21 14:14:52.731 14210-14210/com.google.android.exoplayer2.imademo D/ImaAdsLoader: onAdEvent: MIDPOINT
08-21 14:14:56.581 14210-14210/com.google.android.exoplayer2.imademo D/ImaAdsLoader: onAdEvent: THIRD_QUARTILE

@andrewlewis
Copy link
Collaborator

@asolis90, @CipherGit Please could you send the ad tags and full logcat after reproducing the issue with ImaAdsLoader.DEBUG set to true to dev.exoplayer@gmail.com with subject "Issue #4681"? If you're using dev-v2 there should be some logging from chromium when you do that, so I don't think the logs in the previous comment are complete. In my testing I found that the issue with getting stuck buffering when reaching a midroll after an empty ad break was fixed, but it sounds like this is still reproducible. It would be great if you could provide some more information so I can diagnose this. Thanks.

@andrewlewis
Copy link
Collaborator

I've got a possible fix for these issues (please see the update on #4622) but the ad tag provided via email seems to have only empty ad breaks. Is that expected? Thanks.

@objectiveCarlo
Copy link
Author

We will send you another ad tag. Because I think the ads already expired on our side.

@objectiveCarlo
Copy link
Author

If we remove the empty ad break will it work?

@andrewlewis
Copy link
Collaborator

An ad tag without empty ad breaks shouldn't exhibit this issue.

ojw28 pushed a commit that referenced this issue Aug 24, 2018
The previous change was too aggressive as it would clear future ad breaks.

Still clear the pending content position so the real content position is
reported after an empty ad break.

Issue: #4681
Issue: #4622

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=209752306
ojw28 pushed a commit that referenced this issue Aug 24, 2018
At the point of starting to play a postroll, source info refreshes for future
postroll ads in the same ad group would cause a seek that incorrectly identified
the media period to play as the content media period. Fix the logic in
getAdGroupIndexForPositionUs to address this.

Also handle empty postroll ad breaks by resetting the expected ad group index
when we send content complete.

Issue: #4710
Issue: #4681

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=210071054
@andrewlewis
Copy link
Collaborator

@objectiveCarlo, @asolis90, @CipherGit This should be fixed on the dev-v2 branch. Please could you try it out and let us know if you see any issues? Thanks.

@objectiveCarlo
Copy link
Author

Right now we don't have the same ad tags anymore cause I think our backend guys did some tweaking. Ill try to get a sample ad tag from them and let you know. Thank you!

@andrewlewis
Copy link
Collaborator

Closing as playback of ad tags with empty ad groups is now working for the various test ad tags I've tried. There is a remaining issue with playback of ad tags where some ads within a non-empty ad group are empty: #5006.

@google google locked and limited conversation to collaborators May 16, 2019
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Projects
None yet
Development

No branches or pull requests

4 participants