src/widgets/AutoPlayer.js
changeset 1072 ac1eacb3aa33
parent 1071 02c04d2c8fd8
child 1073 687133dc13cf
--- 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 };