diff -r 02c04d2c8fd8 -r ac1eacb3aa33 src/widgets/MashupPlayer.js --- a/src/widgets/MashupPlayer.js Sun Nov 12 22:07:33 2017 +0100 +++ b/src/widgets/MashupPlayer.js Wed Sep 04 17:32:50 2024 +0200 @@ -1,19 +1,23 @@ -IriSP.Widgets.MashupPlayer = function(player, config) { - IriSP.Widgets.Widget.call(this, player, config); - this.is_mashup = true; -}; - -IriSP.Widgets.MashupPlayer.prototype = new IriSP.Widgets.Widget(); +import _ from "lodash"; +import jQuery from "jquery"; +import mashupPlayerStyles from "./MashupPlayer.module.css"; -IriSP.Widgets.MashupPlayer.prototype.defaults = { - aspect_ratio: 14/9, - split_screen: false, - player_type: "PopcornPlayer", - background: "#000000" -}; +const MashupPlayer = function (ns) { + return class extends ns.Widgets.Widget { + constructor(player, config) { + super(player, config); + this.is_mashup = true; + } -IriSP.Widgets.MashupPlayer.prototype.draw = function() { - var _this = this, + static defaults = { + aspect_ratio: 14 / 9, + split_screen: false, + player_type: "PopcornPlayer", + background: "#000000", + }; + + draw() { + var _this = this, _mashup = this.media, _currentMedia = null, _currentAnnotation = null, @@ -24,233 +28,240 @@ _seekdiv, _timedelta, medialist = _mashup.getMedias(); - - _mashup.paused = (!this.autostart && !this.autoplay); - - function changeCurrentAnnotation() { + + _mashup.paused = !this.autostart && !this.autoplay; + + function changeCurrentAnnotation() { if (_timecode >= _mashup.duration) { - if (!_mashup.paused) { - _mashup.paused = true; - _mashup.trigger("pause"); - } - _timecode = 0; + if (!_mashup.paused) { + _mashup.paused = true; + _mashup.trigger("pause"); + } + _timecode = 0; } - var _annotation = _mashup.getAnnotationAtTime( _timecode ); + var _annotation = _mashup.getAnnotationAtTime(_timecode); if (typeof _annotation === "undefined") { - if (_currentMedia) { - _currentMedia.pause(); - if (!_mashup.paused) { - _mashup.paused = true; - _mashup.trigger("pause"); - } + if (_currentMedia) { + _currentMedia.pause(); + if (!_mashup.paused) { + _mashup.paused = true; + _mashup.trigger("pause"); } - return; + } + return; } if (_annotation !== _currentAnnotation) { - _currentAnnotation = _annotation; - _segmentBegin = _currentAnnotation.annotation.begin.milliseconds; - _segmentEnd = _currentAnnotation.annotation.end.milliseconds; - _timedelta = _segmentBegin - _currentAnnotation.begin.milliseconds; - _currentMedia = _currentAnnotation.getMedia(); - - for (var _i = 0; _i < medialist.length; _i++) { - if (medialist[_i].id !== _currentMedia.id) { - if (!_this.split_screen) { - medialist[_i].hide(); - } - medialist[_i].pause(); - } else { - medialist[_i].show(); - } + _currentAnnotation = _annotation; + _segmentBegin = _currentAnnotation.annotation.begin.milliseconds; + _segmentEnd = _currentAnnotation.annotation.end.milliseconds; + _timedelta = _segmentBegin - _currentAnnotation.begin.milliseconds; + _currentMedia = _currentAnnotation.getMedia(); + + for (var _i = 0; _i < medialist.length; _i++) { + if (medialist[_i].id !== _currentMedia.id) { + if (!_this.split_screen) { + medialist[_i].hide(); + } + medialist[_i].pause(); + } else { + medialist[_i].show(); } - - /* PRELOADING */ - var _preloadedMedias = [], - _toPreload = _mashup.getAnnotations().filter(function(_a) { - return (_a.begin >= _currentAnnotation.end && _a.getMedia() !== _currentMedia); + } + + /* PRELOADING */ + var _preloadedMedias = [], + _toPreload = _mashup.getAnnotations().filter(function (_a) { + return ( + _a.begin >= _currentAnnotation.end && + _a.getMedia() !== _currentMedia + ); }); - IriSP._(_toPreload).each(function(_a) { - var _media = _a.getMedia(); - if (IriSP._(_preloadedMedias).indexOf(_media.id) === -1) { - _preloadedMedias.push(_media.id); - _media.setCurrentTime(_a.annotation.begin.getSeconds()); - _media.seeking = true; -/* + _(_toPreload).each(function (_a) { + var _media = _a.getMedia(); + if (_(_preloadedMedias).indexOf(_media.id) === -1) { + _preloadedMedias.push(_media.id); + _media.setCurrentTime(_a.annotation.begin.getSeconds()); + _media.seeking = true; + /* console.log("Preloading ", _media.id, " at t=", _a.annotation.begin.getSeconds()); */ - } - }); - - // console.log("Changed segment: media="+ this.currentMedia.id + ", from=" + this.segmentBegin + " to=" + this.segmentEnd +", timedelta = ", this.timedelta) - // } else { - // console.log("changeCurrentAnnotation called, but segment hasn't changed"); + } + }); + + // console.log("Changed segment: media="+ this.currentMedia.id + ", from=" + this.segmentBegin + " to=" + this.segmentEnd +", timedelta = ", this.timedelta) + // } else { + // console.log("changeCurrentAnnotation called, but segment hasn't changed"); } - - _currentMedia.setCurrentTime( _timecode + _timedelta); + + _currentMedia.setCurrentTime(_timecode + _timedelta); _currentMedia.seeking = true; - + if (!_mashup.paused) { - _currentMedia.play(); - _seeking = true; - _seekdiv.show(); + _currentMedia.play(); + _seeking = true; + _seekdiv.show(); } -/* + /* console.log("Setting time of media", _currentMedia.id, "to", _timecode + _timedelta) */ - _mashup.trigger("timeupdate", new IriSP.Model.Time(_timecode)); + _mashup.trigger("timeupdate", new ns.Model.Time(_timecode)); + } - } - - if (!this.height) { - this.height = Math.floor(this.width/this.aspect_ratio); + if (!this.height) { + this.height = Math.floor(this.width / this.aspect_ratio); this.$.css({ - height: this.height + height: this.height, }); - } - - this.$.css({ - background: this.background - }); - - var _grid = Math.ceil(Math.sqrt(medialist.length)), - _width = (this.split_screen ? this.width / _grid : this.width), - _height = (this.split_screen ? this.height / _grid : this.height); + } + + this.$.css({ + background: this.background, + }); + + var _grid = Math.ceil(Math.sqrt(medialist.length)), + _width = this.split_screen ? this.width / _grid : this.width, + _height = this.split_screen ? this.height / _grid : this.height; - IriSP._(medialist).each(function(_media, _key) { - var _el = IriSP.jQuery('