src/widgets/VideojsPlayer.js
author ymh <ymh.work@gmail.com>
Tue, 22 Oct 2024 09:54:34 +0200
changeset 1080 2b513bcb710a
parent 1076 510fd2a482f4
permissions -rw-r--r--
increment version
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1073
687133dc13cf Add VideojsPlayer for handling youtube and vimeo
ymh <ymh.work@gmail.com>
parents:
diff changeset
     1
// VideojsPlayer
687133dc13cf Add VideojsPlayer for handling youtube and vimeo
ymh <ymh.work@gmail.com>
parents:
diff changeset
     2
import "videojs-youtube/dist/Youtube.js";
687133dc13cf Add VideojsPlayer for handling youtube and vimeo
ymh <ymh.work@gmail.com>
parents:
diff changeset
     3
import Vimeo from './videojs_plugins/Vimeo.js';
1076
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents: 1073
diff changeset
     4
import Dailymotion from "./videojs_plugins/Dailymotion.js";
1073
687133dc13cf Add VideojsPlayer for handling youtube and vimeo
ymh <ymh.work@gmail.com>
parents:
diff changeset
     5
import videojs from "video.js";
687133dc13cf Add VideojsPlayer for handling youtube and vimeo
ymh <ymh.work@gmail.com>
parents:
diff changeset
     6
687133dc13cf Add VideojsPlayer for handling youtube and vimeo
ymh <ymh.work@gmail.com>
parents:
diff changeset
     7
import videojsStyles from "./VideojsPlayer.module.css";
687133dc13cf Add VideojsPlayer for handling youtube and vimeo
ymh <ymh.work@gmail.com>
parents:
diff changeset
     8
import mime from "mime-types";
687133dc13cf Add VideojsPlayer for handling youtube and vimeo
ymh <ymh.work@gmail.com>
parents:
diff changeset
     9
687133dc13cf Add VideojsPlayer for handling youtube and vimeo
ymh <ymh.work@gmail.com>
parents:
diff changeset
    10
const alternative_types = [{ 
687133dc13cf Add VideojsPlayer for handling youtube and vimeo
ymh <ymh.work@gmail.com>
parents:
diff changeset
    11
    regex:/^(https?:\/\/)?((?:www|m)\.)?(?:youtube(?:-nocookie)?\.com|youtu.be)/,
687133dc13cf Add VideojsPlayer for handling youtube and vimeo
ymh <ymh.work@gmail.com>
parents:
diff changeset
    12
    type: "video/youtube"
687133dc13cf Add VideojsPlayer for handling youtube and vimeo
ymh <ymh.work@gmail.com>
parents:
diff changeset
    13
  }, {
687133dc13cf Add VideojsPlayer for handling youtube and vimeo
ymh <ymh.work@gmail.com>
parents:
diff changeset
    14
    regex:/^(https?:\/\/)?(www\.)?vimeo\.com/,
687133dc13cf Add VideojsPlayer for handling youtube and vimeo
ymh <ymh.work@gmail.com>
parents:
diff changeset
    15
    type: "video/vimeo"
1076
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents: 1073
diff changeset
    16
  }, {
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents: 1073
diff changeset
    17
    regex:/^(https?:\/\/)?(www\.)?dailymotion\.com/,
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents: 1073
diff changeset
    18
    type: "video/dailymotion"
1073
687133dc13cf Add VideojsPlayer for handling youtube and vimeo
ymh <ymh.work@gmail.com>
parents:
diff changeset
    19
  }
687133dc13cf Add VideojsPlayer for handling youtube and vimeo
ymh <ymh.work@gmail.com>
parents:
diff changeset
    20
]
687133dc13cf Add VideojsPlayer for handling youtube and vimeo
ymh <ymh.work@gmail.com>
parents:
diff changeset
    21
687133dc13cf Add VideojsPlayer for handling youtube and vimeo
ymh <ymh.work@gmail.com>
parents:
diff changeset
    22
