diff -r 000000000000 -r 7f8907368bd5 web/lib/metadataplayer/DailymotionPlayer.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/web/lib/metadataplayer/DailymotionPlayer.js Fri Oct 18 17:54:44 2013 +0200 @@ -0,0 +1,104 @@ +IriSP.Widgets.DailymotionPlayer = function(player, config) { + IriSP.Widgets.Widget.call(this, player, config); +}; + +IriSP.Widgets.DailymotionPlayer.prototype = new IriSP.Widgets.Widget(); + +IriSP.Widgets.DailymotionPlayer.prototype.defaults = { + aspect_ratio: 14/9 +}; + +IriSP.Widgets.DailymotionPlayer.prototype.draw = function() { + + if (typeof this.video === "undefined") { + this.video = this.media.video; + } + + this.height = this.height || Math.floor(this.width / this.aspect_ratio); + + var _media = this.media, + _this = this, + _pauseState = true; + + /* Dailymotion utilise un système de fonctions référencées dans + * des variables globales pour la gestion des événements. + */ + + window.onDailymotionPlayerReady = function() { + + var _player = document.getElementById(_this.container); + + _media.getCurrentTime = function() { + return new IriSP.Model.Time(1000*_player.getCurrentTime()); + }; + _media.getVolume = function() { + return _player.getVolume() / 100; + }; + _media.getPaused = function() { + return _pauseState; + }; + _media.getMuted = function() { + return _player.isMuted(); + }; + _media.setCurrentTime = function(_milliseconds) { + _seekPause = _pauseState; + return _player.seekTo(_milliseconds / 1000); + }; + _media.setVolume = function(_vol) { + return _player.setVolume(Math.floor(_vol*100)); + }; + _media.mute = function() { + return _player.mute(); + }; + _media.unmute = function() { + return _player.unMute(); + }; + _media.play = function() { + return _player.playVideo(); + }; + _media.pause = function() { + return _player.pauseVideo(); + }; + + _player.addEventListener("onStateChange", "onDailymotionStateChange"); + _player.addEventListener("onVideoProgress", "onDailymotionVideoProgress"); + + _player.cueVideoByUrl(_this.video); + + _media.trigger("loadedmetadata"); + }; + + window.onDailymotionStateChange = function(_state) { + switch(_state) { + case 1: + _media.trigger("play"); + _pauseState = false; + break; + + case 2: + _media.trigger("pause"); + _pauseState = true; + break; + + case 3: + _media.trigger("seeked"); + break; + } + }; + + window.onDailymotionVideoProgress = function(_progress) { + _media.trigger("timeupdate", new IriSP.Model.Time(_progress.mediaTime * 1000)); + }; + + var params = { + "allowScriptAccess" : "always", + "wmode": "opaque" + }; + + var atts = { + id : this.container + }; + + swfobject.embedSWF("http://www.dailymotion.com/swf?chromeless=1&enableApi=1", this.container, this.width, this.height, "8", null, null, params, atts); + +}; \ No newline at end of file