Add more bindings for media element properties #3650
Merged
+84
−17
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.
This adds read-only bindings for
seeking
andended
to<audio>
and<video>
elements.These can be used to build a custom video UI, similar to the media elements example. For example:
ended
property can be used to show a replay button instead of a regular play/pause button:seeking
property can be used to show a loading spinner while the media element is seeking.I also noticed that the current compiler would generate code for
bind:volume
like this:However, if
ctx.volume
is stillundefined
, then this would throw aTypeError
because it's not a number between 0 and 1 (spec).To fix this, I've added an
!isNaN(ctx.volume)
check, so we don't set an invalid value when mounting. I've also refactored the code rendering for bindings a bit to make it easier to add such "mount conditions", similar to how we add "update conditions". 🙂