diff -r 02c04d2c8fd8 -r ac1eacb3aa33 src/widgets/AutoPlayer.js --- a/src/widgets/AutoPlayer.js Sun Nov 12 22:07:33 2017 +0100 +++ b/src/widgets/AutoPlayer.js Wed Sep 04 17:32:50 2024 +0200 @@ -1,76 +1,91 @@ -IriSP.Widgets.AutoPlayer = function(player, config) { - IriSP.Widgets.Widget.call(this, player, config); -}; - -IriSP.Widgets.AutoPlayer.prototype = new IriSP.Widgets.Widget(); +// AutoPlayer -IriSP.Widgets.AutoPlayer.prototype.defaults = { - default_type: "JwpPlayer" -}; - -IriSP.Widgets.AutoPlayer.prototype.draw = function() { - - if (typeof this.video === "undefined") { - this.video = this.media.video; +const AutoPlayer = function (ns) { + return class extends ns.Widgets.Widget { + constructor(player, config) { + super(player, config); } - var _props = [ "live", "provider", "autostart", "streamer", "video", "height", "width", "url_transform" ], + static defaults = { + default_type: "HtmlPlayer", + }; + + draw() { + if (typeof this.video === "undefined") { + this.video = this.media.video; + } + + var _props = [ + "live", + "provider", + "autostart", + "streamer", + "video", + "height", + "width", + "url_transform", + ], _opts = {}, _types = [ - { - regexp: /^rtmp:\/\//, - type: "JwpPlayer" - }, - { - regexp: /\.(mp4|m4v|mp3)$/, - type: "AdaptivePlayer" - }, - { - regexp: /\.(ogg|ogv|webm)$/, - type: "HtmlPlayer" - }, - { - regexp: /^(https?:\/\/)?(www\.)?youtube\.com/, - type: "PopcornPlayer" - }, - { - regexp: /^(https?:\/\/)?(www\.)?vimeo\.com/, - type: "PopcornPlayer" - }, - { - regexp: /^(https?:\/\/)?(www\.)?dailymotion\.com/, - type: "DailymotionPlayer" - } + { + regexp: /^rtmp:\/\//, + type: "JwpPlayer", + }, + { + regexp: /\.(mp4|m4v|mp3)$/, + type: "AdaptivePlayer", + }, + { + regexp: /\.(ogg|ogv|webm)$/, + type: "HtmlPlayer", + }, + { + regexp: /^(https?:\/\/)?(www\.)?youtube\.com/, + type: "PopcornPlayer", + }, + { + regexp: /^(https?:\/\/)?(www\.)?vimeo\.com/, + type: "PopcornPlayer", + }, + { + regexp: /^(https?:\/\/)?(www\.)?dailymotion\.com/, + type: "DailymotionPlayer", + }, ], _rtmprgx = /^rtmp:\/\//; - for (var i = 0; i < _types.length; i++) { + for (var i = 0; i < _types.length; i++) { if (this.video && _types[i].regexp.test(this.video.toLowerCase())) { - _opts.type = _types[i].type; - break; + _opts.type = _types[i].type; + break; } - } + } - if (typeof _opts.type === "undefined") { + if (typeof _opts.type === "undefined") { _opts.type = this.default_type; - } + } - if (_opts.type === "AdaptivePlayer") { - var _canPlayType = document.createElement('video').canPlayType('video/mp4; codecs="avc1.42E01E"'); - _opts.type = (_canPlayType !== "no") ? "HtmlPlayer" : "JwpPlayer"; - } + if (_opts.type === "AdaptivePlayer") { + var _canPlayType = document + .createElement("video") + .canPlayType('video/mp4; codecs="avc1.42E01E"'); + _opts.type = _canPlayType !== "no" ? "HtmlPlayer" : "JwpPlayer"; + } - if (_rtmprgx.test(this.video)) { + if (_rtmprgx.test(this.video)) { _opts.provider = "rtmp"; _opts.live = true; - } + } - for (var i = 0; i < _props.length; i++) { + for (var i = 0; i < _props.length; i++) { if (typeof this[_props[i]] !== "undefined") { - _opts[_props[i]] = this[_props[i]]; + _opts[_props[i]] = this[_props[i]]; } - } + } - this.insertSubwidget(this.$, _opts); + this.insertSubwidget(this.$, _opts); + }; + }; +}; -}; +export { AutoPlayer };