fillAudioTracks_() {
    let master = this.master();
    let mediaGroups = master.mediaGroups || {};

    // force a default if we have none or we are not
    // in html5 mode (the only mode to support more than one
    // audio track)
    if (!mediaGroups ||
        !mediaGroups.AUDIO ||
        Object.keys(mediaGroups.AUDIO).length === 0 ||
        this.mode_ !== 'html5') {
      // "main" audio group, track name "default"
      mediaGroups.AUDIO = {main: {default: {default: true }}};
    }

    let tracks = {};

    for (let mediaGroup in mediaGroups.AUDIO) {
      for (let label in mediaGroups.AUDIO[mediaGroup]) {
        let properties = mediaGroups.AUDIO[mediaGroup][label];

        // if the track already exists add a new "location"
        // since tracks in different mediaGroups are actually the same
        // track with different locations to download them from
        if (tracks[label]) {
          tracks[label].addLoader(mediaGroup, properties.resolvedUri);
          continue;
        }

        let track = new HlsAudioTrack(videojs.mergeOptions(properties, {
          hls: this.hls_,
          withCredentials: this.withCredential,
          mediaGroup,
          label
        }));

        tracks[label] = track;
        this.audioTracks_.push(track);
      }
    }
  }
/**
   * fill our internal list of HlsAudioTracks with data from
   * the master playlist or use a default
   *
   * @private
   */
fill our internal list of HlsAudioTracks with data from
the master playlist or use a default

@private
fill our internal list of HlsAudioTracks with data from the master playlist or use a default @private
fillAudioTracks_() {
    let master = this.master();
    let mediaGroups = master.mediaGroups || {};
    if (!mediaGroups ||
        !mediaGroups.AUDIO ||
        Object.keys(mediaGroups.AUDIO).length === 0 ||
        this.mode_ !== 'html5') {
      mediaGroups.AUDIO = {main: {default: {default: true }}};
    }
    let tracks = {};
    for (let mediaGroup in mediaGroups.AUDIO) {
      for (let label in mediaGroups.AUDIO[mediaGroup]) {
        let properties = mediaGroups.AUDIO[mediaGroup][label];
        if (tracks[label]) {
          tracks[label].addLoader(mediaGroup, properties.resolvedUri);
          continue;
        }
        let track = new HlsAudioTrack(videojs.mergeOptions(properties, {
          hls: this.hls_,
          withCredentials: this.withCredential,
          mediaGroup,
          label
        }));
        tracks[label] = track;
        this.audioTracks_.push(track);
      }
    }
  }
fillAudioTracks_ ( ) { let master = this . master ( ) ; let mediaGroups = master . mediaGroups || { } ; if ( ! mediaGroups || ! mediaGroups . AUDIO || Object . keys ( mediaGroups . AUDIO ) . length === 0 || this . mode_ !== 'html5' ) { mediaGroups . AUDIO = { main : { default : { default : true } } } ; } let tracks = { } ; for ( let mediaGroup in mediaGroups . AUDIO ) { for ( let label in mediaGroups . AUDIO [ mediaGroup ] ) { let properties = mediaGroups . AUDIO [ mediaGroup ] [ label ] ; if ( tracks [ label ] ) { tracks [ label ] . addLoader ( mediaGroup , properties . resolvedUri ) ; continue ; } let track = new HlsAudioTrack ( videojs . mergeOptions ( properties , { hls : this . hls_ , withCredentials : this . withCredential , mediaGroup , label } ) ) ; tracks [ label ] = track ; this . audioTracks_ . push ( track ) ; } } }
fill our internal list of HlsAudioTracks with data from
 the master playlist or use a default
fill our internal list of HlsAudioTracks with data from the master playlist or use a default
// force a default if we have none or we are not // in html5 mode (the only mode to support more than one // audio track) // "main" audio group, track name "default" // if the track already exists add a new "location" // since tracks in different mediaGroups are actually the same // track with different locations to download them from