web/res/metadataplayer/MashupPlayer.js
changeset 1558 761ba7426984
parent 1557 7c67caaafdeb
child 1559 796b49572291
--- a/web/res/metadataplayer/MashupPlayer.js	Mon Nov 20 18:10:58 2023 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,256 +0,0 @@
-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();
-
-IriSP.Widgets.MashupPlayer.prototype.defaults = {
-    aspect_ratio: 14/9,
-    split_screen: false,
-    player_type: "PopcornPlayer",
-    background: "#000000"
-};
-
-IriSP.Widgets.MashupPlayer.prototype.draw = function() {
-    var _this = this,
-        _mashup = this.media,
-        _currentMedia = null,
-        _currentAnnotation = null,
-        _segmentBegin,
-        _segmentEnd,
-        _timecode = 0,
-        _seeking = false,
-        _seekdiv,
-        _timedelta,
-        medialist = _mashup.getMedias();
-    
-    _mashup.paused = (!this.autostart && !this.autoplay);
-    
-    function changeCurrentAnnotation() {
-        if (_timecode >= _mashup.duration) {
-            if (!_mashup.paused) {
-                _mashup.paused = true;
-                _mashup.trigger("pause");
-            }
-            _timecode = 0;
-        }
-        var _annotation = _mashup.getAnnotationAtTime( _timecode );
-        if (typeof _annotation === "undefined") {
-            if (_currentMedia) {
-                _currentMedia.pause();
-                if (!_mashup.paused) {
-                    _mashup.paused = true;
-                    _mashup.trigger("pause");
-                }
-            }
-            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();
-                }
-            }
-            
-    /* 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;
-/*
-                    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");
-        }
-        
-        _currentMedia.setCurrentTime( _timecode + _timedelta);
-        _currentMedia.seeking = true;
-        
-        if (!_mashup.paused) {
-            _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));
-
-    }
-    
-    if (!this.height) {
-        this.height = Math.floor(this.width/this.aspect_ratio);
-        this.$.css({
-            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);
-
-    IriSP._(medialist).each(function(_media, _key) {
-        var _el = IriSP.jQuery('<div class="Ldt-MashupPlayer-Media"><div class="Ldt-MashupPlayer-Subwidget"></div></div>');
-        _el.css({
-            top: (_this.split_screen ? _height * Math.floor(_key / _grid) : 0),
-            left: (_this.split_screen ? _width * (_key % _grid) : 0),
-            height: _height,
-            width: _width,
-            display: (_this.split_screen ? "block" : "none")
-        });
-        _this.$.append(_el);
-        
-        _this.insertSubwidget(
-            _el.find(".Ldt-MashupPlayer-Subwidget"),
-            IriSP._({
-                type: _this.player_type,
-                media_id: _media.id,
-                height: _height,
-                width: _width,
-                url_transform: _this.url_transform
-            }).extend(_this.player_options)
-        );
-        
-        _media.loadedMetadata = false;
-        _media.show = function() {
-            _el.show();
-        };
-        _media.hide = function() {
-            _el.hide();
-        };
-        _media.on("loadedmetadata", function() {
-            _media.loadedMetadata = true;
-            var _allLoaded = true;
-            for (var _i = 0; _i < medialist.length; _i++) {
-                _allLoaded = _allLoaded && medialist[_i].loadedMetadata;
-            }
-            if (_allLoaded) {
-                _seekdiv.fadeOut();
-                changeCurrentAnnotation();
-                _mashup.trigger("loadedmetadata");
-            }
-        });
-        _media.on("timeupdate", function(_time) {
-            if (!_mashup.paused && _media === _currentMedia && !_media.seeking) {
-/*
-                var _status = "Timeupdate from " + _media.id + " at time " + _time;
-*/
-                if ( _time < _segmentEnd ) {
-                    if ( _time >= _segmentBegin ) {
-                        _timecode = _time - _timedelta;
-/*
-                        _status += " within segment";
-*/
-                    } else {
-                        _timecode = _segmentBegin - _timedelta;
-                        _media.setCurrentTime(_segmentBegin);
-/*
-                        _status += " before segment";
-*/
-                    }
-                } else {
-                    _timecode = _segmentEnd - _timedelta;
-                    _media.pause();
-                    changeCurrentAnnotation();
-/*
-                    _status += " after segment";
-*/
-                }
-/*
-                _status += " (" + _segmentBegin + " to " + _segmentEnd + ")" + ", translated to " + _timecode;
-                console.log(_status);
-*/
-                _mashup.trigger("timeupdate", new IriSP.Model.Time(_timecode));
-            }
-        });
-        _media.on("seeked", function() {
-            _media.seeking = false;
-            if (_media === _currentMedia && _seeking) {
-                _seeking = false;
-                _seekdiv.hide();
-            }
-        });
-        _media.on("play", function() {
-            if (_media === _currentMedia) {
-                _mashup.trigger("play");
-            }
-        });
-        _media.on("pause", function() {
-            if (_media === _currentMedia) {
-                _mashup.trigger("pause");
-            }
-        });
-        _media.on("volumechange", function() {
-            _mashup.muted = _media.muted;
-            _mashup.volume = _media.volume;
-            _mashup.trigger("volumechange");
-        });
-    });
-    
-    _seekdiv = IriSP.jQuery('<div class="Ldt-MashupPlayer-Waiting"></div>');
-    
-    this.$.append(_seekdiv);
-
-    // Binding functions to Popcorn
-    
-    _mashup.on("setcurrenttime", function(_milliseconds) {
-        _timecode = _milliseconds;
-        changeCurrentAnnotation();
-    });
-    
-    _mashup.on("setvolume", function(_vol) {
-        for (var _i = 0; _i < medialist.length; _i++) {
-            medialist[_i].setVolume(_vol);
-        }
-        _mashup.volume = _vol;
-    });
-    
-    _mashup.on("setmuted", function(_muted) {
-        for (var _i = 0; _i < medialist.length; _i++) {
-            medialist[_i].setMuted(_muted);
-        }
-        _mashup.muted = _muted;
-    });
-    
-    _mashup.on("setplay", function() {
-        _mashup.paused = false;
-        changeCurrentAnnotation();
-    });
-    
-    _mashup.on("setpause", function() {
-        _mashup.paused = true;
-        if (_currentMedia) {
-            _currentMedia.pause();
-        }
-    });
-    
-    _mashup.on("loadedmetadata", changeCurrentAnnotation);
-   
-};
\ No newline at end of file