web/res/metadataplayer/DailymotionPlayer.js
author Nicolas Sauret <nicolas.sauret@iri.centrepompidou.fr>
Fri, 17 Jan 2014 17:01:30 +0100
changeset 1052 31bcc09b375c
parent 955 5171f8825985
child 1304 10974bff4dae
permissions -rw-r--r--
Added tag V02.63 for changeset c9453d474261
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
694
e9400c80e1e4 Updated Metadataplayer
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
     1
IriSP.Widgets.DailymotionPlayer = function(player, config) {
e9400c80e1e4 Updated Metadataplayer
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
     2
    IriSP.Widgets.Widget.call(this, player, config);
e9400c80e1e4 Updated Metadataplayer
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
     3
};
e9400c80e1e4 Updated Metadataplayer
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
     4
e9400c80e1e4 Updated Metadataplayer
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
     5
IriSP.Widgets.DailymotionPlayer.prototype = new IriSP.Widgets.Widget();
e9400c80e1e4 Updated Metadataplayer
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
     6
e9400c80e1e4 Updated Metadataplayer
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
     7
IriSP.Widgets.DailymotionPlayer.prototype.defaults = {
e9400c80e1e4 Updated Metadataplayer
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
     8
    aspect_ratio: 14/9
955
5171f8825985 Updated Metadataplayer
Raphael Velt <raph.velt@gmail.com>
parents: 694
diff changeset
     9
};
694
e9400c80e1e4 Updated Metadataplayer
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    10
e9400c80e1e4 Updated Metadataplayer
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    11
IriSP.Widgets.DailymotionPlayer.prototype.draw = function() {
e9400c80e1e4 Updated Metadataplayer
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    12
    
e9400c80e1e4 Updated Metadataplayer
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    13
    if (typeof this.video === "undefined") {
e9400c80e1e4 Updated Metadataplayer
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    14
        this.video = this.media.video;
e9400c80e1e4 Updated Metadataplayer
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    15
    }
e9400c80e1e4 Updated Metadataplayer
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    16
e9400c80e1e4 Updated Metadataplayer
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    17
    this.height = this.height || Math.floor(this.width / this.aspect_ratio);
e9400c80e1e4 Updated Metadataplayer
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    18
    
e9400c80e1e4 Updated Metadataplayer
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    19
    var _media = this.media,
e9400c80e1e4 Updated Metadataplayer
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    20
        _this = this,
e9400c80e1e4 Updated Metadataplayer
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    21
        _pauseState = true;
e9400c80e1e4 Updated Metadataplayer
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    22
    
e9400c80e1e4 Updated Metadataplayer
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    23
    /* Dailymotion utilise un système de fonctions référencées dans
e9400c80e1e4 Updated Metadataplayer
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    24
     * des variables globales pour la gestion des événements.
e9400c80e1e4 Updated Metadataplayer
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    25
     */
e9400c80e1e4 Updated Metadataplayer
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    26
    
e9400c80e1e4 Updated Metadataplayer
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    27
    window.onDailymotionPlayerReady = function() {
e9400c80e1e4 Updated Metadataplayer
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    28
e9400c80e1e4 Updated Metadataplayer
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    29
        var _player = document.getElementById(_this.container);
e9400c80e1e4 Updated Metadataplayer
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    30
        
e9400c80e1e4 Updated Metadataplayer
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    31
        _media.getCurrentTime = function() {
e9400c80e1e4 Updated Metadataplayer
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    32
            return new IriSP.Model.Time(1000*_player.getCurrentTime());
955
5171f8825985 Updated Metadataplayer
Raphael Velt <raph.velt@gmail.com>
parents: 694
diff changeset
    33
        };
694
e9400c80e1e4 Updated Metadataplayer
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    34
        _media.getVolume = function() {
e9400c80e1e4 Updated Metadataplayer
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    35
            return _player.getVolume() / 100;
955
5171f8825985 Updated Metadataplayer
Raphael Velt <raph.velt@gmail.com>
parents: 694
diff changeset
    36
        };
694
e9400c80e1e4 Updated Metadataplayer
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    37
        _media.getPaused = function() {
e9400c80e1e4 Updated Metadataplayer
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    38
            return _pauseState;
955
5171f8825985 Updated Metadataplayer
Raphael Velt <raph.velt@gmail.com>
parents: 694
diff changeset
    39
        };
694
e9400c80e1e4 Updated Metadataplayer
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    40
        _media.getMuted = function() {
e9400c80e1e4 Updated Metadataplayer
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    41
            return _player.isMuted();
955
5171f8825985 Updated Metadataplayer
Raphael Velt <raph.velt@gmail.com>
parents: 694
diff changeset
    42
        };
694
e9400c80e1e4 Updated Metadataplayer
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    43
        _media.setCurrentTime = function(_milliseconds) {
e9400c80e1e4 Updated Metadataplayer
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    44
            _seekPause = _pauseState;
e9400c80e1e4 Updated Metadataplayer
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    45
            return _player.seekTo(_milliseconds / 1000);
955
5171f8825985 Updated Metadataplayer
Raphael Velt <raph.velt@gmail.com>
parents: 694
diff changeset
    46
        };
694
e9400c80e1e4 Updated Metadataplayer
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    47
        _media.setVolume = function(_vol) {
e9400c80e1e4 Updated Metadataplayer
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    48
            return _player.setVolume(Math.floor(_vol*100));
955
5171f8825985 Updated Metadataplayer
Raphael Velt <raph.velt@gmail.com>
parents: 694
diff changeset
    49
        };
694
e9400c80e1e4 Updated Metadataplayer
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    50
        _media.mute = function() {
e9400c80e1e4 Updated Metadataplayer
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    51
            return _player.mute();
955
5171f8825985 Updated Metadataplayer
Raphael Velt <raph.velt@gmail.com>
parents: 694
diff changeset
    52
        };
694
e9400c80e1e4 Updated Metadataplayer
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    53
        _media.unmute = function() {
e9400c80e1e4 Updated Metadataplayer
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    54
            return _player.unMute();
955
5171f8825985 Updated Metadataplayer
Raphael Velt <raph.velt@gmail.com>
parents: 694
diff changeset
    55
        };
694
e9400c80e1e4 Updated Metadataplayer
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    56
        _media.play = function() {
e9400c80e1e4 Updated Metadataplayer
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    57
            return _player.playVideo();
955
5171f8825985 Updated Metadataplayer
Raphael Velt <raph.velt@gmail.com>
parents: 694
diff changeset
    58
        };
694
e9400c80e1e4 Updated Metadataplayer
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    59
        _media.pause = function() {
e9400c80e1e4 Updated Metadataplayer
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    60
            return _player.pauseVideo();
955
5171f8825985 Updated Metadataplayer
Raphael Velt <raph.velt@gmail.com>
parents: 694
diff changeset
    61
        };
694
e9400c80e1e4 Updated Metadataplayer
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    62
        
e9400c80e1e4 Updated Metadataplayer
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    63
        _player.addEventListener("onStateChange", "onDailymotionStateChange");
e9400c80e1e4 Updated Metadataplayer
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    64
        _player.addEventListener("onVideoProgress", "onDailymotionVideoProgress");
e9400c80e1e4 Updated Metadataplayer
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    65
        
e9400c80e1e4 Updated Metadataplayer
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    66
        _player.cueVideoByUrl(_this.video);
e9400c80e1e4 Updated Metadataplayer
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    67
        
e9400c80e1e4 Updated Metadataplayer
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    68
        _media.trigger("loadedmetadata");
955
5171f8825985 Updated Metadataplayer
Raphael Velt <raph.velt@gmail.com>
parents: 694
diff changeset
    69
    };
694
e9400c80e1e4 Updated Metadataplayer
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    70
    
e9400c80e1e4 Updated Metadataplayer
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    71
    window.onDailymotionStateChange = function(_state) {
e9400c80e1e4 Updated Metadataplayer
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    72
        switch(_state) {
e9400c80e1e4 Updated Metadataplayer
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    73
            case 1:
e9400c80e1e4 Updated Metadataplayer
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    74
                _media.trigger("play");
e9400c80e1e4 Updated Metadataplayer
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    75
                _pauseState = false;
e9400c80e1e4 Updated Metadataplayer
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    76
                break;
e9400c80e1e4 Updated Metadataplayer
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    77
    
e9400c80e1e4 Updated Metadataplayer
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    78
            case 2:
e9400c80e1e4 Updated Metadataplayer
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    79
                _media.trigger("pause");
e9400c80e1e4 Updated Metadataplayer
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    80
                _pauseState = true;
e9400c80e1e4 Updated Metadataplayer
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    81
                break;
e9400c80e1e4 Updated Metadataplayer
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    82
    
e9400c80e1e4 Updated Metadataplayer
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    83
            case 3:
e9400c80e1e4 Updated Metadataplayer
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    84
                _media.trigger("seeked");
e9400c80e1e4 Updated Metadataplayer
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    85
                break;
e9400c80e1e4 Updated Metadataplayer
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    86
        }
955
5171f8825985 Updated Metadataplayer
Raphael Velt <raph.velt@gmail.com>
parents: 694
diff changeset
    87
    };
694
e9400c80e1e4 Updated Metadataplayer
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    88
    
e9400c80e1e4 Updated Metadataplayer
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    89
    window.onDailymotionVideoProgress = function(_progress) {
e9400c80e1e4 Updated Metadataplayer
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    90
        _media.trigger("timeupdate", new IriSP.Model.Time(_progress.mediaTime * 1000));
955
5171f8825985 Updated Metadataplayer
Raphael Velt <raph.velt@gmail.com>
parents: 694
diff changeset
    91
    };
694
e9400c80e1e4 Updated Metadataplayer
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    92
    
e9400c80e1e4 Updated Metadataplayer
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    93
    var params = {
e9400c80e1e4 Updated Metadataplayer
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    94
        "allowScriptAccess" : "always",
e9400c80e1e4 Updated Metadataplayer
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    95
        "wmode": "opaque"
e9400c80e1e4 Updated Metadataplayer
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    96
    };
e9400c80e1e4 Updated Metadataplayer
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    97
    
e9400c80e1e4 Updated Metadataplayer
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    98
    var atts = {
e9400c80e1e4 Updated Metadataplayer
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    99
        id : this.container
e9400c80e1e4 Updated Metadataplayer
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
   100
    };
e9400c80e1e4 Updated Metadataplayer
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
   101
e9400c80e1e4 Updated Metadataplayer
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
   102
    swfobject.embedSWF("http://www.dailymotion.com/swf?chromeless=1&enableApi=1", this.container, this.width, this.height, "8", null, null, params, atts);
e9400c80e1e4 Updated Metadataplayer
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
   103
    
955
5171f8825985 Updated Metadataplayer
Raphael Velt <raph.velt@gmail.com>
parents: 694
diff changeset
   104
};