src/widgets/AutoPlayer.js
changeset 1071 02c04d2c8fd8
parent 1042 a128e59ca2b1
child 1072 ac1eacb3aa33
equal deleted inserted replaced
1070:36517cb225fe 1071:02c04d2c8fd8
     7 IriSP.Widgets.AutoPlayer.prototype.defaults = {
     7 IriSP.Widgets.AutoPlayer.prototype.defaults = {
     8     default_type: "JwpPlayer"
     8     default_type: "JwpPlayer"
     9 };
     9 };
    10 
    10 
    11 IriSP.Widgets.AutoPlayer.prototype.draw = function() {
    11 IriSP.Widgets.AutoPlayer.prototype.draw = function() {
    12     
    12 
    13     if (typeof this.video === "undefined") {
    13     if (typeof this.video === "undefined") {
    14         this.video = this.media.video;
    14         this.video = this.media.video;
    15     }
    15     }
    16     
    16 
    17     var _props = [ "live", "provider", "autostart", "streamer", "video", "height", "width", "url_transform" ],
    17     var _props = [ "live", "provider", "autostart", "streamer", "video", "height", "width", "url_transform" ],
    18         _opts = {},
    18         _opts = {},
    19         _types = [
    19         _types = [
    20             {
    20             {
    21                 regexp: /^rtmp:\/\//,
    21                 regexp: /^rtmp:\/\//,
    22                 type: "JwpPlayer"
    22                 type: "JwpPlayer"
    23             },
    23             },
    24             {
    24             {
    25                 regexp: /\.(mp4|m4v)$/,
    25                 regexp: /\.(mp4|m4v|mp3)$/,
    26                 type: "AdaptivePlayer"
    26                 type: "AdaptivePlayer"
    27             },
    27             },
    28             {
    28             {
    29                 regexp: /\.(ogg|ogv|webm)$/,
    29                 regexp: /\.(ogg|ogv|webm)$/,
    30                 type: "HtmlPlayer"
    30                 type: "HtmlPlayer"
    41                 regexp: /^(https?:\/\/)?(www\.)?dailymotion\.com/,
    41                 regexp: /^(https?:\/\/)?(www\.)?dailymotion\.com/,
    42                 type: "DailymotionPlayer"
    42                 type: "DailymotionPlayer"
    43             }
    43             }
    44         ],
    44         ],
    45         _rtmprgx = /^rtmp:\/\//;
    45         _rtmprgx = /^rtmp:\/\//;
    46     
    46 
    47     for (var i = 0; i < _types.length; i++) {
    47     for (var i = 0; i < _types.length; i++) {
    48         if (_types[i].regexp.test(this.video)) {
    48         if (this.video && _types[i].regexp.test(this.video.toLowerCase())) {
    49             _opts.type =  _types[i].type;
    49             _opts.type =  _types[i].type;
    50             break;
    50             break;
    51         }
    51         }
    52     }
    52     }
    53     
    53 
    54     if (typeof _opts.type === "undefined") {
    54     if (typeof _opts.type === "undefined") {
    55         _opts.type = this.default_type;
    55         _opts.type = this.default_type;
    56     }
    56     }
    57     
    57 
    58     if (_opts.type === "AdaptivePlayer") {
    58     if (_opts.type === "AdaptivePlayer") {
    59         var _canPlayType = document.createElement('video').canPlayType('video/mp4; codecs="avc1.42E01E"');
    59         var _canPlayType = document.createElement('video').canPlayType('video/mp4; codecs="avc1.42E01E"');
    60         _opts.type = (_canPlayType !== "no") ? "HtmlPlayer" : "JwpPlayer";
    60         _opts.type = (_canPlayType !== "no") ? "HtmlPlayer" : "JwpPlayer";
    61     }
    61     }
    62     
    62 
    63     if (_rtmprgx.test(this.video)) {
    63     if (_rtmprgx.test(this.video)) {
    64         _opts.provider = "rtmp";
    64         _opts.provider = "rtmp";
    65         _opts.live = true;
    65         _opts.live = true;
    66     }
    66     }
    67     
    67 
    68     for (var i = 0; i < _props.length; i++) {
    68     for (var i = 0; i < _props.length; i++) {
    69         if (typeof this[_props[i]] !== "undefined") {
    69         if (typeof this[_props[i]] !== "undefined") {
    70             _opts[_props[i]] = this[_props[i]];
    70             _opts[_props[i]] = this[_props[i]];
    71         }
    71         }
    72     }
    72     }
    73 
    73 
    74     this.insertSubwidget(this.$, _opts);
    74     this.insertSubwidget(this.$, _opts);
    75     
    75 
    76 };
    76 };