src/js/players/player.dailymotion.js
author veltr
Wed, 05 Sep 2012 11:03:20 +0200
changeset 952 693c282aa4e9
parent 919 972099304059
child 957 4da0a5740b6c
permissions -rw-r--r--
Removed obsolete test files
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) {
884
10233337f6da Refactoring tests
veltr
parents: 839
diff changeset
     6
    /* Appel du constructeur de la classe parente */
788
9df15b32efad Dailymotion layering problem solved
veltr
parents: 787
diff changeset
     7
    IriSP.PopcornReplacement.player.call(this, container, options);   
9df15b32efad Dailymotion layering problem solved
veltr
parents: 787
diff changeset
     8
    
785
980163a156d1 Added Dailymotion support
veltr
parents:
diff changeset
     9
    var _this = this;
980163a156d1 Added Dailymotion support
veltr
parents:
diff changeset
    10
884
10233337f6da Refactoring tests
veltr
parents: 839
diff changeset
    11
    /* Définition des fonctions de commande :
10233337f6da Refactoring tests
veltr
parents: 839
diff changeset
    12
     this.playerFns.play, .pause, .getPosition, .seek,
10233337f6da Refactoring tests
veltr
parents: 839
diff changeset
    13
     .getMute, .setMute, .getVolume, .setVolume
10233337f6da Refactoring tests
veltr
parents: 839
diff changeset
    14
     doivent être rattachés aux fonctions du player
10233337f6da Refactoring tests
veltr
parents: 839
diff changeset
    15
     * */
785
980163a156d1 Added Dailymotion support
veltr
parents:
diff changeset
    16
980163a156d1 Added Dailymotion support
veltr
parents:
diff changeset
    17
    this.playerFns = {
980163a156d1 Added Dailymotion support
veltr
parents:
diff changeset
    18
        play : function() {
789
15c32b49de59 Added test on Dailymotion Player
veltr
parents: 788
diff changeset
    19
            if (_this.player) {
15c32b49de59 Added test on Dailymotion Player
veltr
parents: 788
diff changeset
    20
                return _this.player.playVideo();
15c32b49de59 Added test on Dailymotion Player
veltr
parents: 788
diff changeset
    21
            } else {
15c32b49de59 Added test on Dailymotion Player
veltr
parents: 788
diff changeset
    22
                return false;
15c32b49de59 Added test on Dailymotion Player
veltr
parents: 788
diff changeset
    23
            }
785
980163a156d1 Added Dailymotion support
veltr
parents:
diff changeset
    24
        },
980163a156d1 Added Dailymotion support
veltr
parents:
diff changeset
    25
        pause : function() {
789
15c32b49de59 Added test on Dailymotion Player
veltr
parents: 788
diff changeset
    26
            if (_this.player) {
15c32b49de59 Added test on Dailymotion Player
veltr
parents: 788
diff changeset
    27
                return _this.player.pauseVideo();
15c32b49de59 Added test on Dailymotion Player
veltr
parents: 788
diff changeset
    28
            } else {
15c32b49de59 Added test on Dailymotion Player
veltr
parents: 788
diff changeset
    29
                return false;
15c32b49de59 Added test on Dailymotion Player
veltr
parents: 788
diff changeset
    30
            }
785
980163a156d1 Added Dailymotion support
veltr
parents:
diff changeset
    31
        },
980163a156d1 Added Dailymotion support
veltr
parents:
diff changeset
    32
        getPosition : function() {
789
15c32b49de59 Added test on Dailymotion Player
veltr
parents: 788
diff changeset
    33
            if (_this.player) {
15c32b49de59 Added test on Dailymotion Player
veltr
parents: 788
diff changeset
    34
                return _this.player.getCurrentTime();
15c32b49de59 Added test on Dailymotion Player
veltr
parents: 788
diff changeset
    35
            } else {
15c32b49de59 Added test on Dailymotion Player
veltr
parents: 788
diff changeset
    36
                return 0;
15c32b49de59 Added test on Dailymotion Player
veltr
parents: 788
diff changeset
    37
            }
785
980163a156d1 Added Dailymotion support
veltr
parents:
diff changeset
    38
        },
980163a156d1 Added Dailymotion support
veltr
parents:
diff changeset
    39
        seek : function(pos) {
789
15c32b49de59 Added test on Dailymotion Player
veltr
parents: 788
diff changeset
    40
            if (_this.player) {
15c32b49de59 Added test on Dailymotion Player
veltr
parents: 788
diff changeset
    41
                return _this.player.seekTo(pos);
15c32b49de59 Added test on Dailymotion Player
veltr
parents: 788
diff changeset
    42
            } else {
15c32b49de59 Added test on Dailymotion Player
veltr
parents: 788
diff changeset
    43
                return false;
15c32b49de59 Added test on Dailymotion Player
veltr
parents: 788
diff changeset
    44
            }
785
980163a156d1 Added Dailymotion support
veltr
parents:
diff changeset
    45
        },
980163a156d1 Added Dailymotion support
veltr
parents:
diff changeset
    46
        getMute : function() {
789
15c32b49de59 Added test on Dailymotion Player
veltr
parents: 788
diff changeset
    47
            if (_this.player) {
15c32b49de59 Added test on Dailymotion Player
veltr
parents: 788
diff changeset
    48
                return _this.player.isMuted();
15c32b49de59 Added test on Dailymotion Player
veltr
parents: 788
diff changeset
    49
            } else {
15c32b49de59 Added test on Dailymotion Player
veltr
parents: 788
diff changeset
    50
                return false;
15c32b49de59 Added test on Dailymotion Player
veltr
parents: 788
diff changeset
    51
            }
785
980163a156d1 Added Dailymotion support
veltr
parents:
diff changeset
    52
        },
980163a156d1 Added Dailymotion support
veltr
parents:
diff changeset
    53
        setMute : function(p) {
789
15c32b49de59 Added test on Dailymotion Player
veltr
parents: 788
diff changeset
    54
            if (_this.player) {
839
4357aac4eb19 Added volume support
veltr
parents: 793
diff changeset
    55
                if (p) {
4357aac4eb19 Added volume support
veltr
parents: 793
diff changeset
    56
                    _this.player.mute();
4357aac4eb19 Added volume support
veltr
parents: 793
diff changeset
    57
                }
4357aac4eb19 Added volume support
veltr
parents: 793
diff changeset
    58
                else {
4357aac4eb19 Added volume support
veltr
parents: 793
diff changeset
    59
                    _this.player.unMute();
4357aac4eb19 Added volume support
veltr
parents: 793
diff changeset
    60
                }
4357aac4eb19 Added volume support
veltr
parents: 793
diff changeset
    61
            }
4357aac4eb19 Added volume support
veltr
parents: 793
diff changeset
    62
        },
4357aac4eb19 Added volume support
veltr
parents: 793
diff changeset
    63
        getVolume : function() {
4357aac4eb19 Added volume support
veltr
parents: 793
diff changeset
    64
            if (_this.player) {
4357aac4eb19 Added volume support
veltr
parents: 793
diff changeset
    65
                return _this.player.getVolume() / 100;
789
15c32b49de59 Added test on Dailymotion Player
veltr
parents: 788
diff changeset
    66
            } else {
15c32b49de59 Added test on Dailymotion Player
veltr
parents: 788
diff changeset
    67
                return false;
15c32b49de59 Added test on Dailymotion Player
veltr
parents: 788
diff changeset
    68
            }
839
4357aac4eb19 Added volume support
veltr
parents: 793
diff changeset
    69
        },
4357aac4eb19 Added volume support
veltr
parents: 793
diff changeset
    70
        setVolume : function(p) {
4357aac4eb19 Added volume support
veltr
parents: 793
diff changeset
    71
            if (_this.player) {
4357aac4eb19 Added volume support
veltr
parents: 793
diff changeset
    72
                _this.player.setVolume(Math.floor(100 * p));
4357aac4eb19 Added volume support
veltr
parents: 793
diff changeset
    73
            }
4357aac4eb19 Added volume support
veltr
parents: 793
diff changeset
    74
        },
785
980163a156d1 Added Dailymotion support
veltr
parents:
diff changeset
    75
    }
884
10233337f6da Refactoring tests
veltr
parents: 839
diff changeset
    76
    
10233337f6da Refactoring tests
veltr
parents: 839
diff changeset
    77
    /* Dailymotion utilise un système de fonctions référencées dans
10233337f6da Refactoring tests
veltr
parents: 839
diff changeset
    78
     * des variables globales pour la gestion des événements.
10233337f6da Refactoring tests
veltr
parents: 839
diff changeset
    79
     */
10233337f6da Refactoring tests
veltr
parents: 839
diff changeset
    80
    
10233337f6da Refactoring tests
veltr
parents: 839
diff changeset
    81
    window.onDailymotionPlayerReady = function() {
10233337f6da Refactoring tests
veltr
parents: 839
diff changeset
    82
        _this.onReady();
10233337f6da Refactoring tests
veltr
parents: 839
diff changeset
    83
    };
10233337f6da Refactoring tests
veltr
parents: 839
diff changeset
    84
    window.onDailymotionStateChange = function(_state) {
10233337f6da Refactoring tests
veltr
parents: 839
diff changeset
    85
        _this.onStateChange(_state);
10233337f6da Refactoring tests
veltr
parents: 839
diff changeset
    86
    }
10233337f6da Refactoring tests
veltr
parents: 839
diff changeset
    87
    window.onDailymotionVideoProgress = function(_progress) {
10233337f6da Refactoring tests
veltr
parents: 839
diff changeset
    88
        _this.onProgress(_progress);
10233337f6da Refactoring tests
veltr
parents: 839
diff changeset
    89
    }
785
980163a156d1 Added Dailymotion support
veltr
parents:
diff changeset
    90
980163a156d1 Added Dailymotion support
veltr
parents:
diff changeset
    91
    var params = {
788
9df15b32efad Dailymotion layering problem solved
veltr
parents: 787
diff changeset
    92
        "allowScriptAccess" : "always",
9df15b32efad Dailymotion layering problem solved
veltr
parents: 787
diff changeset
    93
        "wmode": "opaque"
785
980163a156d1 Added Dailymotion support
veltr
parents:
diff changeset
    94
    };
980163a156d1 Added Dailymotion support
veltr
parents:
diff changeset
    95
    var atts = {
980163a156d1 Added Dailymotion support
veltr
parents:
diff changeset
    96
        id : this.container
980163a156d1 Added Dailymotion support
veltr
parents:
diff changeset
    97
    };
980163a156d1 Added Dailymotion support
veltr
parents:
diff changeset
    98
    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
    99
980163a156d1 Added Dailymotion support
veltr
parents:
diff changeset
   100
};
980163a156d1 Added Dailymotion support
veltr
parents:
diff changeset
   101
