src/js/players/player.dailymotion.js
author hamidouk
Fri, 17 Feb 2012 11:57:27 +0100
branchpopcorn-port
changeset 817 e9599ee285ab
parent 793 6ff51024d2db
child 839 4357aac4eb19
permissions -rw-r--r--
implements the most asked for feature ever : placeholder text in the annotation creation textfield.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
785
980163a156d1 Added Dailymotion support
veltr
parents:
diff changeset
     1
/* To wrap a player the develop should create a new class derived from
980163a156d1 Added Dailymotion support
veltr
parents:
diff changeset
     2
the IriSP.PopcornReplacement.player and defining the correct functions */
980163a156d1 Added Dailymotion support
veltr
parents:
diff changeset
     3
980163a156d1 Added Dailymotion support
veltr
parents:
diff changeset
     4
/** jwplayer player wrapper */
980163a156d1 Added Dailymotion support
veltr
parents:
diff changeset
     5
IriSP.PopcornReplacement.dailymotion = function(container, options) {
788
9df15b32efad Dailymotion layering problem solved
veltr
parents: 787
diff changeset
     6
    console.log("Calling");
785
980163a156d1 Added Dailymotion support
veltr
parents:
diff changeset
     7
    /* appel du parent pour initialiser les structures communes à tous les players */
788
9df15b32efad Dailymotion layering problem solved
veltr
parents: 787
diff changeset
     8
    IriSP.PopcornReplacement.player.call(this, container, options);   
9df15b32efad Dailymotion layering problem solved
veltr
parents: 787
diff changeset
     9
    
785
980163a156d1 Added Dailymotion support
veltr
parents:
diff changeset
    10
    var _this = this;
980163a156d1 Added Dailymotion support
veltr
parents:
diff changeset
    11
980163a156d1 Added Dailymotion support
veltr
parents:
diff changeset
    12
    /* Définition des fonctions de l'API -  */
980163a156d1 Added Dailymotion support
veltr
parents:
diff changeset
    13
980163a156d1 Added Dailymotion support
veltr
parents:
diff changeset
    14
    this.playerFns = {
980163a156d1 Added Dailymotion support
veltr
parents:
diff changeset
    15
        play : function() {
789
15c32b49de59 Added test on Dailymotion Player
veltr
parents: 788
diff changeset
    16
            if (_this.player) {
15c32b49de59 Added test on Dailymotion Player
veltr
parents: 788
diff changeset
    17
                return _this.player.playVideo();
15c32b49de59 Added test on Dailymotion Player
veltr
parents: 788
diff changeset
    18
            } else {
15c32b49de59 Added test on Dailymotion Player
veltr
parents: 788
diff changeset
    19
                return false;
15c32b49de59 Added test on Dailymotion Player
veltr
parents: 788
diff changeset
    20
            }
785
980163a156d1 Added Dailymotion support
veltr
parents:
diff changeset
    21
        },
980163a156d1 Added Dailymotion support
veltr
parents:
diff changeset
    22
        pause : function() {
789
15c32b49de59 Added test on Dailymotion Player
veltr
parents: 788
diff changeset
    23
            if (_this.player) {
15c32b49de59 Added test on Dailymotion Player
veltr
parents: 788
diff changeset
    24
                return _this.player.pauseVideo();
15c32b49de59 Added test on Dailymotion Player
veltr
parents: 788
diff changeset
    25
            } else {
15c32b49de59 Added test on Dailymotion Player
veltr
parents: 788
diff changeset
    26
                return false;
15c32b49de59 Added test on Dailymotion Player
veltr
parents: 788
diff changeset
    27
            }
785
980163a156d1 Added Dailymotion support
veltr
parents:
diff changeset
    28
        },
980163a156d1 Added Dailymotion support
veltr
parents:
diff changeset
    29
        getPosition : function() {
789
15c32b49de59 Added test on Dailymotion Player
veltr
parents: 788
diff changeset
    30
            if (_this.player) {
15c32b49de59 Added test on Dailymotion Player
veltr
parents: 788
diff changeset
    31
                return _this.player.getCurrentTime();
15c32b49de59 Added test on Dailymotion Player
veltr
parents: 788
diff changeset
    32
            } else {
15c32b49de59 Added test on Dailymotion Player
veltr
parents: 788
diff changeset
    33
                return 0;
15c32b49de59 Added test on Dailymotion Player
veltr
parents: 788
diff changeset
    34
            }
785
980163a156d1 Added Dailymotion support
veltr
parents:
diff changeset
    35
        },
980163a156d1 Added Dailymotion support
veltr
parents:
diff changeset
    36
        seek : function(pos) {
789
15c32b49de59 Added test on Dailymotion Player
veltr
parents: 788
diff changeset
    37
            if (_this.player) {
15c32b49de59 Added test on Dailymotion Player
veltr
parents: 788
diff changeset
    38
                return _this.player.seekTo(pos);
15c32b49de59 Added test on Dailymotion Player
veltr
parents: 788
diff changeset
    39
            } else {
15c32b49de59 Added test on Dailymotion Player
veltr
parents: 788
diff changeset
    40
                return false;
15c32b49de59 Added test on Dailymotion Player
veltr
parents: 788
diff changeset
    41
            }
785
980163a156d1 Added Dailymotion support
veltr
parents:
diff changeset
    42
        },
980163a156d1 Added Dailymotion support
veltr
parents:
diff changeset
    43
        getMute : function() {
789
15c32b49de59 Added test on Dailymotion Player
veltr
parents: 788
diff changeset
    44
            if (_this.player) {
15c32b49de59 Added test on Dailymotion Player
veltr
parents: 788
diff changeset
    45
                return _this.player.isMuted();
15c32b49de59 Added test on Dailymotion Player
veltr
parents: 788
diff changeset
    46
            } else {
15c32b49de59 Added test on Dailymotion Player
veltr
parents: 788
diff changeset
    47
                return false;
15c32b49de59 Added test on Dailymotion Player
veltr
parents: 788
diff changeset
    48
            }
785
980163a156d1 Added Dailymotion support
veltr
parents:
diff changeset
    49
        },
980163a156d1 Added Dailymotion support
veltr
parents:
diff changeset
    50
        setMute : function(p) {
789
15c32b49de59 Added test on Dailymotion Player
veltr
parents: 788
diff changeset
    51
            if (_this.player) {
15c32b49de59 Added test on Dailymotion Player
veltr
parents: 788
diff changeset
    52
                return p ? _this.player.mute() : _this.player.unMute();
15c32b49de59 Added test on Dailymotion Player
veltr
parents: 788
diff changeset
    53
            } else {
15c32b49de59 Added test on Dailymotion Player
veltr
parents: 788
diff changeset
    54
                return false;
15c32b49de59 Added test on Dailymotion Player
veltr
parents: 788
diff changeset
    55
            }
785
980163a156d1 Added Dailymotion support
veltr
parents:
diff changeset
    56
        }
980163a156d1 Added Dailymotion support
veltr
parents:
diff changeset
    57
    }
980163a156d1 Added Dailymotion support
veltr
parents:
diff changeset
    58
980163a156d1 Added Dailymotion support
veltr
parents:
diff changeset
    59
    window.onDailymotionPlayerReady = IriSP.wrap(this, this.ready);
980163a156d1 Added Dailymotion support
veltr
parents:
diff changeset
    60
    window.onDailymotionStateChange = IriSP.wrap(this, this.stateHandler);
980163a156d1 Added Dailymotion support
veltr
parents:
diff changeset
    61
    window.onDailymotionVideoProgress = IriSP.wrap(this, this.progressHandler);
980163a156d1 Added Dailymotion support
veltr
parents:
diff changeset
    62
980163a156d1 Added Dailymotion support
veltr
parents:
diff changeset
    63
    var params = {
788
9df15b32efad Dailymotion layering problem solved
veltr
parents: 787
diff changeset
    64
        "allowScriptAccess" : "always",
9df15b32efad Dailymotion layering problem solved
veltr
parents: 787
diff changeset
    65
        "wmode": "opaque"
785
980163a156d1 Added Dailymotion support
veltr
parents:
diff changeset
    66
    };
980163a156d1 Added Dailymotion support
veltr
parents:
diff changeset
    67
    var atts = {
980163a156d1 Added Dailymotion support
veltr
parents:
diff changeset
    68
        id : this.container
980163a156d1 Added Dailymotion support
veltr
parents:
diff changeset
    69
    };
980163a156d1 Added Dailymotion support
veltr
parents:
diff changeset
    70
    swfobject.embedSWF("http://www.dailymotion.com/swf?chromeless=1&enableApi=1", this.container, options.width, options.height, "8", null, null, params, atts);
980163a156d1 Added Dailymotion support
veltr
parents:
diff changeset
    71
980163a156d1 Added Dailymotion support
veltr
parents:
diff changeset
    72
};
980163a156d1 Added Dailymotion support
veltr
parents:
diff changeset
    73
