src/widgets/AdaptivePlayer.js
author ymh <ymh.work@gmail.com>
Fri, 18 Oct 2024 10:24:57 +0200
changeset 1074 231ea5ea7de4
parent 1073 687133dc13cf
permissions -rw-r--r--
change http to https for default thumb

// Class AdaptivePlayer
const AdaptivePlayer = function (ns) {
  return class extends ns.Widgets.Widget {
    constructor(player, config) {
      super(player, config);
    }

    static defaults = {
      mime_type: 'video/mp4; codecs="avc1.42E01E"',
      normal_player: "HtmlPlayer",
      fallback_player: "VideojsPlayer",
    };

    draw() {
      if (typeof this.video === "undefined") {
        this.video = this.media.video;
      }

      var _props = ["autostart", "video", "height", "width", "url_transform"],
        _opts = {},
        _canPlayType = document
          .createElement("video")
          .canPlayType(this.mime_type);

      _opts.type =
        _canPlayType !== "no" ? this.normal_player : this.fallback_player;

      for (var i = 0; i < _props.length; i++) {
        if (typeof this[_props[i]] !== "undefined") {
          _opts[_props[i]] = this[_props[i]];
        }
      }

      this.insertSubwidget(this.$, _opts);
    }
  };
};
export { AdaptivePlayer };