src/js/players/player.mashup.js
author veltr
Wed, 19 Sep 2012 14:59:35 +0900
changeset 963 d58d0dcdb640
parent 957 4da0a5740b6c
permissions -rw-r--r--
Bugfixes
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
957
4da0a5740b6c Starting 'players-as-widgets' branch
veltr
parents: 919
diff changeset
     1
//TODO: Remove and replace by Player Widget
4da0a5740b6c Starting 'players-as-widgets' branch
veltr
parents: 919
diff changeset
     2
894
bb1559ef0fcb Save before switch
veltr
parents:
diff changeset
     3
/* To wrap a player the develop should create a new class derived from
bb1559ef0fcb Save before switch
veltr
parents:
diff changeset
     4
the IriSP.PopcornReplacement.player and defining the correct functions */
bb1559ef0fcb Save before switch
veltr
parents:
diff changeset
     5
bb1559ef0fcb Save before switch
veltr
parents:
diff changeset
     6
/** jwplayer player wrapper */
bb1559ef0fcb Save before switch
veltr
parents:
diff changeset
     7
IriSP.PopcornReplacement.mashup = function(container, options) {
bb1559ef0fcb Save before switch
veltr
parents:
diff changeset
     8
    /* Appel du constructeur de la classe parente */
bb1559ef0fcb Save before switch
veltr
parents:
diff changeset
     9
    IriSP.PopcornReplacement.player.call(this, container, options);   
919
972099304059 Improved HTML Mashup
veltr
parents: 894
diff changeset
    10
894
bb1559ef0fcb Save before switch
veltr
parents:
diff changeset
    11
    var _this = this;
bb1559ef0fcb Save before switch
veltr
parents:
diff changeset
    12
bb1559ef0fcb Save before switch
veltr
parents:
diff changeset
    13
    /* Définition des fonctions de commande :
bb1559ef0fcb Save before switch
veltr
parents:
diff changeset
    14
     this.playerFns.play, .pause, .getPosition, .seek,
bb1559ef0fcb Save before switch
veltr
parents:
diff changeset
    15
     .getMute, .setMute, .getVolume, .setVolume
bb1559ef0fcb Save before switch
veltr
parents:
diff changeset
    16
     doivent être rattachés aux fonctions du player
bb1559ef0fcb Save before switch
veltr
parents:
diff changeset
    17
     * */
bb1559ef0fcb Save before switch
veltr
parents:
diff changeset
    18
bb1559ef0fcb Save before switch
veltr
parents:
diff changeset
    19
    this.playerFns = {
bb1559ef0fcb Save before switch
veltr
parents:
diff changeset
    20
        play : function() {
bb1559ef0fcb Save before switch
veltr
parents:
diff changeset
    21
            if (_this.player) {
bb1559ef0fcb Save before switch
veltr
parents:
diff changeset
    22
                return _this.player.playVideo();
bb1559ef0fcb Save before switch
veltr
parents:
diff changeset
    23
            } else {
bb1559ef0fcb Save before switch
veltr
parents:
diff changeset
    24
                return false;
bb1559ef0fcb Save before switch
veltr
parents:
diff changeset
    25
            }
bb1559ef0fcb Save before switch
veltr
parents:
diff changeset
    26
        },
bb1559ef0fcb Save before switch
veltr
parents:
diff changeset
    27
        pause : function() {
bb1559ef0fcb Save before switch
veltr
parents:
diff changeset
    28
            if (_this.player) {
bb1559ef0fcb Save before switch
veltr
parents:
diff changeset
    29
                return _this.player.pauseVideo();
bb1559ef0fcb Save before switch
veltr
parents:
diff changeset
    30
            } else {
bb1559ef0fcb Save before switch
veltr
parents:
diff changeset
    31
                return false;
bb1559ef0fcb Save before switch
veltr
parents:
diff changeset
    32
            }
bb1559ef0fcb Save before switch
veltr
parents:
diff changeset
    33
        },
bb1559ef0fcb Save before switch
veltr
parents:
diff changeset
    34
        getPosition : function() {
bb1559ef0fcb Save before switch
veltr
parents:
diff changeset
    35
            if (_this.player) {
bb1559ef0fcb Save before switch
veltr
parents:
diff changeset
    36
                return _this.player.getCurrentTime();
bb1559ef0fcb Save before switch
veltr
parents:
diff changeset
    37
            } else {
bb1559ef0fcb Save before switch
veltr
parents:
diff changeset
    38
                return 0;
bb1559ef0fcb Save before switch
veltr
parents:
diff changeset
    39
            }
bb1559ef0fcb Save before switch
veltr
parents:
diff changeset
    40
        },
bb1559ef0fcb Save before switch
veltr
parents:
diff changeset
    41
        seek : function(pos) {
bb1559ef0fcb Save before switch
veltr
parents:
diff changeset
    42
            if (_this.player) {
bb1559ef0fcb Save before switch
veltr
parents:
diff changeset
    43
                return _this.player.seekTo(pos);
bb1559ef0fcb Save before switch
veltr
parents:
diff changeset
    44
            } else {
bb1559ef0fcb Save before switch
veltr
parents:
diff changeset
    45
                return false;
bb1559ef0fcb Save before switch
veltr
parents:
diff changeset
    46
            }
bb1559ef0fcb Save before switch
veltr
parents:
diff changeset
    47
        },
bb1559ef0fcb Save before switch
veltr
parents:
diff changeset
    48
        getMute : function() {
bb1559ef0fcb Save before switch
veltr
parents:
diff changeset
    49
            if (_this.player) {
bb1559ef0fcb Save before switch
veltr
parents:
diff changeset
    50
                return _this.player.isMuted();
bb1559ef0fcb Save before switch
veltr
parents:
diff changeset
    51
            } else {
bb1559ef0fcb Save before switch
veltr
parents:
diff changeset
    52
                return false;
bb1559ef0fcb Save before switch
veltr
parents:
diff changeset
    53
            }
bb1559ef0fcb Save before switch
veltr
parents:
diff changeset
    54
        },
bb1559ef0fcb Save before switch
veltr
parents:
diff changeset
    55
        setMute : function(p) {
bb1559ef0fcb Save before switch
veltr
parents:
diff changeset
    56
            if (_this.player) {
bb1559ef0fcb Save before switch
veltr
parents:
diff changeset
    57
                if (p) {
bb1559ef0fcb Save before switch
veltr
parents:
diff changeset
    58
                    _this.player.mute();
bb1559ef0fcb Save before switch
veltr
parents:
diff changeset
    59
                }
bb1559ef0fcb Save before switch
veltr
parents:
diff changeset
    60
                else {
bb1559ef0fcb Save before switch
veltr
parents:
diff changeset
    61
                    _this.player.unMute();
bb1559ef0fcb Save before switch
veltr
parents:
diff changeset
    62
                }
bb1559ef0fcb Save before switch
veltr
parents:
diff changeset
    63
            }
bb1559ef0fcb Save before switch
veltr
parents:
diff changeset
    64
        },
bb1559ef0fcb Save before switch
veltr
parents:
diff changeset
    65
        getVolume : function() {
bb1559ef0fcb Save before switch
veltr
parents:
diff changeset
    66
            if (_this.player) {
bb1559ef0fcb Save before switch
veltr
parents:
diff changeset
    67
                return _this.player.getVolume() / 2;
bb1559ef0fcb Save before switch
veltr
parents:
diff changeset
    68
            } else {
bb1559ef0fcb Save before switch
veltr
parents:
diff changeset
    69
                return false;
bb1559ef0fcb Save before switch
veltr
parents:
diff changeset
    70
            }
bb1559ef0fcb Save before switch
veltr
parents:
diff changeset
    71
        },
bb1559ef0fcb Save before switch
veltr
parents:
diff changeset
    72
        setVolume : function(p) {
bb1559ef0fcb Save before switch
veltr
parents:
diff changeset
    73
            if (_this.player) {
bb1559ef0fcb Save before switch
veltr
parents:
diff changeset
    74
                _this.player.setVolume(Math.floor(2 * p));
bb1559ef0fcb Save before switch
veltr
parents:
diff changeset
    75
            }
bb1559ef0fcb Save before switch
veltr
parents:
diff changeset
    76
        },
bb1559ef0fcb Save before switch
veltr
parents:
diff changeset
    77
    }
bb1559ef0fcb Save before switch
veltr
parents:
diff changeset
    78
    
bb1559ef0fcb Save before switch
veltr
parents:
diff changeset
    79
    /* Dailymotion utilise un système de fonctions référencées dans
bb1559ef0fcb Save before switch
veltr
parents:
diff changeset
    80
     * des variables globales pour la gestion des événements.
bb1559ef0fcb Save before switch
veltr
parents:
diff changeset
    81
     */
bb1559ef0fcb Save before switch
veltr
parents:
diff changeset
    82
    
bb1559ef0fcb Save before switch
veltr
parents:
diff changeset
    83
    window.onBabPlayerReady = function() {
bb1559ef0fcb Save before switch
veltr
parents:
diff changeset
    84
        _this.onReady();
bb1559ef0fcb Save before switch
veltr
parents:
diff changeset
    85
    };
bb1559ef0fcb Save before switch
veltr
parents:
diff changeset
    86
    window.onBabStateChange = function(_state) {
bb1559ef0fcb Save before switch
veltr
parents:
diff changeset
    87
        _this.onStateChange(_state);
bb1559ef0fcb Save before switch
veltr
parents:
diff changeset
    88
    }
bb1559ef0fcb Save before switch
veltr
parents:
diff changeset
    89
    window.onBabVideoProgress = function(_progress) {
bb1559ef0fcb Save before switch
veltr
parents:
diff changeset
    90
        _this.onProgress(_progress);
bb1559ef0fcb Save before switch
veltr
parents:
diff changeset
    91
    }
bb1559ef0fcb Save before switch
veltr
parents:
diff changeset
    92
bb1559ef0fcb Save before switch
veltr
parents:
diff changeset
    93
    var params = {
bb1559ef0fcb Save before switch
veltr
parents:
diff changeset
    94
        allowScriptAccess : "always",
bb1559ef0fcb Save before switch
veltr
parents:
diff changeset
    95
        wmode: "transparent",
bb1559ef0fcb Save before switch
veltr
parents:
diff changeset
    96
        quality: "high",
bb1559ef0fcb Save before switch
veltr
parents:
diff changeset
    97
        menu: true,
bb1559ef0fcb Save before switch
veltr
parents:
diff changeset
    98
        bgcolor: "#869ca7"
bb1559ef0fcb Save before switch
veltr
parents:
diff changeset
    99
    };
bb1559ef0fcb Save before switch
veltr
parents:
diff changeset
   100
    var atts = {
bb1559ef0fcb Save before switch
veltr
parents:
diff changeset
   101
        id : this.container
bb1559ef0fcb Save before switch
veltr
parents:
diff changeset
   102
    };
bb1559ef0fcb Save before switch
veltr
parents:
diff changeset
   103
    var flashvars = {
bb1559ef0fcb Save before switch
veltr
parents:
diff changeset
   104
        urlData: options.mashup_xml
bb1559ef0fcb Save before switch
veltr
parents:
diff changeset
   105
    };
bb1559ef0fcb Save before switch
veltr
parents:
diff changeset
   106
    swfobject.embedSWF(options.mashup_swf, this.container, options.width, options.height, "8", null, flashvars, params, atts);
bb1559ef0fcb Save before switch
veltr
parents:
diff changeset
   107
bb1559ef0fcb Save before switch
veltr
parents:
diff changeset
   108
};
bb1559ef0fcb Save before switch
veltr
parents:
diff changeset
   109
