# HG changeset patch # User veltr # Date 1359470321 -3600 # Node ID 2b036bd80f6db72954e0dd27ca52f68ae524b33b # Parent 6a90c96f0b4c6a9427380180e10ebb6b6da9ae80 Added a placeholder player for video-less tests diff -r 6a90c96f0b4c -r 2b036bd80f6d src/widgets/PlaceholderPlayer.css --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/widgets/PlaceholderPlayer.css Tue Jan 29 15:38:41 2013 +0100 @@ -0,0 +1,5 @@ +.Ldt-PlaceholderPlayer { + font-size: 40px; text-align: center; + padding: 20px 0; font-weight: bolder; + background: #333333; color: #FFFFFF; +} 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 diff -r 6a90c96f0b4c -r 2b036bd80f6d test/index.htm --- a/test/index.htm Mon Jan 28 18:17:26 2013 +0100 +++ b/test/index.htm Tue Jan 29 15:38:41 2013 +0100 @@ -11,9 +11,10 @@

Metadataplayer test configurations