function EMEController(hls) {
    this.hls = void 0;
    this._widevineLicenseUrl = void 0;
    this._licenseXhrSetup = void 0;
    this._licenseResponseCallback = void 0;
    this._emeEnabled = void 0;
    this._requestMediaKeySystemAccess = void 0;
    this._drmSystemOptions = void 0;
    this._config = void 0;
    this._mediaKeysList = [];
    this._media = null;
    this._hasSetMediaKeys = false;
    this._requestLicenseFailureCount = 0;
    this.mediaKeysPromise = null;
    this._onMediaEncrypted = this.onMediaEncrypted.bind(this);
    this.hls = hls;
    this._config = hls.config;
    this._widevineLicenseUrl = this._config.widevineLicenseUrl;
    this._licenseXhrSetup = this._config.licenseXhrSetup;
    this._licenseResponseCallback = this._config.licenseResponseCallback;
    this._emeEnabled = this._config.emeEnabled;
    this._requestMediaKeySystemAccess = this._config.requestMediaKeySystemAccessFunc;
    this._drmSystemOptions = this._config.drmSystemOptions;

    this._registerListeners();
  }
@constructs
@param {Hls} hls Our Hls.js instance