bb1559ef0fcb Save before switch
veltr
parents:
diff changeset
   110
IriSP.PopcornReplacement.mashup.prototype = new IriSP.PopcornReplacement.player("", {});
bb1559ef0fcb Save before switch
veltr
parents:
diff changeset
   111
bb1559ef0fcb Save before switch
veltr
parents:
diff changeset
   112
IriSP.PopcornReplacement.mashup.prototype.onReady = function() {
bb1559ef0fcb Save before switch
veltr
parents:
diff changeset
   113
    this.player = document.getElementById(this.container);
919
972099304059 Improved HTML Mashup
veltr
parents: 894
diff changeset
   114
    this.trigger("loadedmetadata");
894
bb1559ef0fcb Save before switch
veltr
parents:
diff changeset
   115
};
bb1559ef0fcb Save before switch
veltr
parents:
diff changeset
   116
bb1559ef0fcb Save before switch
veltr
parents:
diff changeset
   117
IriSP.PopcornReplacement.mashup.prototype.onProgress = function(progressInfo) {
919
972099304059 Improved HTML Mashup
veltr
parents: 894
diff changeset
   118
    this.trigger("timeupdate");
894
bb1559ef0fcb Save before switch
veltr
parents:
diff changeset
   119
}
bb1559ef0fcb Save before switch
veltr
parents:
diff changeset
   120
