diff -r 6a90c96f0b4c -r 2b036bd80f6d src/widgets/PlaceholderPlayer.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/widgets/PlaceholderPlayer.js Tue Jan 29 15:38:41 2013 +0100 @@ -0,0 +1,63 @@ +/* This is a fake player, for when no video is available */ + +IriSP.Widgets.PlaceholderPlayer = function(player, config) { + IriSP.Widgets.Widget.call(this, player, config); +}; + +IriSP.Widgets.PlaceholderPlayer.prototype = new IriSP.Widgets.Widget(); + +IriSP.Widgets.PlaceholderPlayer.prototype.defaults = { +} + +IriSP.Widgets.PlaceholderPlayer.prototype.template = '
(loading)
'; + +IriSP.Widgets.PlaceholderPlayer.prototype.draw = function() { + + this.renderTemplate(); + + var paused = true, + timeDelta = 0, + currentTime = new IriSP.Model.Time(0), + media = this.media, + sel = this.$.find(".Ldt-PlaceholderPlayer"); + + function updateTime() { + if (!paused) { + currentTime = new IriSP.Model.Time(new Date().valueOf() - timeDelta); + if (currentTime <= media.duration) { + media.trigger("timeupdate", currentTime); + setTimeout(updateTime, 100); + } else { + currentTime = media.duration; + media.pause(); + } + } + sel.text(currentTime.toString(true)); + } + + + // Binding functions to Popcorn + media.on("setcurrenttime", function(_milliseconds) { + timeDelta = new Date().valueOf() - _milliseconds; + currentTime = new IriSP.Model.Time(_milliseconds); + media.trigger("seeked"); + media.trigger("timeupdate", currentTime); + sel.text(currentTime.toString(true)); + }); + + media.on("setplay", function() { + paused = false; + timeDelta = new Date().valueOf() - currentTime + media.trigger("play"); + updateTime(); + }); + + media.on("setpause", function() { + paused = true; + media.trigger("pause"); + updateTime(); + }); + + media.trigger("loadedmetadata"); + +} \ No newline at end of file