src/widgets/AutoPlayer.js
branchnew-model
changeset 1020 198c2b79f5e1
parent 1019 3ab36f402b0c
equal deleted inserted replaced
1019:3ab36f402b0c 1020:198c2b79f5e1
     1 IriSP.Widgets.AutoPlayer = function(player, config) {
       
     2     IriSP.Widgets.Widget.call(this, player, config);
       
     3 };
       
     4 
       
     5 IriSP.Widgets.AutoPlayer.prototype = new IriSP.Widgets.Widget();
       
     6 
       
     7 IriSP.Widgets.AutoPlayer.prototype.defaults = {
       
     8     default_type: "JwpPlayer"
       
     9 };
       
    10 
       
    11 IriSP.Widgets.AutoPlayer.prototype.draw = function() {
       
    12     
       
    13     if (typeof this.video === "undefined") {
       
    14         this.video = this.media.video;
       
    15     }
       
    16     
       
    17     var _props = [ "live", "provider", "autostart", "streamer", "video", "height", "width", "url_transform" ],
       
    18         _opts = {},
       
    19         _types = [
       
    20             {
       
    21                 regexp: /^rtmp:\/\//,
       
    22                 type: "JwpPlayer"
       
    23             },
       
    24             {
       
    25                 regexp: /\.(mp4|m4v)$/,
       
    26                 type: "AdaptivePlayer"
       
    27             },
       
    28             {
       
    29                 regexp: /\.(ogg|ogv|webm)$/,
       
    30                 type: "HtmlPlayer"
       
    31             },
       
    32             {
       
    33                 regexp: /^(https?:\/\/)?(www\.)?youtube\.com/,
       
    34                 type: "PopcornPlayer"
       
    35             },
       
    36             {
       
    37                 regexp: /^(https?:\/\/)?(www\.)?vimeo\.com/,
       
    38                 type: "PopcornPlayer"
       
    39             },
       
    40             {
       
    41                 regexp: /^(https?:\/\/)?(www\.)?dailymotion\.com/,
       
    42                 type: "DailymotionPlayer"
       
    43             }
       
    44         ],
       
    45         _rtmprgx = /^rtmp:\/\//;
       
    46     
       
    47     for (var i = 0; i < _types.length; i++) {
       
    48         if (_types[i].regexp.test(this.video)) {
       
    49             _opts.type =  _types[i].type;
       
    50             break;
       
    51         }
       
    52     }
       
    53     
       
    54     if (typeof _opts.type === "undefined") {
       
    55         _opts.type = this.default_type;
       
    56     }
       
    57     
       
    58     if (_opts.type === "AdaptivePlayer") {
       
    59         var _canPlayType = document.createElement('video').canPlayType("video/mp4");
       
    60         _opts.type = (_canPlayType == "maybe" || _canPlayType == "probably") ? "HtmlPlayer" : "JwpPlayer";
       
    61     }
       
    62     
       
    63     if (_rtmprgx.test(this.video)) {
       
    64         _opts.provider = "rtmp";
       
    65         _opts.live = true;
       
    66     }
       
    67     
       
    68     for (var i = 0; i < _props.length; i++) {
       
    69         if (typeof this[_props[i]] !== "undefined") {
       
    70             _opts[_props[i]] = this[_props[i]];
       
    71         }
       
    72     }
       
    73 
       
    74     this.insertSubwidget(this.$, _opts);
       
    75     
       
    76 };