bb1559ef0fcb Save before switch
veltr
parents:
diff changeset
   121
IriSP.PopcornReplacement.mashup.prototype.onStateChange = function(state) {
919
972099304059 Improved HTML Mashup
veltr
parents: 894
diff changeset
   122
894
bb1559ef0fcb Save before switch
veltr
parents:
diff changeset
   123
    switch(state) {
bb1559ef0fcb Save before switch
veltr
parents:
diff changeset
   124
        case 1:
919
972099304059 Improved HTML Mashup
veltr
parents: 894
diff changeset
   125
            this.trigger("play");
894
bb1559ef0fcb Save before switch
veltr
parents:
diff changeset
   126
            break;
bb1559ef0fcb Save before switch
veltr
parents:
diff changeset
   127
bb1559ef0fcb Save before switch
veltr
parents:
diff changeset
   128
        case 2:
919
972099304059 Improved HTML Mashup
veltr
parents: 894
diff changeset
   129
            this.trigger("pause");
894
bb1559ef0fcb Save before switch
veltr
parents:
diff changeset
   130
            break;
bb1559ef0fcb Save before switch
veltr
parents:
diff changeset
   131
bb1559ef0fcb Save before switch
veltr
parents:
diff changeset
   132
        case 3:
919
972099304059 Improved HTML Mashup
veltr
parents: 894
diff changeset
   133
            this.trigger("seeked");
894
bb1559ef0fcb Save before switch
veltr
parents:
diff changeset
   134
            break;
bb1559ef0fcb Save before switch
veltr
parents:
diff changeset
   135
    }
919
972099304059 Improved HTML Mashup
veltr
parents: 894
diff changeset
   136
894
bb1559ef0fcb Save before switch
veltr
parents:
diff changeset
   137
};