980163a156d1 Added Dailymotion support
veltr
parents:
diff changeset
    74
IriSP.PopcornReplacement.dailymotion.prototype = new IriSP.PopcornReplacement.player("", {});
980163a156d1 Added Dailymotion support
veltr
parents:
diff changeset
    75
980163a156d1 Added Dailymotion support
veltr
parents:
diff changeset
    76
IriSP.PopcornReplacement.dailymotion.prototype.ready = function() {
980163a156d1 Added Dailymotion support
veltr
parents:
diff changeset
    77
    
980163a156d1 Added Dailymotion support
veltr
parents:
diff changeset
    78
    this.player = document.getElementById(this.container);
980163a156d1 Added Dailymotion support
veltr
parents:
diff changeset
    79
    
980163a156d1 Added Dailymotion support
veltr
parents:
diff changeset
    80
    this.player.addEventListener("onStateChange", "onDailymotionStateChange");
980163a156d1 Added Dailymotion support
veltr
parents:
diff changeset
    81
    this.player.addEventListener("onVideoProgress", "onDailymotionVideoProgress");
787
e8e73fddb5ac Dailymotion player doesn't autostart video
veltr
parents: 785
diff changeset
    82
    this.player.cueVideoByUrl(this._options.video);
792
f6c58ac994db fixed bug in dailymotion player.
hamidouk
parents: 789
diff changeset
    83
    
f6c58ac994db fixed bug in dailymotion player.
hamidouk
parents: 789
diff changeset
    84
    this.callbacks.onReady();
785
980163a156d1 Added Dailymotion support
veltr
parents:
diff changeset
    85
};
980163a156d1 Added Dailymotion support
veltr
parents:
diff changeset
    86
