Follow seeking while player is paused.

This commit is contained in:
damencho 2016-04-01 17:08:35 -05:00
parent bede8feccc
commit 7dad981112
1 changed files with 26 additions and 3 deletions

View File

@ -98,7 +98,7 @@ export default class SharedVideoManager {
window.onYouTubeIframeAPIReady = function() { window.onYouTubeIframeAPIReady = function() {
self.isPlayerAPILoaded = true; self.isPlayerAPILoaded = true;
let showControls = APP.conference.isLocalId(self.from) ? 1 : 0; let showControls = APP.conference.isLocalId(self.from) ? 1 : 0;
new YT.Player('sharedVideoIFrame', { let p = new YT.Player('sharedVideoIFrame', {
height: '100%', height: '100%',
width: '100%', width: '100%',
videoId: self.url, videoId: self.url,
@ -114,8 +114,19 @@ export default class SharedVideoManager {
'onStateChange': onPlayerStateChange, 'onStateChange': onPlayerStateChange,
'onError': onPlayerError 'onError': onPlayerError
} }
}).addEventListener(// add listener for volume changes });
// add listener for volume changes
p.addEventListener(
"onVolumeChange", "onVolumeChange"); "onVolumeChange", "onVolumeChange");
if (APP.conference.isLocalId(self.from)){
// adds progress listener that will be firing events
// while we are paused and we change the progress of the
// video (seeking forward or backward on the video)
p.addEventListener(
"onVideoProgress", "onVideoProgress");
}
}; };
window.onPlayerStateChange = function(event) { window.onPlayerStateChange = function(event) {
@ -138,6 +149,17 @@ export default class SharedVideoManager {
} }
}; };
/**
* Track player progress while paused.
* @param event
*/
window.onVideoProgress = function (event) {
let state = event.target.getPlayerState();
if (state == YT.PlayerState.PAUSED) {
self.updateCheck(true);
}
};
/** /**
* Gets notified for volume state changed. * Gets notified for volume state changed.
* @param event * @param event
@ -218,7 +240,7 @@ export default class SharedVideoManager {
// if its not paused, pause it // if its not paused, pause it
player.pauseVideo(); player.pauseVideo();
this.processTime(player, attributes, !playerPaused); this.processTime(player, attributes, true);
} else if (attributes.state == 'stop') { } else if (attributes.state == 'stop') {
this.stopSharedVideo(this.from); this.stopSharedVideo(this.from);
} }
@ -233,6 +255,7 @@ export default class SharedVideoManager {
processTime (player, attributes, forceSeek) processTime (player, attributes, forceSeek)
{ {
if(forceSeek) { if(forceSeek) {
console.info("Player seekTo:", attributes.time);
player.seekTo(attributes.time); player.seekTo(attributes.time);
return; return;
} }