fix: fix onProgress callback not firing during iOS live streams #497
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
I noticed that the
onProgress
callback only gets fired once during live streams on iOS. This is because, on iOS,player.duration
returnsInfinity
for live streams. Since it always returnsInfinity
, the progress timeout short-circuits and so the callback stops firing altogether.I have recently had to fix this issue in a few other places, and I have found that using
player.seekable.end(0)
works great as an alternative. It returns the same thing asplayer.duration
, but works on iOS as well.In order to minimize the potential impact of this change, I explicitly check for
Infinity
and only then do I returnplayer.seekable.end(0)
. Otherwise I continue to return value of theduration
property.Let me know if you need me to me make any updates!