Small tweaks

This commit is contained in:
Sam Potts
2017-11-04 21:19:02 +11:00
parent 069c8093ae
commit d920de2a25
21 changed files with 234 additions and 167 deletions

View File

@ -77,6 +77,34 @@ const vimeo = {
player.media.paused = true;
player.media.currentTime = 0;
let { currentTime } = player.media;
// Seeking
Object.defineProperty(player.media, 'currentTime', {
get() {
return currentTime;
},
set(time) {
// Get current paused state
const { paused } = player.media;
player.warn('called');
// Set seeking flag
player.media.seeking = true;
// Trigger seeking
utils.dispatchEvent.call(player, player.media, 'seeking');
// Seek after events
player.embed.setCurrentTime(time);
// Restore pause state
if (paused) {
this.pause();
}
},
});
// Playback speed
// Not currently supported in Vimeo
@ -88,10 +116,10 @@ const vimeo = {
});
// Rebuild UI
ui.build.call(player);
window.setTimeout(() => ui.build.call(player), 0);
player.embed.getCurrentTime().then(value => {
player.media.currentTime = value;
currentTime = value;
utils.dispatchEvent.call(this, this.media, 'timeupdate');
});
@ -103,7 +131,6 @@ const vimeo = {
// Get captions
player.embed.getTextTracks().then(tracks => {
player.captions.tracks = tracks;
captions.setup.call(player);
});
@ -121,10 +148,6 @@ const vimeo = {
if (utils.is.htmlElement(player.embed.element) && player.supported.ui) {
const frame = player.embed.element;
// Fix Vimeo controls issue
// https://github.com/sampotts/plyr/issues/697
// frame.src = `${frame.src}&transparent=0`;
// Fix keyboard focus issues
// https://github.com/sampotts/plyr/issues/317
frame.setAttribute('tabindex', -1);
@ -144,7 +167,7 @@ const vimeo = {
this.embed.on('timeupdate', data => {
this.media.seeking = false;
this.media.currentTime = data.seconds;
currentTime = data.seconds;
utils.dispatchEvent.call(this, this.media, 'timeupdate');
});

View File

@ -118,6 +118,23 @@ const youtube = {
player.media.muted = instance.isMuted();
player.media.currentTime = 0;
// Seeking
Object.defineProperty(player.media, 'currentTime', {
get() {
return Number(instance.getCurrentTime());
},
set(time) {
// Set seeking flag
player.media.seeking = true;
// Trigger seeking
utils.dispatchEvent.call(player, player.media, 'seeking');
// Seek after events sent
instance.seekTo(time);
},
});
// Playback speed
Object.defineProperty(player.media, 'playbackRate', {
get() {
@ -142,7 +159,7 @@ const youtube = {
}
// Rebuild UI
ui.build.call(player);
window.setTimeout(() => ui.build.call(player), 0);
utils.dispatchEvent.call(player, player.media, 'timeupdate');
utils.dispatchEvent.call(player, player.media, 'durationchange');
@ -218,7 +235,7 @@ const youtube = {
// Poll to get playback progress
player.timers.playing = window.setInterval(() => {
player.media.currentTime = instance.getCurrentTime();
// player.media.currentTime = instance.getCurrentTime();
utils.dispatchEvent.call(player, player.media, 'timeupdate');
}, 100);