Shaka-player: Replay doesn't work after seeking to duration

Created on 7 Sep 2017  路  10Comments  路  Source: google/shaka-player

Have you read the FAQ and checked for duplicate issues: Yes

What version of Shaka Player are you using: Latest (v2.2.1)

Can you reproduce the issue with our latest release version: Yes

Are you using the demo app or your own custom app: demo app

What browser and OS are you using: chrome 60 macOS sierra 10.12

What are the manifest and license server URIs:
https://storage.googleapis.com/shaka-demo-assets/angel-one/dash.mpd

What did you do?
Load
Select the video tag in the elements tab in chrome dev tools
paste in the console: $0.currentTime = $0.duration

What did you expect to happen?
Replay should work in the first time

What actually happened?
Replay doesn't work in the first time until tapping replay again.
sometimes getting error 3015

archived bug

All 10 comments

@yairans, thank you for brining this to our attention. I have successfully repo the issue and will start working on a fix.

When prepping examples for reporting bugs I found that there seems to be some problems with our code which is causing some problems on Firefox.

So if I set the current time to duration on raw HTML 5 video element, there are no problems, but when I do it with shaka player, Shaka player is failing an assert.

I am reopening this until I have a more in-depth explanation of what it happening.

Hi @vaage did you happen to get some more info on the issue?

@OrenMe Still working on this issue but have not been able to put much time into it over the last week. I do not have anything new to report.

Thanks @vaage

@OrenMe I was able to put some time into this today. I was able to address some problems with seeking to duration on Firefox, but it does not resolve the problems you and @yairans are interested in.

Working with raw Media Source, I was able to get behavior closer to what @yairans asked for so I believe the problem is in shaka.media.StreamingEngine. However this is the most complicated class in the project. I will need to sit down with @joeyparrish when he is back in the office to discuss how we want to handle this issue.

We have decided to limit seeking to duration. When a user seeks to a time >= duration (or selects a playback start time >= duration), we will seek to some fixed distance before the duration instead.

This seems to be the only consistent cross-browser solution, and it is consistent with behavior we have seen in other applications.

@joeyparrish this means that seek won't be accurate? if we take this to UX - if I implement a scrubber and user scrubs near the end the scrubber will jump to the that fixed distance you are setting?

It will be accurate as long as the seek position is strictly less than duration. If the seek position is equal to or greater than duration, we will bump it back by one second. This will only affect VOD content, and the amount we bump it back will be configurable.

You can also do this in your video controls as a workaround.

Fix cherry-picked for v2.2.8.

Was this page helpful?
0 / 5 - 0 ratings