980163a156d1 Added Dailymotion support
veltr
parents:
diff changeset
   102
IriSP.PopcornReplacement.dailymotion.prototype = new IriSP.PopcornReplacement.player("", {});
980163a156d1 Added Dailymotion support
veltr
parents:
diff changeset
   103
884
10233337f6da Refactoring tests
veltr
parents: 839
diff changeset
   104
IriSP.PopcornReplacement.dailymotion.prototype.onReady = function() {
785
980163a156d1 Added Dailymotion support
veltr
parents:
diff changeset
   105
    
980163a156d1 Added Dailymotion support
veltr
parents:
diff changeset
   106
    this.player = document.getElementById(this.container);
980163a156d1 Added Dailymotion support
veltr
parents:
diff changeset
   107
    
980163a156d1 Added Dailymotion support
veltr
parents:
diff changeset
   108
    this.player.addEventListener("onStateChange", "onDailymotionStateChange");
980163a156d1 Added Dailymotion support
veltr
parents:
diff changeset
   109
    this.player.addEventListener("onVideoProgress", "onDailymotionVideoProgress");
787
e8e73fddb5ac Dailymotion player doesn't autostart video
veltr
parents: 785
diff changeset
   110
    this.player.cueVideoByUrl(this._options.video);
792
f6c58ac994db fixed bug in dailymotion player.
hamidouk
parents: 789
diff changeset
   111
    
919
972099304059 Improved HTML Mashup
veltr
parents: 884
diff changeset
   112
    this.trigger("loadedmetadata");
785
980163a156d1 Added Dailymotion support
veltr
parents:
diff changeset
   113
};
980163a156d1 Added Dailymotion support
veltr
parents:
diff changeset
   114
