_parseAudio (data, pts) {
    if (!data.length) return

    const format = (data[0] & 0xf0) >>> 4
    const track = this.audioTrack

    if (
      format !== FlvSoundFormat.AAC &&
      format !== FlvSoundFormat.G711A &&
      format !== FlvSoundFormat.G711M &&
      format !== FlvSoundFormat.OPUS
    ) {
      logger.warn(`Unsupported sound format: ${format}`)
      track.reset()
      return
    }

    if (format !== FlvSoundFormat.AAC && format !== FlvSoundFormat.OPUS) {
      const soundRate = (data[0] & 0x0c) >> 2
      const soundSize = (data[0] & 0x02) >> 1
      const soundType = (data[0] & 0x01)
      track.sampleRate = FlvDemuxer.AUDIO_RATE[soundRate]
      track.sampleSize = soundSize ? 16 : 8
      track.channelCount = soundType + 1
    }

    switch (format) {
      case FlvSoundFormat.G711A:
      case FlvSoundFormat.G711M:
        this._parseG711(data, pts, format)
        break
      case FlvSoundFormat.AAC:
        this._parseAac(data, pts)
        break
      case FlvSoundFormat.OPUS:
        this._parseOpus(data, pts)
        break
      default:
        break
    }
  }
@param {Uint8Array} data
@param {number} pts
@private