980163a156d1 Added Dailymotion support
veltr
parents:
diff changeset
    87
IriSP.PopcornReplacement.dailymotion.prototype.progressHandler = function(progressInfo) {
980163a156d1 Added Dailymotion support
veltr
parents:
diff changeset
    88
    
980163a156d1 Added Dailymotion support
veltr
parents:
diff changeset
    89
    this.callbacks.onTime({
980163a156d1 Added Dailymotion support
veltr
parents:
diff changeset
    90
        position: progressInfo.mediaTime
980163a156d1 Added Dailymotion support
veltr
parents:
diff changeset
    91
    });
980163a156d1 Added Dailymotion support
veltr
parents:
diff changeset
    92
}
980163a156d1 Added Dailymotion support
veltr
parents:
diff changeset
    93
980163a156d1 Added Dailymotion support
veltr
parents:
diff changeset
    94
IriSP.PopcornReplacement.dailymotion.prototype.stateHandler = function(state) {
980163a156d1 Added Dailymotion support
veltr
parents:
diff changeset
    95
    
980163a156d1 Added Dailymotion support
veltr
parents:
diff changeset
    96
    switch(state) {
980163a156d1 Added Dailymotion support
veltr
parents:
diff changeset
    97
        case 1:
980163a156d1 Added Dailymotion support
veltr
parents:
diff changeset
    98
            this.callbacks.onPlay();
980163a156d1 Added Dailymotion support
veltr
parents:
diff changeset
    99
            break;
980163a156d1 Added Dailymotion support
veltr
parents:
diff changeset
   100
980163a156d1 Added Dailymotion support
veltr
parents:
diff changeset
   101
        case 2:
980163a156d1 Added Dailymotion support
veltr
parents:
diff changeset
   102
            this.callbacks.onPause();
980163a156d1 Added Dailymotion support
veltr
parents:
diff changeset
   103
            break;
980163a156d1 Added Dailymotion support
veltr
parents:
diff changeset
   104
980163a156d1 Added Dailymotion support
veltr
parents:
diff changeset
   105
        case 3:
789
15c32b49de59 Added test on Dailymotion Player
veltr
parents: 788
diff changeset
   106
            this.callbacks.onSeek({
15c32b49de59 Added test on Dailymotion Player
veltr
parents: 788
diff changeset
   107
                position: this.player.getCurrentTime()
15c32b49de59 Added test on Dailymotion Player
veltr
parents: 788
diff changeset
   108
            });
785
980163a156d1 Added Dailymotion support
veltr
parents:
diff changeset
   109
            break;
980163a156d1 Added Dailymotion support
veltr
parents:
diff changeset
   110
792
f6c58ac994db fixed bug in dailymotion player.
hamidouk
parents: 789
diff changeset
   111
        /*
785
980163a156d1 Added Dailymotion support
veltr
parents:
diff changeset
   112
        case 5:
980163a156d1 Added Dailymotion support
veltr
parents:
diff changeset
   113
            this.callbacks.onReady();
980163a156d1 Added Dailymotion support
veltr
parents:
diff changeset
   114
            break;
792
f6c58ac994db fixed bug in dailymotion player.
hamidouk
parents: 789
diff changeset
   115
        */
785
980163a156d1 Added Dailymotion support
veltr
parents:
diff changeset
   116
    }
980163a156d1 Added Dailymotion support
veltr
parents:
diff changeset
   117
    
789
15c32b49de59 Added test on Dailymotion Player
veltr
parents: 788
diff changeset
   118
};