src/widgets/videojs_plugins/Dailymotion.js
author ymh <ymh.work@gmail.com>
Tue, 22 Oct 2024 07:03:54 +0200
changeset 1076 510fd2a482f4
child 1079 d4f0681c4ff1
permissions -rw-r--r--
Add Dailymotion Tech and remove unused libs
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1076
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
     1
// Adapted from https://github.com/lawchihon/videojs-dailymotion
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
     2
/*global define, dailymotion*/
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
     3
import videojs from "video.js";
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
     4
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
     5
var _isOnMobile = videojs.browser.IS_IOS || videojs.browser.IS_NATIVE_ANDROID;
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
     6
var Tech = videojs.getTech("Tech");
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
     7
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
     8
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
     9
class Dailymotion extends Tech {
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
    10
  constructor(options, ready) {
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
    11
    super(options, ready);
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
    12
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
    13
    this.setSrc(this.options_.source);
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
    14
    console.log(this.options_.source)
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
    15
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
    16
    // Set the vjs-dailymotion class to the player
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
    17
    // Parent is not set yet so we have to wait a tick
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
    18
    setTimeout( () => {
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
    19
      if (this.el_) {
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
    20
        this.el_.parentNode.className += " vjs-dailymotion";
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
    21
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
    22
        if (_isOnMobile) {
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
    23
          this.el_.parentNode.className += " vjs-dailymotion-mobile";
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
    24
        }
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
    25
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
    26
        if (Dailymotion.isSdkReady) {
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
    27
            this.initDMPlayer();
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
    28
        } else {
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
    29
          Dailymotion.sdkReadyQueue.push(this);
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
    30
        }
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
    31
      }
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
    32
    });
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
    33
  };
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
    34
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
    35
  _getPlayerParams() {
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
    36
    var playerParams = {
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
    37
      autoplay: false,
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
    38
      mute: false,
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
    39
      controls: false,
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
    40
      "enable-playback-controls": false,
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
    41
      "queue-autoplay-next": false,
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
    42
      "queue-enable": false,
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
    43
    };
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
    44
    // Let the user set any Dailymotion parameter
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
    45
    // https://developer.dailymotion.com/player/#player-parameters
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
    46
    // To use Dailymotion controls, you must use dmControls instead
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
    47
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
    48
    var params = [
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
    49
      "api",
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
    50
      "autoplay",
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
    51
      "autoplay-mute",
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
    52
      "id",
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
    53
      "mute",
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
    54
      "origin",
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
    55
      "quality",
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
    56
      "queue-autoplay-next",
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
    57
      "queue-enable",
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
    58
      "sharing-enable",
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
    59
      "start",
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
    60
      "subtitles-default",
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
    61
      "syndication",
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
    62
      "ui-highlight",
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
    63
      "ui-logo",
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
    64
      "ui-start-screen-info",
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
    65
      "ui-theme",
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
    66
      "apimode",
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
    67
      "playlist",
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
    68
    ];
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
    69
    var options = this.options_;
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
    70
    params.forEach(function (param) {
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
    71
      if (typeof options[param] === "undefined") {
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
    72
        return;
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
    73
      }
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
    74
      playerParams[param] = options[param];
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
    75
    });
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
    76
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
    77
    if (typeof this.options_.dmControls !== "undefined") {
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
    78
      playerParams.controls = this.options_.dmControls;
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
    79
    }
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
    80
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
    81
    // Overwriting playlist if it is included in url
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
    82
    if (this.url && typeof this.url.playlist !== "undefined") {
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
    83
      playerParams.playlist = this.url.playlist;
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
    84
    }
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
    85
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
    86
    // Allow undocumented options to be passed along via customVars
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
    87
    if (typeof this.options_.customVars !== "undefined") {
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
    88
      var customVars = this.options_.customVars;
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
    89
      Object.keys(customVars).forEach(function (key) {
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
    90
        playerParams[key] = customVars[key];
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
    91
      });
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
    92
    }
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
    93
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
    94
    return playerParams;
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
    95
  }
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
    96
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
    97
  _getPlayerConfig() {
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
    98
    var playerConfig = {
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
    99
      width: "100%",
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   100
      height: "100%",
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   101
      params: this._getPlayerParams(),
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   102
    };
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   103
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   104
    if (this.url && typeof this.url.video !== "undefined") {
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   105
      playerConfig.video = this.url.video;
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   106
    } else if (typeof this.options_.video !== "undefined") {
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   107
      playerConfig.video = this.options_.video;
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   108
    }
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   109
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   110
    return playerConfig;
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   111
  }
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   112
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   113
  async initDMPlayer() {
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   114
    console.log("INIT DM Player", this._getPlayerConfig());
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   115
    if (this.dmPlayer) {
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   116
      return;
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   117
    }
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   118
    const eventMapping = {
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   119
      [dailymotion.events.VIDEO_DURATIONCHANGE]: [ "durationchange" ],
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   120
      [dailymotion.events.PLAYER_END]: [ "ended" ],
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   121
      [dailymotion.events.PLAYER_ERROR]: [ "error" ],
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   122
      [dailymotion.events.PLAYER_VIDEOCHANGE]: [ "loadeddata", "loadedmetadata"],
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   123
      [dailymotion.events.VIDEO_PAUSE]: [ "pause" ],
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   124
      //[dailymotion.events.VIDEO_PLAY]: [ "loadstart", "play", "playing", "waiting" ],
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   125
      [dailymotion.events.VIDEO_PLAY]: [ "loadstart", "play", "playing" ],
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   126
      [dailymotion.events.VIDEO_PLAYING]: [ "playing" ],
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   127
      [dailymotion.events.VIDEO_TIMECHANGE]: [ "timeupdate" ],
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   128
      [dailymotion.events.PLAYER_VOLUMECHANGE]: [ "volumechange", "mute" ],
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   129
    };    
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   130
    this.dmPlayer = await dailymotion.createPlayer(
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   131
      this.options_.techId,
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   132
      this._getPlayerConfig()
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   133
    );
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   134
    this.dmState = await this.getPlayerState();
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   135
    //var vm = this;
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   136
    this.isApiReady = true;
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   137
    this.dmPlayer.enable_playback_controls = false;
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   138
    console.log("AUTONEXT", this.dmPlayer.enable_playback_controls);
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   139
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   140
    for (const ev in eventMapping) {
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   141
      this.dmPlayer.on(ev, (s) => {
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   142
        this.dmState = s;
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   143
        for (const tev of eventMapping[ev]) {
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   144
          this.trigger(tev)
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   145
        }
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   146
      });
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   147
    }
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   148
    this.dmPlayer.on(dailymotion.events.PLAYER_ERROR, (s) => {
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   149
      vm.trigger("error", s.playerError);
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   150
    });
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   151
    this.triggerReady();
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   152
  }
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   153
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   154
  autoplay(autoplay) {
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   155
    if (typeof autoplay !== "undefined") {
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   156
      return this.setAutoplay(autoplay);
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   157
    }
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   158
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   159
    return this.options_.autoplay;
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   160
  }
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   161
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   162
  setAutoplay(val) {
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   163
    return (this.options_.autoplay = val);
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   164
  }
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   165
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   166
  buffered() {
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   167
    if (!this.dmPlayer || !this.dmPlayer.bufferedTime) {
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   168
      return videojs.createTimeRange();
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   169
    }
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   170
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   171
    return videojs.createTimeRange(0, this.dmPlayer.bufferedTime);
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   172
  }
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   173
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   174
  createEl() {
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   175
    var div = document.createElement("div");
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   176
    div.setAttribute("id", this.options_.techId);
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   177
    div.setAttribute(
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   178
      "style",
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   179
      "width:100%;height:100%;top:0;left:0;position:absolute"
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   180
    );
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   181
    div.setAttribute("class", "vjs-tech");
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   182
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   183
    var divWrapper = document.createElement("div");
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   184
    divWrapper.appendChild(div);
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   185
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   186
    if (!_isOnMobile && !this.options_.dmControls) {
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   187
      // var divBlocker = document.createElement('div');
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   188
      // divBlocker.setAttribute('class', 'vjs-iframe-blocker');
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   189
      // divBlocker.setAttribute('style', 'position:absolute;top:0;left:0;width:100%;height:100%');
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   190
      //
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   191
      // // In case the blocker is still there and we want to pause
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   192
      // divBlocker.onclick = function() {
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   193
      //   this.pause();
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   194
      // }.bind(this);
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   195
      //
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   196
      // divWrapper.appendChild(divBlocker);
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   197
    }
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   198
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   199
    return divWrapper;
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   200
  }
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   201
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   202
  currentSrc() {
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   203
    return this.source && this.source.src;
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   204
  }
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   205
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   206
  currentTime() {
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   207
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   208
    return this.dmPlayer && this.dmState && this.dmState.videoTime;
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   209
  }
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   210
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   211
  setCurrentTime(seconds) {
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   212
    if (!this.dmPlayer || !this.dmPlayer.seek) {
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   213
      return;
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   214
    }
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   215
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   216
    return this.dmPlayer.seek(seconds);
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   217
  }
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   218
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   219
  dispose() {
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   220
    if (this.dmPlayer) {
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   221
      //Destroy the Dailymotion Player
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   222
      this.dmPlayer.destroy(this.options_.techId);
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   223
      Tech.prototype.dispose.call(this);
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   224
    } else {
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   225
      //Dailymotion API hasn't finished loading or the player is already disposed
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   226
      var index = Dailymotion.sdkReadyQueue.indexOf(this);
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   227
      if (index !== -1) {
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   228
        Dailymotion.sdkReadyQueue.splice(index, 1);
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   229
      }
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   230
    }
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   231
    this.dmPlayer = undefined;
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   232
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   233
    this.el_.parentNode.className = this.el_.parentNode.className
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   234
      .replace(" vjs-dailymotion", "")
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   235
      .replace(" vjs-dailymotion-mobile", "");
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   236
    this.el_.parentNode.removeChild(this.el_);
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   237
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   238
    // Needs to be called after the Dailymotion player is destroyed,
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   239
    // otherwise there will be a undefined reference exception
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   240
    Tech.prototype.dispose.call(this);
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   241
  }
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   242
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   243
  duration() {
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   244
    return this.dmState ? this.dmState.videoDuration : 0;
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   245
  }
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   246
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   247
  setDuration(seconds) {
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   248
  }
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   249
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   250
  ended() {
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   251
  }
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   252
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   253
  enterFullWindow() {
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   254
    if (!this.dmPlayer || !this.dmPlayer.setFullscreen) {
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   255
      return;
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   256
    }
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   257
    return this.dmPlayer.setFullscreen(true);
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   258
  }
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   259
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   260
  error() {
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   261
    return this.dmState && this.dmState.playerError;
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   262
  }
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   263
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   264
  exitFullscreen() {
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   265
    if (!this.dmPlayer || !this.dmPlayer.setFullscreen) {
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   266
      return;
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   267
    }
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   268
    return this.dmPlayer.setFullscreen(false);
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   269
  }
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   270
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   271
  isFullscreen() {
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   272
    return this.dmState && this.dmState.playerPresentationMode === "fullscreen";
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   273
  }
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   274
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   275
  // Not supported by Dailymotion
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   276
  language() {
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   277
  }
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   278
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   279
  // Not supported by Dailymotion
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   280
  languages() {
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   281
  }
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   282
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   283
  load() {
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   284
    if (!this.dmPlayer || !this.dmPlayer.loadContent) {
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   285
      return;
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   286
    }
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   287
    return this.dmPlayer.loadContent(this._getPlayerConfig());
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   288
  }
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   289
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   290
  // Not supported by Dailymotion
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   291
  loop() {
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   292
  }
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   293
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   294
  async muted() {
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   295
    
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   296
    if(!this.dmState) {
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   297
      return false;
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   298
    }
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   299
    return this.dmState.playerIsMuted;
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   300
  }
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   301
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   302
  async setMuted(mute) {
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   303
    if (typeof mute === "undefined") {
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   304
      const state = await this.getPlayerState();
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   305
      mute = state.playerIsMuted ? false : true;
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   306
    }
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   307
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   308
    await this.dmPlayer.setMute(mute);
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   309
  }
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   310
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   311
  networkState() {
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   312
  }
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   313
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   314
  async pause() {
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   315
    if (!this.dmPlayer || !this.dmPlayer.pause) {
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   316
      return;
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   317
    }
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   318
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   319
    return await this.dmPlayer.pause();
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   320
  }
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   321
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   322
  paused() {
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   323
    return this.dmState && this.dmState.playerIsPlaying === false;
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   324
  }
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   325
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   326
  play() {
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   327
    if (!this.isApiReady || !this.dmPlayer || !this.dmPlayer.play) {
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   328
      return;
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   329
    }
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   330
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   331
    return this.dmPlayer.play();
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   332
  }
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   333
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   334
  // Playback rate is not support by Dailymotion
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   335
  playbackRate() {
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   336
    return 1;
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   337
  }
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   338
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   339
  // Not supported by Dailymotion
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   340
  poster() {
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   341
    return undefined;
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   342
  }
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   343
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   344
  // Not supported by Dailymotion
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   345
  preload() {
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   346
    return undefined;
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   347
  }
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   348
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   349
  // TODO: Confirm if it can be more detail
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   350
  readyState() {
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   351
    if (!this.dmState || this.dmState.playerError) {
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   352
      return 0; //NETWORK_EMPTY
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   353
    }
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   354
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   355
    return 4; //HAVE_ENOUGH_DATA
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   356
  }
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   357
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   358
  remainingTime() {
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   359
    return this.dmState && this.dmState.videoDuration - this.dmState.videoTime;
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   360
  }
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   361
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   362
  requestFullscreen() {
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   363
    return this.enterFullWindow();
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   364
  }
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   365
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   366
  enterFullScreen() {
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   367
    return this.enterFullWindow();
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   368
  }
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   369
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   370
  reset() {
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   371
    this.load();
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   372
  }
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   373
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   374
  seekable() {
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   375
  }
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   376
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   377
  seeking() {
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   378
  }
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   379
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   380
  src(source) {
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   381
    if (typeof source !== "undefined") {
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   382
      return this.setSrc(source);
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   383
    }
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   384
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   385
    return this.source;
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   386
  }
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   387
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   388
  setSrc(source) {
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   389
    if (typeof source === "undefined") {
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   390
      return;
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   391
    }
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   392
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   393
    this.source = source;
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   394
    this.url = Dailymotion.parseUrl(source.src || source);
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   395
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   396
    // Load the video if sdk is ready
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   397
    if (Dailymotion.isSdkReady) {
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   398
      this.load();
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   399
    }
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   400
    return this.source;
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   401
  }
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   402
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   403
  supportsFullScreen() {
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   404
    return true;
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   405
  }
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   406
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   407
  async volume() {
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   408
    if(!this.dmPlayer ) {
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   409
      return 1
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   410
    }
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   411
    const state = await this.dmPlayer.getState();
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   412
    return state.playerVolume;
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   413
  }
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   414
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   415
  setVolume(percentAsDecimal) {
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   416
    if (!this.dmPlayer || !this.dmPlayer.setMute || !this.dmPlayer.setVolume) {
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   417
      return;
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   418
    }
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   419
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   420
    if (percentAsDecimal > 0) {
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   421
      this.dmPlayer.setMute(false);
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   422
    } else {
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   423
      this.dmPlayer.setMute(true);
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   424
    }
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   425
    this.dmPlayer.setVolume(percentAsDecimal);
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   426
  }
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   427
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   428
  async getPlayerState() {
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   429
    if (!this.dmPlayer) {
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   430
      return {};
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   431
    }
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   432
    return await this.dmPlayer.getState();
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   433
  }
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   434
};
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   435
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   436
Dailymotion.isSupported = function () {
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   437
  return true;
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   438
};
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   439
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   440
Dailymotion.canPlaySource = function (e) {
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   441
  return Dailymotion.canPlayType(e.type);
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   442
};
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   443
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   444
Dailymotion.canPlayType = function (e) {
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   445
  return e === "video/dailymotion";
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   446
};
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   447
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   448
Dailymotion.parseUrl = function (url) {
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   449
  var result = {};
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   450
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   451
  var regex = /video\/[^?|^\/]*/;
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   452
  var match = url.match(regex);
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   453
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   454
  if (match && match[0]) {
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   455
    result.video = match[0].replace("video/", "");
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   456
  }
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   457
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   458
  var regPlaylist = /playlist(=|\/)[^&]*/;
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   459
  match = url.match(regPlaylist);
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   460
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   461
  if (match && match[0]) {
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   462
    result.playlist = match[0].replace(/playlist(=|\/)/, "");
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   463
  }
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   464
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   465
  return result;
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   466
};
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   467
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   468
async function apiLoaded() {
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   469
    Dailymotion.isSdkReady = true;
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   470
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   471
    for (var i = 0; i < Dailymotion.sdkReadyQueue.length; ++i) {
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   472
      await Dailymotion.sdkReadyQueue[i].initDMPlayer();
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   473
    }
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   474
}
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   475
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   476
function loadScript(src, callback) {
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   477
  var loaded = false;
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   478
  var tag = document.createElement("script");
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   479
  var firstScriptTag = document.getElementsByTagName("script")[0];
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   480
  if (!firstScriptTag) {
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   481
    // when loaded in jest without jsdom setup it doesn't get any element.
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   482
    // In jest it doesn't really make sense to do anything, because no one is watching dailymotion in jest
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   483
    return;
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   484
  }
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   485
  firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   486
  tag.onload = function () {
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   487
    if (!loaded) {
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   488
      loaded = true;
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   489
      callback();
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   490
    }
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   491
  };
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   492
  tag.onreadystatechange = function () {
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   493
    if (
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   494
      !loaded &&
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   495
      (this.readyState === "complete" || this.readyState === "loaded")
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   496
    ) {
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   497
      loaded = true;
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   498
      callback();
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   499
    }
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   500
  };
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   501
  tag.src = src;
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   502
}
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   503
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   504
function injectCss() {
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   505
  var css = // iframe blocker to catch mouse events
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   506
    ".vjs-dailymotion .vjs-iframe-blocker { display: none; }" +
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   507
    ".vjs-dailymotion.vjs-user-inactive .vjs-iframe-blocker { display: block; }" +
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   508
    ".vjs-dailymotion .vjs-poster { background-size: cover; }" +
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   509
    ".vjs-dailymotion-mobile .vjs-big-play-button { display: none; }";
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   510
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   511
  var head = document.head || document.getElementsByTagName("head")[0];
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   512
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   513
  var style = document.createElement("style");
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   514
  style.setAttribute("type", "text/css");
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   515
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   516
  if (style.styleSheet) {
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   517
    style.styleSheet.cssText = css;
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   518
  } else {
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   519
    style.appendChild(document.createTextNode(css));
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   520
  }
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   521
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   522
  head.appendChild(style);
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   523
}
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   524
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   525
Dailymotion.sdkReadyQueue = [];
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   526
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   527
// x10ckq
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   528
Dailymotion.loadLibrary = function(playerId) {
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   529
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   530
  if (typeof document !== "undefined") {
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   531
    loadScript(`https://geo.dailymotion.com/libs/player/${playerId}.js`, () => {
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   532
      if (window.dailymotion === undefined) {
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   533
        window.dailymotion = { 
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   534
          onScriptLoaded: apiLoaded
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   535
        }
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   536
      } else {
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   537
        apiLoaded();
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   538
      }  
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   539
    });
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   540
    injectCss();
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   541
  }  
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   542
}
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   543
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   544
videojs.registerTech("Dailymotion", Dailymotion);
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   545
510fd2a482f4 Add Dailymotion Tech and remove unused libs
ymh <ymh.work@gmail.com>
parents:
diff changeset
   546
export default Dailymotion;