async switchURL (url, seamless) {
    if (!this._bufferService) return

    this._resetDisconnectCount()

    if (this._loading && seamless) {
      this._bufferService.seamlessLoadingSwitch = async (pts) => {
        await this._clear()
        this._bufferService.seamlessLoadingSwitching = true
        this._urlSwitching = true
        this._seamlessSwitching = true
        this._bufferService.seamlessSwitch()
        this._loadData(url)
      }
      return
    }

    if (!seamless || !this._opts.isLive) {
      await this.load(url)
      this._urlSwitching = true
      return this.media.play(true).catch(() => {})
    }

    await this._clear()

    setTimeout(() => {
      this._urlSwitching = true
      this._seamlessSwitching = true
      this._loadData(url)
      this._bufferService.seamlessSwitch()
    })
  }
@param {string} url
@param {boolean} [seamless=false]