src/widgets/JwpPlayer.js
changeset 1072 ac1eacb3aa33
parent 1013 392ddcd212d7
--- a/src/widgets/JwpPlayer.js	Sun Nov 12 22:07:33 2017 +0100
+++ b/src/widgets/JwpPlayer.js	Wed Sep 04 17:32:50 2024 +0200
@@ -1,122 +1,132 @@
-IriSP.Widgets.JwpPlayer = function(player, config) {
-    IriSP.Widgets.Widget.call(this, player, config);
-};
+// JwpPlayer
 
-IriSP.Widgets.JwpPlayer.prototype = new IriSP.Widgets.Widget();
+import { Player } from "jwplayer";
 
-IriSP.Widgets.JwpPlayer.prototype.defaults = {
-};
+const JwpPlayerWidget = function (ns) {
+  return class extends ns.Widgets.Widget {
+    constructor(player, config) {
+      super(player, config);
+    }
 
-IriSP.Widgets.JwpPlayer.prototype.draw = function() {
-    
-    var _opts = {},
-        _player = jwplayer(this.$[0]),
+    static defaults = {};
+
+    draw() {
+      var _opts = {},
+        _player = Player(this.$[0]),
         _seekPause = false,
         _pauseState = true;
-    
-    if (typeof this.video === "undefined") {
+
+      if (typeof this.video === "undefined") {
         this.video = this.media.video;
-    }
-        
-    _opts.file = this.video;
-    _opts.flashplayer = IriSP.getLib("jwPlayerSWF");
-    _opts.primary = "flash";
-    _opts.fallback = false;
-    _opts.controls = false;
-    _opts.width = this.width;
-    if (this.height) {
+      }
+
+      _opts.file = this.video;
+      _opts.primary = "flash";
+      _opts.fallback = false;
+      _opts.controls = false;
+      _opts.width = this.width;
+      if (this.height) {
         _opts.height = this.height;
-    }
-    
-    if (this.autostart) { // There seems to be an autostart bug
+      }
+
+      if (this.autostart) {
+        // There seems to be an autostart bug
         //_opts.autostart = true;
         //_pauseState = false;
         //this.media.trigger("play");
-    }
-    
-    if (this.url_transform) {
+      }
+
+      if (this.url_transform) {
         _opts.file = this.url_transform(_opts.file);
-    }
+      }
 
-    // Binding functions to jwplayer
+      // Binding functions to jwplayer
 
-    var _media = this.media;
-    
-    _media.on("setcurrenttime", function(_milliseconds) {
+      var _media = this.media;
+
+      _media.on("setcurrenttime", function (_milliseconds) {
         _seekPause = _pauseState;
         _player.seek(_milliseconds / 1000);
-    });
-    
-    _media.on("setvolume", function(_vol) {
-        _player.setVolume(Math.floor(_vol*100));
+      });
+
+      _media.on("setvolume", function (_vol) {
+        _player.setVolume(Math.floor(_vol * 100));
         _media.volume = _vol;
-    });
-    
-    _media.on("setmuted", function(_muted) {
+      });
+
+      _media.on("setmuted", function (_muted) {
         _player.setMute(_muted);
         _media.muted = _muted;
-    });
-    
-    _media.on("setplay", function() {
+      });
+
+      _media.on("setplay", function () {
         _player.play(true);
         _media.paused = false;
-    });
-    
-    _media.on("setpause", function() {
+      });
+
+      _media.on("setpause", function () {
         _player.pause(true);
         _media.paused = true;
-    });
-    
-    // Binding jwplater events to media
-    
-    function getVolume() {
+      });
+
+      // Binding jwplater events to media
+
+      function getVolume() {
         _media.muted = _player.getMute();
         _media.volume = _player.getVolume() / 100;
-    }
-    
-    _opts.events = {
-        onReady: function() {
-            getVolume();
-            _media.currentTime = new IriSP.Model.Time(1000*_player.getPosition() || 0);
-            _media.trigger("loadedmetadata");
+      }
+
+      _opts.events = {
+        onReady: function () {
+          getVolume();
+          _media.currentTime = new ns.Model.Time(
+            1000 * _player.getPosition() || 0
+          );
+          _media.trigger("loadedmetadata");
         },
-        onTime: function(_progress) {
-            if (_seekPause) {
-                _player.pause(true);
-                _seekPause = false;
-            } else {
-                if (_pauseState && _player.getState() === "PLAYING") {
-                    _pauseState = false;
-                    _media.trigger("play");
-                }
+        onTime: function (_progress) {
+          if (_seekPause) {
+            _player.pause(true);
+            _seekPause = false;
+          } else {
+            if (_pauseState && _player.getState() === "PLAYING") {
+              _pauseState = false;
+              _media.trigger("play");
             }
-            _media.trigger("timeupdate", new IriSP.Model.Time(_progress.position * 1000));
+          }
+          _media.trigger(
+            "timeupdate",
+            new ns.Model.Time(_progress.position * 1000)
+          );
         },
-        onPlay: function() {
-            if (!_seekPause) {
-                _pauseState = false;
-                _media.trigger("play");
-            }
+        onPlay: function () {
+          if (!_seekPause) {
+            _pauseState = false;
+            _media.trigger("play");
+          }
         },
-        onPause: function() {
-            _pauseState = true;
-            _media.trigger("pause");
+        onPause: function () {
+          _pauseState = true;
+          _media.trigger("pause");
         },
-        onSeek: function() {
-            _media.trigger("seeked");
+        onSeek: function () {
+          _media.trigger("seeked");
         },
-        onMute: function(_event) {
-            _media.muted = _event.mute;
-            _media.trigger("volumechange");
+        onMute: function (_event) {
+          _media.muted = _event.mute;
+          _media.trigger("volumechange");
+        },
+        onVolume: function (_event) {
+          _media.volume = _event.volume / 100;
+          _media.trigger("volumechange");
         },
-        onVolume: function(_event) {
-            _media.volume = _event.volume / 100;
-            _media.trigger("volumechange");
-        }
-    };
-    
-    _player = _player.setup(_opts);
-    
-    this.jwplayer = _player;
-    
-};
\ No newline at end of file
+      };
+
+      _player = _player.setup(_opts);
+
+      this.jwplayer = _player;
+    }
+  };
+};
+
+export { JwpPlayerWidget as JwpPlayer };