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 }; |
|