whole_func_string: function build() {
  	    var _this = this;
  
  	    // Re-attach media element listeners
  	    // TODO: Use event bubbling?
  	    this.listeners.media(); // Don't setup interface if no support
  
  	    if (!this.supported.ui) {
  	      this.debug.warn("Basic support only for ".concat(this.provider, " ").concat(this.type)); // Restore native controls
  
  	      ui.toggleNativeControls.call(this, true); // Bail
  
  	      return;
  	    } // Inject custom controls if not present
  
  
  	    if (!is$1.element(this.elements.controls)) {
  	      // Inject custom controls
  	      controls.inject.call(this); // Re-attach control listeners
  
  	      this.listeners.controls();
  	    } // Remove native controls
  
  
  	    ui.toggleNativeControls.call(this); // Setup captions for HTML5
  
  	    if (this.isHTML5) {
  	      captions.setup.call(this);
  	    } // Reset volume
  
  
  	    this.volume = null; // Reset mute state
  
  	    this.muted = null; // Reset loop state
  
  	    this.loop = null; // Reset quality setting
  
  	    this.quality = null; // Reset speed
  
  	    this.speed = null; // Reset volume display
  
  	    controls.updateVolume.call(this); // Reset time display
  
  	    controls.timeUpdate.call(this); // Update the UI
  
  	    ui.checkPlaying.call(this); // Check for picture-in-picture support
  
  	    toggleClass(this.elements.container, this.config.classNames.pip.supported, support.pip && this.isHTML5 && this.isVideo); // Check for airplay support
  
  	    toggleClass(this.elements.container, this.config.classNames.airplay.supported, support.airplay && this.isHTML5); // Add iOS class
  
  	    toggleClass(this.elements.container, this.config.classNames.isIos, browser.isIos); // Add touch class
  
  	    toggleClass(this.elements.container, this.config.classNames.isTouch, this.touch); // Ready for API calls
  
  	    this.ready = true; // Ready event at end of execution stack
  
  	    setTimeout(function () {
  	      triggerEvent.call(_this, _this.media, 'ready');
  	    }, 0); // Set the title
  
  	    ui.setTitle.call(this); // Assure the poster image is set, if the property was added before the element was created
  
  	    if (this.poster) {
  	      ui.setPoster.call(this, this.poster, false).catch(function () {});
  	    } // Manually set the duration if user has overridden it.
  	    // The event listeners for it doesn't get called if preload is disabled (#701)
  
  
  	    if (this.config.duration) {
  	      controls.durationUpdate.call(this);
  	    }
  	  }
func_code_string: function build() {
  	    var _this = this;
  
  	    // Re-attach media element listeners
  	    // TODO: Use event bubbling?
  	    this.listeners.media(); // Don't setup interface if no support
  
  	    if (!this.supported.ui) {
  	      this.debug.warn("Basic support only for ".concat(this.provider, " ").concat(this.type)); // Restore native controls
  
  	      ui.toggleNativeControls.call(this, true); // Bail
  
  	      return;
  	    } // Inject custom controls if not present
  
  
  	    if (!is$1.element(this.elements.controls)) {
  	      // Inject custom controls
  	      controls.inject.call(this); // Re-attach control listeners
  
  	      this.listeners.controls();
  	    } // Remove native controls
  
  
  	    ui.toggleNativeControls.call(this); // Setup captions for HTML5
  
  	    if (this.isHTML5) {
  	      captions.setup.call(this);
  	    } // Reset volume
  
  
  	    this.volume = null; // Reset mute state
  
  	    this.muted = null; // Reset loop state
  
  	    this.loop = null; // Reset quality setting
  
  	    this.quality = null; // Reset speed
  
  	    this.speed = null; // Reset volume display
  
  	    controls.updateVolume.call(this); // Reset time display
  
  	    controls.timeUpdate.call(this); // Update the UI
  
  	    ui.checkPlaying.call(this); // Check for picture-in-picture support
  
  	    toggleClass(this.elements.container, this.config.classNames.pip.supported, support.pip && this.isHTML5 && this.isVideo); // Check for airplay support
  
  	    toggleClass(this.elements.container, this.config.classNames.airplay.supported, support.airplay && this.isHTML5); // Add iOS class
  
  	    toggleClass(this.elements.container, this.config.classNames.isIos, browser.isIos); // Add touch class
  
  	    toggleClass(this.elements.container, this.config.classNames.isTouch, this.touch); // Ready for API calls
  
  	    this.ready = true; // Ready event at end of execution stack
  
  	    setTimeout(function () {
  	      triggerEvent.call(_this, _this.media, 'ready');
  	    }, 0); // Set the title
  
  	    ui.setTitle.call(this); // Assure the poster image is set, if the property was added before the element was created
  
  	    if (this.poster) {
  	      ui.setPoster.call(this, this.poster, false).catch(function () {});
  	    } // Manually set the duration if user has overridden it.
  	    // The event listeners for it doesn't get called if preload is disabled (#701)
  
  
  	    if (this.config.duration) {
  	      controls.durationUpdate.call(this);
  	    }
  	  }
func_documentation_string: Setup the UI