-
Notifications
You must be signed in to change notification settings - Fork 6k
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
The video blocked when audio stop(The duration of audio track is less than video)? #7943
Comments
Please provide complete information as requested in the issue template. The issue template can be found here. If you're unable to share bug reports or test content publicly, please send them to dev.exoplayer@gmail.com using a subject "Issue #7943". Please also update this issue to indicate you’ve done this. To debug this we certainly need:
|
[ https://github.com/friskyliu/exoplayerbug7943.git ] is the demo for Issue #7943 Exoplayer version:2.12.0 |
Thanks for the app link - I can repro the behaviour you describe when running your app. However when playing the same media in the demo app at 2.12.0 it plays to the end of the video (i.e. I don't see the behaviour you describe). So it looks like it's something about the way your app is integrating ExoPlayer. I had a scan through the code and spotted these possible culprits:
Passing this over to @andrewlewis to take a look. |
It seems the code setLoadControl caused the problem. After delete LoadControl, it plays to the end. Is the params wrong when using LoadControl?
|
Ah good find. I tried swapping in some different values for
I was able to repro in the demo app by including your LoadControl and the repeat mode (it didn't repro without the repeat mode):
cc @tonihei who might also have some thoughts |
Thanks for all the reproduction details - it looks as if this is a bug that got introduced as part of 652c2f9. We'll provide a fix for that. |
We have a workaround for uneven sample stream durarions in playlists that assumes a renderer allows playback if it's reading ahead or waiting for the next stream. 652c2f9 changed this logic to no longer require to wait until the next stream is prepared due to a change in how we advance media periods in the queue. However, the code falsely still requires the next stream to exist (even if it's not prepared). This can cause a stuck buffering state when the difference in the duration of the streams is more than what we buffer ahead because we never create the next stream in such a case. Note: DefaultMediaClock.shouldUseStandaloneClock has roughly the same logic and also doesn't require the next stream to be present. Also fix a test that seemed to rely on this stuck buffering case to test stuck buffering detection. Changed the test to not read the end of stream to ensure it runs into the desired stuck buffering case. Issue:#7943 PiperOrigin-RevId: 333050285
We have a workaround for uneven sample stream durarions in playlists that assumes a renderer allows playback if it's reading ahead or waiting for the next stream. 652c2f9 changed this logic to no longer require to wait until the next stream is prepared due to a change in how we advance media periods in the queue. However, the code falsely still requires the next stream to exist (even if it's not prepared). This can cause a stuck buffering state when the difference in the duration of the streams is more than what we buffer ahead because we never create the next stream in such a case. Note: DefaultMediaClock.shouldUseStandaloneClock has roughly the same logic and also doesn't require the next stream to be present. Also fix a test that seemed to rely on this stuck buffering case to test stuck buffering detection. Changed the test to not read the end of stream to ensure it runs into the desired stuck buffering case. Issue:#7943 PiperOrigin-RevId: 333050285
I played a video(mp4 format), the audio track duration is 6 seconds and the video duration is 40 seconds. When it is played to 6 seconds, the video will be blocked。
The text was updated successfully, but these errors were encountered: