-
Notifications
You must be signed in to change notification settings - Fork 7.5k
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
Basic UI for Live #1121
Basic UI for Live #1121
Conversation
tomjohnson916
commented
Mar 31, 2014
- Added LiveDisplay UI component
- Included LiveDisplay component with default ControlBar.children
- Added live stream detection on duration change
- Added vjs-default-skin.vjs-live CSS classes to manage UI display
if (duration <= 0 || duration === window.INFINITY) { | ||
this.addClass('vjs-live'); | ||
} else { | ||
this.removeClass('vjs-live'); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This will probably cause styles to get recalculated on the player every time there is a duration change. That might be expensive. Have you checked this out on mobile devices yet?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
not yet, setting up HLS live testing right now. I could just as easily set this to check on loadstart if we feel this is too heavy.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
durationchange
should only happen once whenever the source changes (metadata is updated). Is that still a concern?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
in most segmented delivery formats (HLS/HDS/DASH) duration change happens regularly in live as the manifest updates on polling, so @dmlap 's concern is legitimate.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ok got it. Is the duration even used in that case then? Should we not even be triggering durationchange in a live scenario? I guess whatever iOS does we should be ready for either way.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
duration is used in any live with DVR scenarios.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In the live with DVR scenario, what does the duration look like? Would it be caught by the current conditional (duration < 0 || duration === window.INFINITY)?
At what point do we know for sure if the video is live or not? Is it after loadedmetadata
? Could it change after loadedmetadata?
Can we outline the different live scenarios, how we know they're live, and at what point we have that information available?
Tests are failing because you need to export the component like these: |
Updated, fixed tests. Thanks. I could not figure out what was making that fail. |
Looks like there might still be problems with the minification of this. Seeing errors when trying to create a player with the minified code. |
Looks like on iOS, we get the class removed right now. The class gets added but then ends up being removed, even though the duration of the video is set to |
…ation. set any duration of less than zero to window.Infinity
That last update fixed the iOS problem. |
(this comment was on an outdated diff, so reposting it) In the live with DVR scenario, what does the duration look like? Would it be caught by the current conditional (duration < 0 || duration === window.INFINITY)? At what point do we know for sure if the video is live or not? Is it after loadedmetadata? Could it change after loadedmetadata? Can we outline the different live scenarios, how we know they're live, and at what point we have that information available? |
@heff - comments below; In the live with DVR scenario, what does the duration look like?
At what point do we know for sure if the video is live or not? Is it after loadedmetadata?
Could it change after loadedmetadata?
Can we outline the different live scenarios, how we know they're live, and at what point we have that information available?
|
Just loaded the UI and I'm seeing a few issues that need to be addressed.
For now we're a assuming the live-only case, as opposed to the live-DVR case, which will behave differently. |
Tried manually merging and squashing commits, and it kept this from automatically closing, but it's pulled into master now. |
the live dvr feature has been moved to another issue ? thanks |
@seniorflexdeveloper did we make any progress on Live DVR with the DASH work? |