const VideojsPlayerWidget = function (ns) {
687133dc13cf Add VideojsPlayer for handling youtube and vimeo
ymh <ymh.work@gmail.com>
parents:
diff changeset
    23
  return class extends ns.Widgets.Widget {
687133dc13cf Add VideojsPlayer for handling youtube and vimeo
ymh <ymh.work@gmail.com>
parents:
diff changeset
    24
    constructor(player, config) {
687133dc13cf Add VideojsPlayer for handling youtube and vimeo
ymh <ymh.work@gmail.com>
parents:
diff changeset
    25
      super(player, config);
687133dc13cf Add VideojsPlayer for handling youtube and vimeo
ymh <ymh.work@gmail.com>
parents:
diff changeset
    26
    }
687133dc13cf Add VideojsPlayer for handling youtube and vimeo
ymh <ymh.work@gmail.com>
parents:
diff changeset
    27
687133dc13cf Add VideojsPlayer for handling youtube and vimeo
ymh <ymh.work@gmail.com>
parents:
diff changeset
    28
    static defaults = {};
687133dc13cf Add VideojsPlayer for handling youtube and vimeo
ymh <ymh.work@gmail.com>
parents:
diff changeset
    29
687133dc13cf Add VideojsPlayer for handling youtube and vimeo
ymh <ymh.work@gmail.com>
parents:
diff changeset
    30
    draw() {
1076
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents: 1073
diff changeset
    31
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents: 1073
diff changeset
    32
      const techOrder = [ 'html5', 'Youtube', 'Vimeo' ];
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents: 1073
diff changeset
    33
      if(this.dailymotionPlayerId) {
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents: 1073
diff changeset
    34
        techOrder.push("Dailymotion");
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents: 1073
diff changeset
    35
        Dailymotion.loadLibrary(this.dailymotionPlayerId);
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents: 1073
diff changeset
    36
      }
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents: 1073
diff changeset
    37
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents: 1073
diff changeset
    38
      var _opts = { techOrder },
1073
687133dc13cf Add VideojsPlayer for handling youtube and vimeo
ymh <ymh.work@gmail.com>
parents:
diff changeset
    39
        _seekPause = false,
687133dc13cf Add VideojsPlayer for handling youtube and vimeo
ymh <ymh.work@gmail.com>
parents:
diff changeset
    40
        _pauseState = true;
687133dc13cf Add VideojsPlayer for handling youtube and vimeo
ymh <ymh.work@gmail.com>
parents:
diff changeset
    41
687133dc13cf Add VideojsPlayer for handling youtube and vimeo
ymh <ymh.work@gmail.com>
parents:
diff changeset
    42
      if (typeof this.video === "undefined") {
687133dc13cf Add VideojsPlayer for handling youtube and vimeo
ymh <ymh.work@gmail.com>
parents:
diff changeset
    43
        this.video = this.media.video;
687133dc13cf Add VideojsPlayer for handling youtube and vimeo
ymh <ymh.work@gmail.com>
parents:
diff changeset
    44
      }
687133dc13cf Add VideojsPlayer for handling youtube and vimeo
ymh <ymh.work@gmail.com>
parents:
diff changeset
    45
687133dc13cf Add VideojsPlayer for handling youtube and vimeo
ymh <ymh.work@gmail.com>
parents:
diff changeset
    46
      let type = mime.lookup(this.video);
687133dc13cf Add VideojsPlayer for handling youtube and vimeo
ymh <ymh.work@gmail.com>
parents:
diff changeset
    47
687133dc13cf Add VideojsPlayer for handling youtube and vimeo
ymh <ymh.work@gmail.com>
parents:
diff changeset
    48
      if(!type) {
687133dc13cf Add VideojsPlayer for handling youtube and vimeo
ymh <ymh.work@gmail.com>
parents:
diff changeset
    49
        for(const tdef of alternative_types) {
687133dc13cf Add VideojsPlayer for handling youtube and vimeo
ymh <ymh.work@gmail.com>
parents:
diff changeset
    50
          if(tdef.regex.test(this.video)) {
687133dc13cf Add VideojsPlayer for handling youtube and vimeo
ymh <ymh.work@gmail.com>
parents:
diff changeset
    51
            type = tdef.type;
687133dc13cf Add VideojsPlayer for handling youtube and vimeo
ymh <ymh.work@gmail.com>
parents:
diff changeset
    52
            break;
687133dc13cf Add VideojsPlayer for handling youtube and vimeo
ymh <ymh.work@gmail.com>
parents:
diff changeset
    53
          }
687133dc13cf Add VideojsPlayer for handling youtube and vimeo
ymh <ymh.work@gmail.com>
parents:
diff changeset
    54
        }
687133dc13cf Add VideojsPlayer for handling youtube and vimeo
ymh <ymh.work@gmail.com>
parents:
diff changeset
    55
      }
687133dc13cf Add VideojsPlayer for handling youtube and vimeo
ymh <ymh.work@gmail.com>
parents:
diff changeset
    56
      _opts.src = { type: type || false, src:this.video };
687133dc13cf Add VideojsPlayer for handling youtube and vimeo
ymh <ymh.work@gmail.com>
parents:
diff changeset
    57
      _opts.controls = false;
687133dc13cf Add VideojsPlayer for handling youtube and vimeo
ymh <ymh.work@gmail.com>
parents:
diff changeset
    58
      _opts.width = this.width;
687133dc13cf Add VideojsPlayer for handling youtube and vimeo
ymh <ymh.work@gmail.com>
parents:
diff changeset
    59
      if (this.height) {
687133dc13cf Add VideojsPlayer for handling youtube and vimeo
ymh <ymh.work@gmail.com>
parents:
diff changeset
    60
        _opts.height = this.height;
687133dc13cf Add VideojsPlayer for handling youtube and vimeo
ymh <ymh.work@gmail.com>
parents:
diff changeset
    61
      }
687133dc13cf Add VideojsPlayer for handling youtube and vimeo
ymh <ymh.work@gmail.com>
parents:
diff changeset
    62
687133dc13cf Add VideojsPlayer for handling youtube and vimeo
ymh <ymh.work@gmail.com>
parents:
diff changeset
    63
      if (this.autostart) {
687133dc13cf Add VideojsPlayer for handling youtube and vimeo
ymh <ymh.work@gmail.com>
parents:
diff changeset
    64
        // There seems to be an autostart bug
687133dc13cf Add VideojsPlayer for handling youtube and vimeo
ymh <ymh.work@gmail.com>
parents:
diff changeset
    65
        _opts.autostart = true;
687133dc13cf Add VideojsPlayer for handling youtube and vimeo
ymh <ymh.work@gmail.com>
parents:
diff changeset
    66
//        _pauseState = false;
687133dc13cf Add VideojsPlayer for handling youtube and vimeo
ymh <ymh.work@gmail.com>
parents:
diff changeset
    67
//        this.media.trigger("play");
687133dc13cf Add VideojsPlayer for handling youtube and vimeo
ymh <ymh.work@gmail.com>
parents:
diff changeset
    68
      }
687133dc13cf Add VideojsPlayer for handling youtube and vimeo
ymh <ymh.work@gmail.com>
parents:
diff changeset
    69
687133dc13cf Add VideojsPlayer for handling youtube and vimeo
ymh <ymh.work@gmail.com>
parents:
diff changeset
    70
      if (this.url_transform) {
687133dc13cf Add VideojsPlayer for handling youtube and vimeo
ymh <ymh.work@gmail.com>
parents:
diff changeset
    71
        _opts.src.src = this.url_transform(_opts.src.src);
687133dc13cf Add VideojsPlayer for handling youtube and vimeo
ymh <ymh.work@gmail.com>
parents:
diff changeset
    72
      }
687133dc13cf Add VideojsPlayer for handling youtube and vimeo
ymh <ymh.work@gmail.com>
parents:
diff changeset
    73
687133dc13cf Add VideojsPlayer for handling youtube and vimeo
ymh <ymh.work@gmail.com>
parents:
diff changeset
    74
      // Binding functions to jwplayer
687133dc13cf Add VideojsPlayer for handling youtube and vimeo
ymh <ymh.work@gmail.com>
parents:
diff changeset
    75
      if(!this.media) {
687133dc13cf Add VideojsPlayer for handling youtube and vimeo
ymh <ymh.work@gmail.com>
parents:
diff changeset
    76
        return;
687133dc13cf Add VideojsPlayer for handling youtube and vimeo
ymh <ymh.work@gmail.com>
parents:
diff changeset
    77
      }
687133dc13cf Add VideojsPlayer for handling youtube and vimeo
ymh <ymh.work@gmail.com>
parents:
diff changeset
    78
      var _media = this.media;
687133dc13cf Add VideojsPlayer for handling youtube and vimeo
ymh <ymh.work@gmail.com>
parents:
diff changeset
    79
      const videoId = `video_${this.generateUid("_")}`;
687133dc13cf Add VideojsPlayer for handling youtube and vimeo
ymh <ymh.work@gmail.com>
parents:
diff changeset
    80
      this.$.append(`<video class="video-js" id="${videoId}"><source type="${_opts.src.type || 'video/mp4'}" src="${_opts.src.src}"></source></video>`)
687133dc13cf Add VideojsPlayer for handling youtube and vimeo
ymh <ymh.work@gmail.com>
parents:
diff changeset
    81
      const _player = videojs(videoId, _opts);
687133dc13cf Add VideojsPlayer for handling youtube and vimeo
ymh <ymh.work@gmail.com>
parents:
diff changeset
    82
687133dc13cf Add VideojsPlayer for handling youtube and vimeo
ymh <ymh.work@gmail.com>
parents:
diff changeset
    83
      _media.on("setcurrenttime", function (_milliseconds) {
687133dc13cf Add VideojsPlayer for handling youtube and vimeo
ymh <ymh.work@gmail.com>
parents:
diff changeset
    84
        _seekPause = _pauseState;
687133dc13cf Add VideojsPlayer for handling youtube and vimeo
ymh <ymh.work@gmail.com>
parents:
diff changeset
    85
        _player.currentTime(_milliseconds/1000);
687133dc13cf Add VideojsPlayer for handling youtube and vimeo
ymh <ymh.work@gmail.com>
parents:
diff changeset
    86
      });
687133dc13cf Add VideojsPlayer for handling youtube and vimeo
ymh <ymh.work@gmail.com>
parents:
diff changeset
    87
687133dc13cf Add VideojsPlayer for handling youtube and vimeo
ymh <ymh.work@gmail.com>
parents:
diff changeset
    88
      _media.on("setvolume", function (_vol) {
687133dc13cf Add VideojsPlayer for handling youtube and vimeo
ymh <ymh.work@gmail.com>
parents:
diff changeset
    89
        _player.volume(_vol);
687133dc13cf Add VideojsPlayer for handling youtube and vimeo
ymh <ymh.work@gmail.com>
parents:
diff changeset
    90
        _media.volume = _vol;
687133dc13cf Add VideojsPlayer for handling youtube and vimeo
ymh <ymh.work@gmail.com>
parents:
diff changeset
    91
      });
687133dc13cf Add VideojsPlayer for handling youtube and vimeo
ymh <ymh.work@gmail.com>
parents:
diff changeset
    92
687133dc13cf Add VideojsPlayer for handling youtube and vimeo
ymh <ymh.work@gmail.com>
parents:
diff changeset
    93
      _media.on("setmuted", function (_muted) {
687133dc13cf Add VideojsPlayer for handling youtube and vimeo
ymh <ymh.work@gmail.com>
parents:
diff changeset
    94
        _player.muted(_muted);
687133dc13cf Add VideojsPlayer for handling youtube and vimeo
ymh <ymh.work@gmail.com>
parents:
diff changeset
    95
687133dc13cf Add VideojsPlayer for handling youtube and vimeo
ymh <ymh.work@gmail.com>
parents:
diff changeset
    96
        _media.muted = _muted;
687133dc13cf Add VideojsPlayer for handling youtube and vimeo
ymh <ymh.work@gmail.com>
parents:
diff changeset
    97
      });
687133dc13cf Add VideojsPlayer for handling youtube and vimeo
ymh <ymh.work@gmail.com>
parents:
diff changeset
    98
687133dc13cf Add VideojsPlayer for handling youtube and vimeo
ymh <ymh.work@gmail.com>
parents:
diff changeset
    99
      _media.on("setplay", function () {
687133dc13cf Add VideojsPlayer for handling youtube and vimeo
ymh <ymh.work@gmail.com>
parents:
diff changeset
   100
        _player.play();
687133dc13cf Add VideojsPlayer for handling youtube and vimeo
ymh <ymh.work@gmail.com>
parents:
diff changeset
   101
        _media.paused = false;
687133dc13cf Add VideojsPlayer for handling youtube and vimeo
ymh <ymh.work@gmail.com>
parents:
diff changeset
   102
      });
687133dc13cf Add VideojsPlayer for handling youtube and vimeo
ymh <ymh.work@gmail.com>
parents:
diff changeset
   103
687133dc13cf Add VideojsPlayer for handling youtube and vimeo
ymh <ymh.work@gmail.com>
parents:
diff changeset
   104
      _media.on("setpause", function () {
687133dc13cf Add VideojsPlayer for handling youtube and vimeo
ymh <ymh.work@gmail.com>
parents:
diff changeset
   105
        _player.pause();
687133dc13cf Add VideojsPlayer for handling youtube and vimeo
ymh <ymh.work@gmail.com>
parents:
diff changeset
   106
        _media.paused = true;
687133dc13cf Add VideojsPlayer for handling youtube and vimeo
ymh <ymh.work@gmail.com>
parents:
diff changeset
   107
      });
687133dc13cf Add VideojsPlayer for handling youtube and vimeo
ymh <ymh.work@gmail.com>
parents:
diff changeset
   108
687133dc13cf Add VideojsPlayer for handling youtube and vimeo
ymh <ymh.work@gmail.com>
parents:
diff changeset
   109
      // Binding jwplater events to media
687133dc13cf Add VideojsPlayer for handling youtube and vimeo
ymh <ymh.work@gmail.com>
parents:
diff changeset
   110
687133dc13cf Add VideojsPlayer for handling youtube and vimeo
ymh <ymh.work@gmail.com>
parents:
diff changeset
   111
      function getVolume() {
687133dc13cf Add VideojsPlayer for handling youtube and vimeo
ymh <ymh.work@gmail.com>
parents:
diff changeset
   112
        _media.muted = _player.muted();
687133dc13cf Add VideojsPlayer for handling youtube and vimeo
ymh <ymh.work@gmail.com>
parents:
diff changeset
   113
        _media.volume = _player.volume();
687133dc13cf Add VideojsPlayer for handling youtube and vimeo
ymh <ymh.work@gmail.com>
parents:
diff changeset
   114
      }
687133dc13cf Add VideojsPlayer for handling youtube and vimeo
ymh <ymh.work@gmail.com>
parents:
diff changeset
   115
687133dc13cf Add VideojsPlayer for handling youtube and vimeo
ymh <ymh.work@gmail.com>
parents:
diff changeset
   116
      _player.on("timeupdate", function() {
687133dc13cf Add VideojsPlayer for handling youtube and vimeo
ymh <ymh.work@gmail.com>
parents:
diff changeset
   117
        _media.trigger(
687133dc13cf Add VideojsPlayer for handling youtube and vimeo
ymh <ymh.work@gmail.com>
parents:
diff changeset
   118
          "timeupdate",
687133dc13cf Add VideojsPlayer for handling youtube and vimeo
ymh <ymh.work@gmail.com>
parents:
diff changeset
   119
          new ns.Model.Time(_player.currentTime()*1000)
687133dc13cf Add VideojsPlayer for handling youtube and vimeo
ymh <ymh.work@gmail.com>
parents:
diff changeset
   120
        );
687133dc13cf Add VideojsPlayer for handling youtube and vimeo
ymh <ymh.work@gmail.com>
parents:
diff changeset
   121
      })
687133dc13cf Add VideojsPlayer for handling youtube and vimeo
ymh <ymh.work@gmail.com>
parents:
diff changeset
   122
687133dc13cf Add VideojsPlayer for handling youtube and vimeo
ymh <ymh.work@gmail.com>
parents:
diff changeset
   123
      _player.ready(function () {
687133dc13cf Add VideojsPlayer for handling youtube and vimeo
ymh <ymh.work@gmail.com>
parents:
diff changeset
   124
        _media.trigger(
687133dc13cf Add VideojsPlayer for handling youtube and vimeo
ymh <ymh.work@gmail.com>
parents:
diff changeset
   125
          "timeupdate",
687133dc13cf Add VideojsPlayer for handling youtube and vimeo
ymh <ymh.work@gmail.com>
parents:
diff changeset
   126
          new ns.Model.Time(_player.currentTime()*1000)
687133dc13cf Add VideojsPlayer for handling youtube and vimeo
ymh <ymh.work@gmail.com>
parents:
diff changeset
   127
        );
687133dc13cf Add VideojsPlayer for handling youtube and vimeo
ymh <ymh.work@gmail.com>
parents:
diff changeset
   128
        _pauseState = _player.paused();
687133dc13cf Add VideojsPlayer for handling youtube and vimeo
ymh <ymh.work@gmail.com>
parents:
diff changeset
   129
        _media.paused = _player.paused();
687133dc13cf Add VideojsPlayer for handling youtube and vimeo
ymh <ymh.work@gmail.com>
parents:
diff changeset
   130
        _media.trigger("loadedmetadata");
687133dc13cf Add VideojsPlayer for handling youtube and vimeo
ymh <ymh.work@gmail.com>
parents:
diff changeset
   131
        
687133dc13cf Add VideojsPlayer for handling youtube and vimeo
ymh <ymh.work@gmail.com>
parents:
diff changeset
   132
      });
687133dc13cf Add VideojsPlayer for handling youtube and vimeo
ymh <ymh.work@gmail.com>
parents:
diff changeset
   133
687133dc13cf Add VideojsPlayer for handling youtube and vimeo
ymh <ymh.work@gmail.com>
parents:
diff changeset
   134
      _player.on("pause", function() {
687133dc13cf Add VideojsPlayer for handling youtube and vimeo
ymh <ymh.work@gmail.com>
parents:
diff changeset
   135
        _pauseState = true;
687133dc13cf Add VideojsPlayer for handling youtube and vimeo
ymh <ymh.work@gmail.com>
parents:
diff changeset
   136
        _media.trigger("pause");
687133dc13cf Add VideojsPlayer for handling youtube and vimeo
ymh <ymh.work@gmail.com>
parents:
diff changeset
   137
      })
687133dc13cf Add VideojsPlayer for handling youtube and vimeo
ymh <ymh.work@gmail.com>
parents:
diff changeset
   138
687133dc13cf Add VideojsPlayer for handling youtube and vimeo
ymh <ymh.work@gmail.com>
parents:
diff changeset
   139
      _player.on("play", function() {
687133dc13cf Add VideojsPlayer for handling youtube and vimeo
ymh <ymh.work@gmail.com>
parents:
diff changeset
   140
        _pauseState = false;
687133dc13cf Add VideojsPlayer for handling youtube and vimeo
ymh <ymh.work@gmail.com>
parents:
diff changeset
   141
        _media.trigger("play");
687133dc13cf Add VideojsPlayer for handling youtube and vimeo
ymh <ymh.work@gmail.com>
parents:
diff changeset
   142
      })
687133dc13cf Add VideojsPlayer for handling youtube and vimeo
ymh <ymh.work@gmail.com>
parents:
diff changeset
   143
687133dc13cf Add VideojsPlayer for handling youtube and vimeo
ymh <ymh.work@gmail.com>
parents:
diff changeset
   144
      videojs.use("*", function (player) {
687133dc13cf Add VideojsPlayer for handling youtube and vimeo
ymh <ymh.work@gmail.com>
parents:
diff changeset
   145
        return {
687133dc13cf Add VideojsPlayer for handling youtube and vimeo
ymh <ymh.work@gmail.com>
parents:
diff changeset
   146
          play: function (terminated, value) {
687133dc13cf Add VideojsPlayer for handling youtube and vimeo
ymh <ymh.work@gmail.com>
parents:
diff changeset
   147
            _pauseState = false;
687133dc13cf Add VideojsPlayer for handling youtube and vimeo
ymh <ymh.work@gmail.com>
parents:
diff changeset
   148
            _media.trigger("play");
687133dc13cf Add VideojsPlayer for handling youtube and vimeo
ymh <ymh.work@gmail.com>
parents:
diff changeset
   149
            return value;
687133dc13cf Add VideojsPlayer for handling youtube and vimeo
ymh <ymh.work@gmail.com>
parents:
diff changeset
   150
          },
687133dc13cf Add VideojsPlayer for handling youtube and vimeo
ymh <ymh.work@gmail.com>
parents:
diff changeset
   151
          setCurrentTime: function (value) {
687133dc13cf Add VideojsPlayer for handling youtube and vimeo
ymh <ymh.work@gmail.com>
parents:
diff changeset
   152
            if (_seekPause) {
687133dc13cf Add VideojsPlayer for handling youtube and vimeo
ymh <ymh.work@gmail.com>
parents:
diff changeset
   153
              _player.pause();
687133dc13cf Add VideojsPlayer for handling youtube and vimeo
ymh <ymh.work@gmail.com>
parents:
diff changeset
   154
              _seekPause = false;
687133dc13cf Add VideojsPlayer for handling youtube and vimeo
ymh <ymh.work@gmail.com>
parents:
diff changeset
   155
            } else {
687133dc13cf Add VideojsPlayer for handling youtube and vimeo
ymh <ymh.work@gmail.com>
parents:
diff changeset
   156
              if (_pauseState && !_player.paused()) {
687133dc13cf Add VideojsPlayer for handling youtube and vimeo
ymh <ymh.work@gmail.com>
parents:
diff changeset
   157
                _pauseState = false;
687133dc13cf Add VideojsPlayer for handling youtube and vimeo
ymh <ymh.work@gmail.com>
parents:
diff changeset
   158
                _media.trigger("play");
687133dc13cf Add VideojsPlayer for handling youtube and vimeo
ymh <ymh.work@gmail.com>
parents:
diff changeset
   159
              }
687133dc13cf Add VideojsPlayer for handling youtube and vimeo
ymh <ymh.work@gmail.com>
parents:
diff changeset
   160
            }
687133dc13cf Add VideojsPlayer for handling youtube and vimeo
ymh <ymh.work@gmail.com>
parents:
diff changeset
   161
            _media.trigger("timeupdate", new ns.Model.Time(value));
687133dc13cf Add VideojsPlayer for handling youtube and vimeo
ymh <ymh.work@gmail.com>
parents:
diff changeset
   162
            return value;
687133dc13cf Add VideojsPlayer for handling youtube and vimeo
ymh <ymh.work@gmail.com>
parents:
diff changeset
   163
          },
687133dc13cf Add VideojsPlayer for handling youtube and vimeo
ymh <ymh.work@gmail.com>
parents:
diff changeset
   164
          pause: function (terminated, value) {
687133dc13cf Add VideojsPlayer for handling youtube and vimeo
ymh <ymh.work@gmail.com>
parents:
diff changeset
   165
            _pauseState = true;
687133dc13cf Add VideojsPlayer for handling youtube and vimeo
ymh <ymh.work@gmail.com>
parents:
diff changeset
   166
            _media.trigger("pause");
687133dc13cf Add VideojsPlayer for handling youtube and vimeo
ymh <ymh.work@gmail.com>
parents:
diff changeset
   167
            return value;
687133dc13cf Add VideojsPlayer for handling youtube and vimeo
ymh <ymh.work@gmail.com>
parents:
diff changeset
   168
          },
687133dc13cf Add VideojsPlayer for handling youtube and vimeo
ymh <ymh.work@gmail.com>
parents:
diff changeset
   169
          setMuted: function (value) {
687133dc13cf Add VideojsPlayer for handling youtube and vimeo
ymh <ymh.work@gmail.com>
parents:
diff changeset
   170
            _media.muted = value;
1076
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents: 1073
diff changeset
   171
            _media.trigger("muted");
1073
687133dc13cf Add VideojsPlayer for handling youtube and vimeo
ymh <ymh.work@gmail.com>
parents:
diff changeset
   172
            _media.trigger("volumechange");
687133dc13cf Add VideojsPlayer for handling youtube and vimeo
ymh <ymh.work@gmail.com>
parents:
diff changeset
   173
            return value;
687133dc13cf Add VideojsPlayer for handling youtube and vimeo
ymh <ymh.work@gmail.com>
parents:
diff changeset
   174
          },
687133dc13cf Add VideojsPlayer for handling youtube and vimeo
ymh <ymh.work@gmail.com>
parents:
diff changeset
   175
          setVolume: function (value) {
687133dc13cf Add VideojsPlayer for handling youtube and vimeo
ymh <ymh.work@gmail.com>
parents:
diff changeset
   176
            _media.volume = value;
687133dc13cf Add VideojsPlayer for handling youtube and vimeo
ymh <ymh.work@gmail.com>
parents:
diff changeset
   177
            _media.trigger("volumechange");
687133dc13cf Add VideojsPlayer for handling youtube and vimeo
ymh <ymh.work@gmail.com>
parents:
diff changeset
   178
            return value;
687133dc13cf Add VideojsPlayer for handling youtube and vimeo
ymh <ymh.work@gmail.com>
parents:
diff changeset
   179
          },
687133dc13cf Add VideojsPlayer for handling youtube and vimeo
ymh <ymh.work@gmail.com>
parents:
diff changeset
   180
        };
687133dc13cf Add VideojsPlayer for handling youtube and vimeo
ymh <ymh.work@gmail.com>
parents:
diff changeset
   181
      });
687133dc13cf Add VideojsPlayer for handling youtube and vimeo
ymh <ymh.work@gmail.com>
parents:
diff changeset
   182
687133dc13cf Add VideojsPlayer for handling youtube and vimeo
ymh <ymh.work@gmail.com>
parents:
diff changeset
   183
      this.videojsPlayer = _player;
687133dc13cf Add VideojsPlayer for handling youtube and vimeo
ymh <ymh.work@gmail.com>
parents:
diff changeset
   184
    }
687133dc13cf Add VideojsPlayer for handling youtube and vimeo
ymh <ymh.work@gmail.com>
parents:
diff changeset
   185
  };
687133dc13cf Add VideojsPlayer for handling youtube and vimeo
ymh <ymh.work@gmail.com>
parents:
diff changeset
   186
};
687133dc13cf Add VideojsPlayer for handling youtube and vimeo
ymh <ymh.work@gmail.com>
parents:
diff changeset
   187
1076
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents: 1073
diff changeset
   188
export { VideojsPlayerWidget as VideojsPlayer, videojsStyles, Vimeo, Dailymotion };