addBaseButtons() {
    let disableButtons = false;
    this.addButton('Play', async () => {
      if (disableButtons) {
        return;
      }
      disableButtons = true;
      await shakaDemoMain.loadAsset(this.asset_);
      this.remakeButtons();
    });
    this.addButton('Add to queue', async () => {
      if (disableButtons) {
        return;
      }
      disableButtons = true;
      if (shakaDemoMain.isPlaying()) {
        await shakaDemoMain.addToQueue(this.asset_);
      } else {
        await shakaDemoMain.loadAsset(this.asset_);
      }
      this.remakeButtons();
    });
    let preloadName = 'Start Preload';
    if (this.asset_.preloadManager) {
      preloadName = this.asset_.preloaded ? 'Preloaded!' : 'Preloading...';
    } else if (this.asset_.preloadFailed) {
      preloadName = 'Failed to Preload!';
    }
    const preloadButton = this.addButton(preloadName, async () => {
      if (disableButtons) {
        return;
      }
      disableButtons = true;
      this.asset_.preloaded = false;
      if (this.asset_.preloadManager) {
        await this.asset_.preloadManager.destroy();
        this.asset_.preloadManager = null;
        this.remakeButtons();
      } else {
        try {
          await shakaDemoMain.preloadAsset(this.asset_);
          this.remakeButtons();
          if (this.asset_.preloadManager) {
            await this.asset_.preloadManager.waitForFinish();
            this.asset_.preloaded = true;
          } else {
            this.asset_.preloadFailed = true;
          }
        } catch (error) {
          this.asset_.preloadManager = null;
          this.asset_.preloadFailed = true;
          throw error;
        } finally {
          this.remakeButtons();
        }
      }
    });
    if (this.asset_.preloadFailed) {
      preloadButton.disabled = true;
    }
  }
Adds basic buttons to the card ("play" and "preload").