884
10233337f6da Refactoring tests
veltr
parents: 839
diff changeset
   115
IriSP.PopcornReplacement.dailymotion.prototype.onProgress = function(progressInfo) {
919
972099304059 Improved HTML Mashup
veltr
parents: 884
diff changeset
   116
    this.trigger("timeupdate");
785
980163a156d1 Added Dailymotion support
veltr
parents:
diff changeset
   117
}
980163a156d1 Added Dailymotion support
veltr
parents:
diff changeset
   118
884
10233337f6da Refactoring tests
veltr
parents: 839
diff changeset
   119
IriSP.PopcornReplacement.dailymotion.prototype.onStateChange = function(state) {
785
980163a156d1 Added Dailymotion support
veltr
parents:
diff changeset
   120
    
980163a156d1 Added Dailymotion support
veltr
parents:
diff changeset
   121
    switch(state) {
980163a156d1 Added Dailymotion support
veltr
parents:
diff changeset
   122
        case 1:
919
972099304059 Improved HTML Mashup
veltr
parents: 884
diff changeset
   123
            this.trigger("play");
785
980163a156d1 Added Dailymotion support
veltr
parents:
diff changeset
   124
            break;
980163a156d1 Added Dailymotion support
veltr
parents:
diff changeset
   125
980163a156d1 Added Dailymotion support
veltr
parents:
diff changeset
   126
        case 2:
919
972099304059 Improved HTML Mashup
veltr
parents: 884
diff changeset
   127
            this.trigger("pause");
785
980163a156d1 Added Dailymotion support
veltr
parents:
diff changeset
   128
            break;
980163a156d1 Added Dailymotion support
veltr
parents:
diff changeset
   129
980163a156d1 Added Dailymotion support
veltr
parents:
diff changeset
   130
        case 3:
919
972099304059 Improved HTML Mashup
veltr
parents: 884
diff changeset
   131
            this.trigger("seeked");
785
980163a156d1 Added Dailymotion support
veltr
parents:
diff changeset
   132
            break;
980163a156d1 Added Dailymotion support
veltr
parents:
diff changeset
   133
    }
980163a156d1 Added Dailymotion support
veltr
parents:
diff changeset
   134
    
789
15c32b49de59 Added test on Dailymotion Player
veltr
parents: 788
diff changeset
   135
};