diff options
Diffstat (limited to 'src/js/plugins')
-rw-r--r-- | src/js/plugins/vimeo.js | 22 | ||||
-rw-r--r-- | src/js/plugins/youtube.js | 18 |
2 files changed, 35 insertions, 5 deletions
diff --git a/src/js/plugins/vimeo.js b/src/js/plugins/vimeo.js index 7bcb2d01..8c7f2b04 100644 --- a/src/js/plugins/vimeo.js +++ b/src/js/plugins/vimeo.js @@ -77,9 +77,9 @@ const vimeo = { player.media.paused = true; player.media.currentTime = 0; - let { currentTime } = player.media; // Seeking + let { currentTime } = player.media; Object.defineProperty(player.media, 'currentTime', { get() { return currentTime; @@ -114,14 +114,34 @@ const vimeo = { set() {}, }); + // Volume + let { volume } = player.media; + Object.defineProperty(player.media, 'volume', { + get() { + return volume; + }, + set(input) { + volume = input; + player.embed.setVolume(input); + utils.dispatchEvent.call(player, player.media, 'volumechange'); + }, + }); + // Rebuild UI window.setTimeout(() => ui.build.call(player), 0); + // Get title + player.embed.getVideoTitle().then(title => { + player.config.title = title; + }); + + // Get current time player.embed.getCurrentTime().then(value => { currentTime = value; utils.dispatchEvent.call(this, this.media, 'timeupdate'); }); + // Get duration player.embed.getDuration().then(value => { player.media.duration = value; utils.dispatchEvent.call(player, player.media, 'durationchange'); diff --git a/src/js/plugins/youtube.js b/src/js/plugins/youtube.js index ce21433e..7b8447c2 100644 --- a/src/js/plugins/youtube.js +++ b/src/js/plugins/youtube.js @@ -140,8 +140,19 @@ const youtube = { get() { return instance.getPlaybackRate(); }, - set(speed) { - instance.setPlaybackRate(speed); + set(input) { + instance.setPlaybackRate(input); + }, + }); + + // Volume + Object.defineProperty(player.media, 'volume', { + get() { + return instance.getVolume() / 100; + }, + set(input) { + instance.setVolume(input * 100); + utils.dispatchEvent.call(player, player.media, 'volumechange'); }, }); @@ -235,9 +246,8 @@ const youtube = { // Poll to get playback progress player.timers.playing = window.setInterval(() => { - // player.media.currentTime = instance.getCurrentTime(); utils.dispatchEvent.call(player, player.media, 'timeupdate'); - }, 100); + }, 50); // Check duration again due to YouTube bug // https://github.com/sampotts/plyr/issues/374 |