src/widgets/MashupPlayer.js
author ymh <ymh.work@gmail.com>
Fri, 18 Oct 2024 10:24:57 +0200
changeset 1074 231ea5ea7de4
parent 1072 ac1eacb3aa33
permissions -rw-r--r--
change http to https for default thumb
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1072
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
     1
import _ from "lodash";
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
     2
import jQuery from "jquery";
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
     3
import mashupPlayerStyles from "./MashupPlayer.module.css";
959
ee11ed1b739e Mashup Player and Dailymotion are now widgets
veltr
parents:
diff changeset
     4
1072
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
     5
const MashupPlayer = function (ns) {
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
     6
  return class extends ns.Widgets.Widget {
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
     7
    constructor(player, config) {
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
     8
      super(player, config);
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
     9
      this.is_mashup = true;
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
    10
    }
959
ee11ed1b739e Mashup Player and Dailymotion are now widgets
veltr
parents:
diff changeset
    11
1072
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
    12
    static defaults = {
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
    13
      aspect_ratio: 14 / 9,
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
    14
      split_screen: false,
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
    15
      player_type: "PopcornPlayer",
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
    16
      background: "#000000",
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
    17
    };
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
    18
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
    19
    draw() {
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
    20
      var _this = this,
959
ee11ed1b739e Mashup Player and Dailymotion are now widgets
veltr
parents:
diff changeset
    21
        _mashup = this.media,
ee11ed1b739e Mashup Player and Dailymotion are now widgets
veltr
parents:
diff changeset
    22
        _currentMedia = null,
ee11ed1b739e Mashup Player and Dailymotion are now widgets
veltr
parents:
diff changeset
    23
        _currentAnnotation = null,
ee11ed1b739e Mashup Player and Dailymotion are now widgets
veltr
parents:
diff changeset
    24
        _segmentBegin,
ee11ed1b739e Mashup Player and Dailymotion are now widgets
veltr
parents:
diff changeset
    25
        _segmentEnd,
ee11ed1b739e Mashup Player and Dailymotion are now widgets
veltr
parents:
diff changeset
    26
        _timecode = 0,
970
b1c3bf6eca78 Cleaning and refactoring
veltr
parents: 967
diff changeset
    27
        _seeking = false,
b1c3bf6eca78 Cleaning and refactoring
veltr
parents: 967
diff changeset
    28
        _seekdiv,
983
97fef7a4b189 updated search
veltr
parents: 970
diff changeset
    29
        _timedelta,
97fef7a4b189 updated search
veltr
parents: 970
diff changeset
    30
        medialist = _mashup.getMedias();
1072
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
    31
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
    32
      _mashup.paused = !this.autostart && !this.autoplay;
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
    33
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
    34
      function changeCurrentAnnotation() {
970
b1c3bf6eca78 Cleaning and refactoring
veltr
parents: 967
diff changeset
    35
        if (_timecode >= _mashup.duration) {
1072
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
    36
          if (!_mashup.paused) {
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
    37
            _mashup.paused = true;
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
    38
            _mashup.trigger("pause");
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
    39
          }
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
    40
          _timecode = 0;
970
b1c3bf6eca78 Cleaning and refactoring
veltr
parents: 967
diff changeset
    41
        }
1072
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
    42
        var _annotation = _mashup.getAnnotationAtTime(_timecode);
959
ee11ed1b739e Mashup Player and Dailymotion are now widgets
veltr
parents:
diff changeset
    43
        if (typeof _annotation === "undefined") {
1072
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
    44
          if (_currentMedia) {
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
    45
            _currentMedia.pause();
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
    46
            if (!_mashup.paused) {
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
    47
              _mashup.paused = true;
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
    48
              _mashup.trigger("pause");
959
ee11ed1b739e Mashup Player and Dailymotion are now widgets
veltr
parents:
diff changeset
    49
            }
1072
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
    50
          }
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
    51
          return;
959
ee11ed1b739e Mashup Player and Dailymotion are now widgets
veltr
parents:
diff changeset
    52
        }
ee11ed1b739e Mashup Player and Dailymotion are now widgets
veltr
parents:
diff changeset
    53
        if (_annotation !== _currentAnnotation) {
1072
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
    54
          _currentAnnotation = _annotation;
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
    55
          _segmentBegin = _currentAnnotation.annotation.begin.milliseconds;
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
    56
          _segmentEnd = _currentAnnotation.annotation.end.milliseconds;
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
    57
          _timedelta = _segmentBegin - _currentAnnotation.begin.milliseconds;
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
    58
          _currentMedia = _currentAnnotation.getMedia();
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
    59
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
    60
          for (var _i = 0; _i < medialist.length; _i++) {
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
    61
            if (medialist[_i].id !== _currentMedia.id) {
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
    62
              if (!_this.split_screen) {
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
    63
                medialist[_i].hide();
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
    64
              }
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
    65
              medialist[_i].pause();
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
    66
            } else {
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
    67
              medialist[_i].show();
959
ee11ed1b739e Mashup Player and Dailymotion are now widgets
veltr
parents:
diff changeset
    68
            }
1072
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
    69
          }
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
    70
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
    71
          /* PRELOADING */
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
    72
          var _preloadedMedias = [],
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
    73
            _toPreload = _mashup.getAnnotations().filter(function (_a) {
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
    74
              return (
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
    75
                _a.begin >= _currentAnnotation.end &&
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
    76
                _a.getMedia() !== _currentMedia
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
    77
              );
959
ee11ed1b739e Mashup Player and Dailymotion are now widgets
veltr
parents:
diff changeset
    78
            });
1072
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
    79
          _(_toPreload).each(function (_a) {
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
    80
            var _media = _a.getMedia();
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
    81
            if (_(_preloadedMedias).indexOf(_media.id) === -1) {
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
    82
              _preloadedMedias.push(_media.id);
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
    83
              _media.setCurrentTime(_a.annotation.begin.getSeconds());
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
    84
              _media.seeking = true;
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
    85
              /*
970
b1c3bf6eca78 Cleaning and refactoring
veltr
parents: 967
diff changeset
    86
                    console.log("Preloading ", _media.id, " at t=", _a.annotation.begin.getSeconds());
b1c3bf6eca78 Cleaning and refactoring
veltr
parents: 967
diff changeset
    87
*/
1072
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
    88
            }
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
    89
          });
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
    90
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
    91
          //        console.log("Changed segment: media="+ this.currentMedia.id + ", from=" + this.segmentBegin + " to=" + this.segmentEnd +", timedelta = ", this.timedelta)
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
    92
          //    } else {
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
    93
          //        console.log("changeCurrentAnnotation called, but segment hasn't changed");
959
ee11ed1b739e Mashup Player and Dailymotion are now widgets
veltr
parents:
diff changeset
    94
        }
1072
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
    95
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
    96
        _currentMedia.setCurrentTime(_timecode + _timedelta);
970
b1c3bf6eca78 Cleaning and refactoring
veltr
parents: 967
diff changeset
    97
        _currentMedia.seeking = true;
1072
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
    98
970
b1c3bf6eca78 Cleaning and refactoring
veltr
parents: 967
diff changeset
    99
        if (!_mashup.paused) {
1072
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
   100
          _currentMedia.play();
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
   101
          _seeking = true;
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
   102
          _seekdiv.show();
965
eadb7290c325 Improvements in widget communication
veltr
parents: 959
diff changeset
   103
        }
1072
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
   104
        /*
970
b1c3bf6eca78 Cleaning and refactoring
veltr
parents: 967
diff changeset
   105
        console.log("Setting time of media", _currentMedia.id, "to", _timecode + _timedelta)     
b1c3bf6eca78 Cleaning and refactoring
veltr
parents: 967
diff changeset
   106
*/
1072
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
   107
        _mashup.trigger("timeupdate", new ns.Model.Time(_timecode));
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
   108
      }
959
ee11ed1b739e Mashup Player and Dailymotion are now widgets
veltr
parents:
diff changeset
   109
1072
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
   110
      if (!this.height) {
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
   111
        this.height = Math.floor(this.width / this.aspect_ratio);
959
ee11ed1b739e Mashup Player and Dailymotion are now widgets
veltr
parents:
diff changeset
   112
        this.$.css({
1072
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
   113
          height: this.height,
959
ee11ed1b739e Mashup Player and Dailymotion are now widgets
veltr
parents:
diff changeset
   114
        });
1072
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
   115
      }
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
   116
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
   117
      this.$.css({
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
   118
        background: this.background,
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
   119
      });
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
   120
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
   121
      var _grid = Math.ceil(Math.sqrt(medialist.length)),
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
   122
        _width = this.split_screen ? this.width / _grid : this.width,
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
   123
        _height = this.split_screen ? this.height / _grid : this.height;
959
ee11ed1b739e Mashup Player and Dailymotion are now widgets
veltr
parents:
diff changeset
   124
1072
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
   125
      _(medialist).each(function (_media, _key) {
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
   126
        var _el = jQuery(
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
   127
          '<div class="Ldt-MashupPlayer-Media"><div class="Ldt-MashupPlayer-Subwidget"></div></div>'
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
   128
        );
959
ee11ed1b739e Mashup Player and Dailymotion are now widgets
veltr
parents:
diff changeset
   129
        _el.css({
1072
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
   130
          top: _this.split_screen ? _height * Math.floor(_key / _grid) : 0,
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
   131
          left: _this.split_screen ? _width * (_key % _grid) : 0,
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
   132
          height: _height,
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
   133
          width: _width,
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
   134
          display: _this.split_screen ? "block" : "none",
959
ee11ed1b739e Mashup Player and Dailymotion are now widgets
veltr
parents:
diff changeset
   135
        });
ee11ed1b739e Mashup Player and Dailymotion are now widgets
veltr
parents:
diff changeset
   136
        _this.$.append(_el);
1072
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
   137
959
ee11ed1b739e Mashup Player and Dailymotion are now widgets
veltr
parents:
diff changeset
   138
        _this.insertSubwidget(
1072
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
   139
          _el.find(".Ldt-MashupPlayer-Subwidget"),
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
   140
          _({
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
   141
            type: _this.player_type,
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
   142
            media_id: _media.id,
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
   143
            height: _height,
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
   144
            width: _width,
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
   145
            url_transform: _this.url_transform,
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
   146
          }).extend(_this.player_options)
959
ee11ed1b739e Mashup Player and Dailymotion are now widgets
veltr
parents:
diff changeset
   147
        );
1072
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
   148
959
ee11ed1b739e Mashup Player and Dailymotion are now widgets
veltr
parents:
diff changeset
   149
        _media.loadedMetadata = false;
1072
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
   150
        _media.show = function () {
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
   151
          _el.show();
959
ee11ed1b739e Mashup Player and Dailymotion are now widgets
veltr
parents:
diff changeset
   152
        };
1072
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
   153
        _media.hide = function () {
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
   154
          _el.hide();
959
ee11ed1b739e Mashup Player and Dailymotion are now widgets
veltr
parents:
diff changeset
   155
        };
1072
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
   156
        _media.on("loadedmetadata", function () {
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
   157
          _media.loadedMetadata = true;
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
   158
          var _allLoaded = true;
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
   159
          for (var _i = 0; _i < medialist.length; _i++) {
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
   160
            _allLoaded = _allLoaded && medialist[_i].loadedMetadata;
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
   161
          }
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
   162
          if (_allLoaded) {
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
   163
            _seekdiv.fadeOut();
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
   164
            changeCurrentAnnotation();
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
   165
            _mashup.trigger("loadedmetadata");
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
   166
          }
959
ee11ed1b739e Mashup Player and Dailymotion are now widgets
veltr
parents:
diff changeset
   167
        });
1072
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
   168
        _media.on("timeupdate", function (_time) {
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
   169
          if (!_mashup.paused && _media === _currentMedia && !_media.seeking) {
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
   170
            /*
970
b1c3bf6eca78 Cleaning and refactoring
veltr
parents: 967
diff changeset
   171
                var _status = "Timeupdate from " + _media.id + " at time " + _time;
b1c3bf6eca78 Cleaning and refactoring
veltr
parents: 967
diff changeset
   172
*/
1072
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
   173
            if (_time < _segmentEnd) {
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
   174
              if (_time >= _segmentBegin) {
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
   175
                _timecode = _time - _timedelta;
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
   176
                /*
970
b1c3bf6eca78 Cleaning and refactoring
veltr
parents: 967
diff changeset
   177
                        _status += " within segment";
b1c3bf6eca78 Cleaning and refactoring
veltr
parents: 967
diff changeset
   178
*/
1072
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
   179
              } else {
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
   180
                _timecode = _segmentBegin - _timedelta;
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
   181
                _media.setCurrentTime(_segmentBegin);
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
   182
                /*
970
b1c3bf6eca78 Cleaning and refactoring
veltr
parents: 967
diff changeset
   183
                        _status += " before segment";
b1c3bf6eca78 Cleaning and refactoring
veltr
parents: 967
diff changeset
   184
*/
1072
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
   185
              }
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
   186
            } else {
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
   187
              _timecode = _segmentEnd - _timedelta;
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
   188
              _media.pause();
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
   189
              changeCurrentAnnotation();
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
   190
              /*
970
b1c3bf6eca78 Cleaning and refactoring
veltr
parents: 967
diff changeset
   191
                    _status += " after segment";
b1c3bf6eca78 Cleaning and refactoring
veltr
parents: 967
diff changeset
   192
*/
1072
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
   193
            }
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
   194
            /*
970
b1c3bf6eca78 Cleaning and refactoring
veltr
parents: 967
diff changeset
   195
                _status += " (" + _segmentBegin + " to " + _segmentEnd + ")" + ", translated to " + _timecode;
b1c3bf6eca78 Cleaning and refactoring
veltr
parents: 967
diff changeset
   196
                console.log(_status);
b1c3bf6eca78 Cleaning and refactoring
veltr
parents: 967
diff changeset
   197
*/
1072
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
   198
            _mashup.trigger("timeupdate", new ns.Model.Time(_timecode));
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
   199
          }
959
ee11ed1b739e Mashup Player and Dailymotion are now widgets
veltr
parents:
diff changeset
   200
        });
1072
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
   201
        _media.on("seeked", function () {
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
   202
          _media.seeking = false;
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
   203
          if (_media === _currentMedia && _seeking) {
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
   204
            _seeking = false;
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
   205
            _seekdiv.hide();
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
   206
          }
1013
392ddcd212d7 Throwed in a bunch of semicolons
veltr
parents: 983
diff changeset
   207
        });
1072
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
   208
        _media.on("play", function () {
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
   209
          if (_media === _currentMedia) {
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
   210
            _mashup.trigger("play");
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
   211
          }
959
ee11ed1b739e Mashup Player and Dailymotion are now widgets
veltr
parents:
diff changeset
   212
        });
1072
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
   213
        _media.on("pause", function () {
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
   214
          if (_media === _currentMedia) {
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
   215
            _mashup.trigger("pause");
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
   216
          }
959
ee11ed1b739e Mashup Player and Dailymotion are now widgets
veltr
parents:
diff changeset
   217
        });
1072
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
   218
        _media.on("volumechange", function () {
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
   219
          _mashup.muted = _media.muted;
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
   220
          _mashup.volume = _media.volume;
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
   221
          _mashup.trigger("volumechange");
970
b1c3bf6eca78 Cleaning and refactoring
veltr
parents: 967
diff changeset
   222
        });
1072
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
   223
      });
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
   224
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
   225
      _seekdiv = jQuery('<div class="Ldt-MashupPlayer-Waiting"></div>');
970
b1c3bf6eca78 Cleaning and refactoring
veltr
parents: 967
diff changeset
   226
1072
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
   227
      this.$.append(_seekdiv);
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
   228
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
   229
      // Binding functions to Popcorn
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
   230
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
   231
      _mashup.on("setcurrenttime", function (_milliseconds) {
959
ee11ed1b739e Mashup Player and Dailymotion are now widgets
veltr
parents:
diff changeset
   232
        _timecode = _milliseconds;
ee11ed1b739e Mashup Player and Dailymotion are now widgets
veltr
parents:
diff changeset
   233
        changeCurrentAnnotation();
1072
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
   234
      });
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
   235
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
   236
      _mashup.on("setvolume", function (_vol) {
983
97fef7a4b189 updated search
veltr
parents: 970
diff changeset
   237
        for (var _i = 0; _i < medialist.length; _i++) {
1072
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
   238
          medialist[_i].setVolume(_vol);
959
ee11ed1b739e Mashup Player and Dailymotion are now widgets
veltr
parents:
diff changeset
   239
        }
970
b1c3bf6eca78 Cleaning and refactoring
veltr
parents: 967
diff changeset
   240
        _mashup.volume = _vol;
1072
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
   241
      });
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
   242
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
   243
      _mashup.on("setmuted", function (_muted) {
983
97fef7a4b189 updated search
veltr
parents: 970
diff changeset
   244
        for (var _i = 0; _i < medialist.length; _i++) {
1072
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
   245
          medialist[_i].setMuted(_muted);
959
ee11ed1b739e Mashup Player and Dailymotion are now widgets
veltr
parents:
diff changeset
   246
        }
970
b1c3bf6eca78 Cleaning and refactoring
veltr
parents: 967
diff changeset
   247
        _mashup.muted = _muted;
1072
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
   248
      });
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
   249
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
   250
      _mashup.on("setplay", function () {
970
b1c3bf6eca78 Cleaning and refactoring
veltr
parents: 967
diff changeset
   251
        _mashup.paused = false;
959
ee11ed1b739e Mashup Player and Dailymotion are now widgets
veltr
parents:
diff changeset
   252
        changeCurrentAnnotation();
1072
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
   253
      });
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
   254
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
   255
      _mashup.on("setpause", function () {
970
b1c3bf6eca78 Cleaning and refactoring
veltr
parents: 967
diff changeset
   256
        _mashup.paused = true;
959
ee11ed1b739e Mashup Player and Dailymotion are now widgets
veltr
parents:
diff changeset
   257
        if (_currentMedia) {
1072
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
   258
          _currentMedia.pause();
959
ee11ed1b739e Mashup Player and Dailymotion are now widgets
veltr
parents:
diff changeset
   259
        }
1072
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
   260
      });
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
   261
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
   262
      _mashup.on("loadedmetadata", changeCurrentAnnotation);
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
   263
    }
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
   264
  };
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
   265
};
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
   266
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1022
diff changeset
   267
export { MashupPlayer, mashupPlayerStyles };