{"version":3,"sources":["jsdelivr-header.js","/npm/@jeffreyca/react-jinke-music-player@4.22.1/lib/index.js"],"names":[],"mappings":"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","file":"/npm/@jeffreyca/react-jinke-music-player@4.22.1/lib/index.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/@jeffreyca/react-jinke-music-player@4.22.1/lib/index.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports[\"default\"] = void 0;\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _downloadjs = _interopRequireDefault(require(\"downloadjs\"));\n\nvar _isMobile = _interopRequireDefault(require(\"is-mobile\"));\n\nvar _Slider = _interopRequireDefault(require(\"rc-slider/lib/Slider\"));\n\nvar _rcSwitch = _interopRequireDefault(require(\"rc-switch\"));\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _reactDom = require(\"react-dom\");\n\nvar _reactDraggable = _interopRequireDefault(require(\"react-draggable\"));\n\nvar _sortablejs = _interopRequireWildcard(require(\"sortablejs\"));\n\nvar _AudioListsPanel = _interopRequireDefault(require(\"./components/AudioListsPanel\"));\n\nvar _CircleProcessBar = _interopRequireDefault(require(\"./components/CircleProcessBar\"));\n\nvar _Icon = require(\"./components/Icon\");\n\nvar _PlayerMobile = _interopRequireDefault(require(\"./components/PlayerMobile\"));\n\nvar _PlayModel = _interopRequireDefault(require(\"./components/PlayModel\"));\n\nvar _animate = require(\"./config/animate\");\n\nvar _keycode = require(\"./config/keycode\");\n\nvar _locale = _interopRequireDefault(require(\"./config/locale\"));\n\nvar _mediaQuery = require(\"./config/mediaQuery\");\n\nvar _mode = require(\"./config/mode\");\n\nvar _audioState = require(\"./config/audioState\");\n\nvar _playMode2 = _interopRequireDefault(require(\"./config/playMode\"));\n\nvar _propTypes = _interopRequireDefault(require(\"./config/propTypes\"));\n\nvar _slider = require(\"./config/slider\");\n\nvar _theme = require(\"./config/theme\");\n\nvar _volumeFade = require(\"./config/volumeFade\");\n\nvar _player = require(\"./config/player\");\n\nvar _sortable = _interopRequireDefault(require(\"./config/sortable\"));\n\nvar _locale2 = _interopRequireDefault(require(\"./locale\"));\n\nvar _lyric = _interopRequireDefault(require(\"./lyric\"));\n\nvar _utils = require(\"./utils\");\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n_sortablejs[\"default\"].mount(new _sortablejs.Swap());\n\nvar IS_MOBILE = (0, _isMobile[\"default\"])();\nvar DEFAULT_ICON = {\n  pause: /*#__PURE__*/_react[\"default\"].createElement(_Icon.AnimatePauseIcon, null),\n  play: /*#__PURE__*/_react[\"default\"].createElement(_Icon.AnimatePlayIcon, null),\n  destroy: /*#__PURE__*/_react[\"default\"].createElement(_Icon.CloseIcon, null),\n  close: /*#__PURE__*/_react[\"default\"].createElement(_Icon.CloseIcon, null),\n  \"delete\": /*#__PURE__*/_react[\"default\"].createElement(_Icon.DeleteIcon, {\n    size: 24\n  }),\n  download: /*#__PURE__*/_react[\"default\"].createElement(_Icon.DownloadIcon, {\n    size: 26\n  }),\n  toggle: /*#__PURE__*/_react[\"default\"].createElement(_Icon.FaMinusSquareOIcon, null),\n  lyric: /*#__PURE__*/_react[\"default\"].createElement(_Icon.LyricIcon, null),\n  volume: /*#__PURE__*/_react[\"default\"].createElement(_Icon.VolumeUnmuteIcon, {\n    size: 26\n  }),\n  mute: /*#__PURE__*/_react[\"default\"].createElement(_Icon.VolumeMuteIcon, {\n    size: 26\n  }),\n  next: /*#__PURE__*/_react[\"default\"].createElement(_Icon.NextAudioIcon, null),\n  prev: /*#__PURE__*/_react[\"default\"].createElement(_Icon.PrevAudioIcon, null),\n  playLists: /*#__PURE__*/_react[\"default\"].createElement(_Icon.PlayListsIcon, null),\n  reload: /*#__PURE__*/_react[\"default\"].createElement(_Icon.ReloadIcon, {\n    size: 22\n  }),\n  loop: /*#__PURE__*/_react[\"default\"].createElement(_Icon.LoopIcon, {\n    size: 26\n  }),\n  order: /*#__PURE__*/_react[\"default\"].createElement(_Icon.OrderPlayIcon, {\n    size: 26\n  }),\n  orderLoop: /*#__PURE__*/_react[\"default\"].createElement(_Icon.RepeatIcon, {\n    size: 26\n  }),\n  shuffle: /*#__PURE__*/_react[\"default\"].createElement(_Icon.ShufflePlayIcon, {\n    size: 26\n  }),\n  loading: /*#__PURE__*/_react[\"default\"].createElement(_Icon.LoadIcon, null),\n  packUpPanelMobile: /*#__PURE__*/_react[\"default\"].createElement(_Icon.ArrowDownIcon, {\n    size: 26\n  }),\n  empty: /*#__PURE__*/_react[\"default\"].createElement(_Icon.EmptyIcon, null)\n};\n\nvar ReactJkMusicPlayer = /*#__PURE__*/function (_PureComponent) {\n  _inherits(ReactJkMusicPlayer, _PureComponent);\n\n  var _super = _createSuper(ReactJkMusicPlayer);\n\n  function ReactJkMusicPlayer(props) {\n    var _this;\n\n    _classCallCheck(this, ReactJkMusicPlayer);\n\n    _this = _super.call(this, props);\n\n    _defineProperty(_assertThisInitialized(_this), \"isDrag\", false);\n\n    _defineProperty(_assertThisInitialized(_this), \"initPlayId\", '');\n\n    _defineProperty(_assertThisInitialized(_this), \"state\", {\n      audioLists: [],\n      playId: _this.initPlayId,\n      // 播放id\n      name: '',\n      // 当前歌曲名\n      cover: '',\n      // 当前歌曲封面\n      singer: '',\n      // 当前歌手\n      musicSrc: '',\n      // 当前歌曲链\n      lyric: '',\n      // 当前歌词\n      currentLyric: '',\n      isMobile: IS_MOBILE,\n      toggle: _this.props.mode === _mode.MODE.FULL,\n      playing: false,\n      currentTime: 0,\n      soundValue: _player.DEFAULT_VOLUME * 100,\n      moveX: 0,\n      moveY: 0,\n      loading: false,\n      audioListsPanelVisible: false,\n      playModelNameVisible: false,\n      theme: _this.props.theme || _this.darkThemeName,\n      playMode: _this.props.playMode || _this.props.defaultPlayMode || '',\n      // 当前播放模式\n      currentAudioVolume: 0,\n      // 当前音量  静音后恢复到之前记录的音量\n      initAnimate: false,\n      isInitAutoPlay: _this.props.autoPlay,\n      isInitRemember: false,\n      loadedProgress: 0,\n      removeId: _player.DEFAULT_REMOVE_ID,\n      isNeedMobileHack: IS_MOBILE,\n      audioLyricVisible: false,\n      isAutoPlayWhenUserClicked: false,\n      playIndex: _this.props.playIndex || _this.props.defaultPlayIndex || _player.DEFAULT_PLAY_INDEX,\n      canPlay: false,\n      currentVolumeFade: _volumeFade.VOLUME_FADE.NONE,\n      currentVolumeFadeInterval: undefined,\n      updateIntervalEndVolume: undefined,\n      isAudioSeeking: false,\n      isResetCoverRotate: false\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"getPlayIndex\", function () {\n      var playIndex = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _this.state.playIndex;\n      var audioLists = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _this.state.audioLists;\n      return Math.max(_player.DEFAULT_PLAY_INDEX, Math.min(audioLists.length - 1, playIndex));\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"onCoverClick\", function () {\n      var mode = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _mode.MODE.FULL;\n      var showMiniModeCover = _this.props.showMiniModeCover;\n      var cover = _this.state.cover;\n\n      if (!showMiniModeCover && mode === _mode.MODE.MINI) {\n        return;\n      }\n\n      if (_this.props.onCoverClick && cover) {\n        _this.props.onCoverClick(mode, _this.state.audioLists, _this.getBaseAudioInfo());\n      }\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"getAudioTitle\", function () {\n      var _ref = _this.locale || {},\n          audioTitle = _ref.audioTitle;\n\n      var _this$state = _this.state,\n          name = _this$state.name,\n          singer = _this$state.singer;\n\n      if (typeof audioTitle === 'function' && _this.audio) {\n        return audioTitle(_this.getBaseAudioInfo());\n      }\n\n      return audioTitle || \"\".concat(name).concat(singer ? \" - \".concat(singer) : '');\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"renderAudioTitle\", function () {\n      var _this$state2 = _this.state,\n          isMobile = _this$state2.isMobile,\n          name = _this$state2.name;\n\n      if (_this.props.renderAudioTitle) {\n        return _this.props.renderAudioTitle(_this.getBaseAudioInfo(), isMobile);\n      }\n\n      return isMobile ? name : _this.getAudioTitle();\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"toggleAudioLyric\", function () {\n      _this.setState({\n        audioLyricVisible: !_this.state.audioLyricVisible\n      });\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"togglePlayMode\", function () {\n      var index = _this._PLAY_MODE_.findIndex(function (mode) {\n        return mode === _this.state.playMode;\n      });\n\n      var playMode = index === _this._PLAY_MODE_LENGTH_ - 1 ? _this._PLAY_MODE_[0] : _this._PLAY_MODE_[++index];\n\n      _this.setState({\n        playMode: playMode,\n        playModelNameVisible: true,\n        playModeTipVisible: true\n      });\n\n      _this.props.onPlayModeChange && _this.props.onPlayModeChange(playMode);\n      clearTimeout(_this.playModelTimer);\n      _this.playModelTimer = setTimeout(function () {\n        _this.setState({\n          playModelNameVisible: false,\n          playModeTipVisible: false\n        });\n      }, _this.props.playModeShowTime);\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"renderPlayModeIcon\", function (playMode) {\n      var animateProps = {\n        className: 'react-jinke-music-player-mode-icon'\n      };\n      var IconNode = null;\n\n      switch (playMode) {\n        case _playMode2[\"default\"].order:\n          IconNode = /*#__PURE__*/(0, _react.cloneElement)(_this.iconMap.order, animateProps);\n          break;\n\n        case _playMode2[\"default\"].orderLoop:\n          IconNode = /*#__PURE__*/(0, _react.cloneElement)(_this.iconMap.orderLoop, animateProps);\n          break;\n\n        case _playMode2[\"default\"].singleLoop:\n          IconNode = /*#__PURE__*/(0, _react.cloneElement)(_this.iconMap.loop, animateProps);\n          break;\n\n        case _playMode2[\"default\"].shufflePlay:\n          IconNode = /*#__PURE__*/(0, _react.cloneElement)(_this.iconMap.shuffle, animateProps);\n          break;\n\n        default:\n          IconNode = /*#__PURE__*/(0, _react.cloneElement)(_this.iconMap.order, animateProps);\n      }\n\n      return IconNode;\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"audioListsPlay\", function (playId) {\n      var ignore = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n      var state = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : _this.state;\n      var currentPlayId = state.playId,\n          playing = state.playing,\n          audioLists = state.audioLists,\n          loading = state.loading,\n          canPlay = state.canPlay;\n\n      if (Array.isArray(audioLists) && audioLists.length === 0) {\n        // eslint-disable-next-line no-console\n        return console.warn('Warning: Your playlist has no songs. and cannot play !');\n      }\n\n      if (loading && playId === currentPlayId) {\n        return;\n      }\n\n      var playIndex = audioLists.findIndex(function (audio) {\n        return audio.id === playId;\n      });\n\n      var _ref2 = audioLists[playIndex] || {},\n          name = _ref2.name,\n          cover = _ref2.cover,\n          musicSrc = _ref2.musicSrc,\n          singer = _ref2.singer,\n          _ref2$lyric = _ref2.lyric,\n          lyric = _ref2$lyric === void 0 ? '' : _ref2$lyric;\n\n      var loadAudio = function loadAudio(originMusicSrc) {\n        _this.setState({\n          name: name,\n          cover: cover,\n          musicSrc: originMusicSrc,\n          singer: singer,\n          playId: playId,\n          lyric: lyric,\n          currentTime: 0,\n          playing: false,\n          loading: true,\n          canPlay: false,\n          loadedProgress: 0,\n          playIndex: playIndex,\n          isAutoPlayWhenUserClicked: true\n        }, function () {\n          _this.lyric && _this.lyric.stop();\n\n          _this.audio.load();\n\n          _this.updateMediaSessionMetadata();\n\n          setTimeout(function () {\n            _this.initLyricParser();\n          }, 0);\n        });\n      }; // 如果点击当前项 就暂停 或者播放\n\n\n      if (playId === currentPlayId && !ignore) {\n        _this.setState({\n          playing: !playing\n        });\n\n        if (!playing) {\n          if (canPlay) {\n            _this.play();\n\n            return;\n          }\n\n          return loadAudio(musicSrc);\n        }\n\n        return _this.audio.pause();\n      }\n\n      _this.props.onAudioPlayTrackChange && _this.props.onAudioPlayTrackChange(playId, audioLists, _this.getBaseAudioInfo());\n      _this.props.onPlayIndexChange && _this.props.onPlayIndexChange(playIndex);\n\n      switch (_typeof(musicSrc)) {\n        case 'function':\n          musicSrc().then(loadAudio, _this.onAudioError);\n          break;\n\n        default:\n          loadAudio(musicSrc);\n      }\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"resetAudioStatus\", function () {\n      _this.audio.pause();\n\n      _this.lyric && _this.lyric.stop();\n\n      _this.initPlayInfo([]);\n\n      _this.resetAudioPlayStatus();\n\n      _this.resetAudioPlayId();\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"resetAudioPlayId\", function () {\n      _this.setState({\n        playId: _this.initPlayId\n      });\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"clearAudioLists\", function () {\n      _this.props.onAudioListsChange && _this.props.onAudioListsChange('', [], {});\n\n      _this.resetAudioStatus();\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"onDeleteAudioLists\", function (audioId) {\n      return function (e) {\n        e.stopPropagation(); // 如果不 传 id  删除全部\n\n        var _this$state3 = _this.state,\n            audioLists = _this$state3.audioLists,\n            playId = _this$state3.playId;\n\n        if (audioLists.length < 1) {\n          return;\n        }\n\n        _this.lyric && _this.lyric.stop();\n\n        if (!audioId) {\n          _this.clearAudioLists();\n\n          return;\n        }\n\n        var newAudioLists = _toConsumableArray(audioLists).filter(function (audio) {\n          return audio.id !== audioId;\n        }); // 触发删除动画,等动画结束 删除列表\n\n\n        _this.setState({\n          removeId: audioId\n        });\n\n        setTimeout(function () {\n          _this.setState({\n            audioLists: newAudioLists,\n            removeId: -1\n          }, function () {\n            if (!newAudioLists.length) {\n              return _this.resetAudioStatus();\n            } // 如果删除的是当前正在播放的 顺延下一首播放\n\n\n            if (audioId === playId) {\n              _this.handlePlay(_playMode2[\"default\"].orderLoop);\n            }\n          });\n        }, _animate.AUDIO_LIST_REMOVE_ANIMATE_TIME);\n        _this.props.onAudioListsChange && _this.props.onAudioListsChange(playId, newAudioLists, _this.getBaseAudioInfo());\n      };\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"openAudioListsPanel\", function () {\n      _this.setState(function (_ref3) {\n        var audioListsPanelVisible = _ref3.audioListsPanelVisible;\n        return {\n          initAnimate: true,\n          audioListsPanelVisible: !audioListsPanelVisible\n        };\n      });\n\n      _this.props.onAudioListsPanelChange && _this.props.onAudioListsPanelChange(!_this.state.audioListsPanelVisible);\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"closeAudioListsPanel\", function (e) {\n      e.stopPropagation();\n\n      _this._closeAudioListsPanel();\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"_closeAudioListsPanel\", function () {\n      var audioListsPanelVisible = _this.state.audioListsPanelVisible;\n\n      _this.setState({\n        audioListsPanelVisible: false\n      });\n\n      if (audioListsPanelVisible) {\n        _this.props.onAudioListsPanelChange && _this.props.onAudioListsPanelChange(false);\n      }\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"themeChange\", function (isLight) {\n      var theme = isLight ? _theme.THEME.LIGHT : _theme.THEME.DARK;\n\n      _this.setState({\n        theme: theme\n      });\n\n      _this.props.onThemeChange && _this.props.onThemeChange(theme);\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"onAudioDownload\", function () {\n      var musicSrc = _this.state.musicSrc;\n\n      if (_this.state.musicSrc) {\n        var customDownloader = _this.props.customDownloader;\n\n        var baseAudioInfo = _this.getBaseAudioInfo();\n\n        var onBeforeAudioDownload = _this.props.onBeforeAudioDownload(baseAudioInfo);\n\n        var transformedDownloadAudioInfo = {};\n\n        if (onBeforeAudioDownload && onBeforeAudioDownload.then) {\n          onBeforeAudioDownload.then(function (info) {\n            var src = info.src,\n                filename = info.filename,\n                mimeType = info.mimeType;\n            transformedDownloadAudioInfo = info;\n\n            if (customDownloader) {\n              customDownloader(info);\n            } else {\n              (0, _downloadjs[\"default\"])(src, filename, mimeType);\n            }\n          });\n        } else {\n          customDownloader ? customDownloader({\n            src: musicSrc\n          }) : (0, _downloadjs[\"default\"])(musicSrc);\n        }\n\n        _this.props.onAudioDownload && _this.props.onAudioDownload(baseAudioInfo, transformedDownloadAudioInfo);\n      }\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"onControllerDrag\", function (e, _ref4) {\n      var x = _ref4.x,\n          y = _ref4.y;\n      var _this$state4 = _this.state,\n          moveX = _this$state4.moveX,\n          moveY = _this$state4.moveY;\n      _this.isDrag = true; // mousedown will trigger drag event on android devices (react-draggable) :(\n\n      if (moveX === x && moveY === y) {\n        _this.isDrag = false;\n      }\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"onControllerDragStart\", function (e, _ref5) {\n      var x = _ref5.x,\n          y = _ref5.y;\n      _this.isDrag = false;\n\n      _this.setState({\n        moveX: x,\n        moveY: y\n      });\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"onControllerDragStop\", function (e, _ref6) {\n      var x = _ref6.x,\n          y = _ref6.y;\n\n      if (_this.props.showDestroy && _this.destroyBtn && _this.destroyBtn.current && _this.destroyBtn.current.contains(e.target)) {\n        _this.onDestroyPlayer();\n\n        return;\n      }\n\n      if (!_this.isDrag) {\n        if (_this.state.isNeedMobileHack) {\n          _this.loadAndPlayAudio();\n\n          _this.setState({\n            isNeedMobileHack: false\n          });\n        }\n\n        _this.onOpenPanel();\n      }\n\n      _this.setState({\n        moveX: x,\n        moveY: y\n      });\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"onResetVolume\", function () {\n      var currentAudioVolume = _this.state.currentAudioVolume;\n\n      _this.setAudioVolume(_this.getVolumeBarValue(currentAudioVolume || 0.1));\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"setAudioVolume\", function (volumeBarValue) {\n      _this.audio.volume = _this.getListeningVolume(volumeBarValue);\n\n      _this.setState({\n        currentAudioVolume: volumeBarValue,\n        soundValue: volumeBarValue\n      }); // Update fade-in interval to transition to new volume\n\n\n      if (_this.state.currentVolumeFade === _volumeFade.VOLUME_FADE.IN) {\n        _this.state.updateIntervalEndVolume && _this.state.updateIntervalEndVolume(volumeBarValue);\n      }\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"stopAll\", function (target) {\n      target.stopPropagation();\n      target.preventDefault();\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"getBoundingClientRect\", function (ele) {\n      var _ele$getBoundingClien = ele.getBoundingClientRect(),\n          left = _ele$getBoundingClien.left,\n          top = _ele$getBoundingClien.top;\n\n      return {\n        left: left,\n        top: top\n      };\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"getListeningVolume\", function (volumeBarValue) {\n      return Math.pow(volumeBarValue, 2);\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"getVolumeBarValue\", function (listeningVolume) {\n      return Math.sqrt(listeningVolume);\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"onAudioReload\", function () {\n      if (_this.props.audioLists.length) {\n        _this.handlePlay(_playMode2[\"default\"].singleLoop);\n\n        _this.props.onAudioReload && _this.props.onAudioReload(_this.getBaseAudioInfo());\n      }\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"onOpenPanel\", function () {\n      var _this$props = _this.props,\n          toggleMode = _this$props.toggleMode,\n          spaceBar = _this$props.spaceBar;\n\n      if (toggleMode) {\n        _this.setState({\n          toggle: true\n        });\n\n        _this.props.onModeChange && _this.props.onModeChange(_mode.MODE.FULL);\n\n        if (spaceBar && _this.player.current) {\n          _this.player.current.focus({\n            preventScroll: true\n          });\n        }\n      }\n\n      _this.onCoverClick(_mode.MODE.MINI);\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"onHidePanel\", function () {\n      _this.setState({\n        toggle: false,\n        audioListsPanelVisible: false\n      });\n\n      _this.props.onModeChange && _this.props.onModeChange(_mode.MODE.MINI);\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"onDestroyPlayer\", function () {\n      if (_this.props.onBeforeDestroy) {\n        var onBeforeDestroy = Promise.resolve(_this.props.onBeforeDestroy(_this.state.playId, _this.state.audioLists, _this.getBaseAudioInfo()));\n\n        if (onBeforeDestroy && onBeforeDestroy.then) {\n          onBeforeDestroy.then(function () {\n            _this._onDestroyPlayer();\n          }) // ignore unhandledrejection handler\n          [\"catch\"](function () {});\n        }\n\n        return;\n      }\n\n      _this._onDestroyPlayer();\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"_onDestroyPlayer\", function () {\n      _this.unInstallPlayer();\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"_onDestroyed\", function () {\n      _this.setState({\n        isPlayDestroyed: true\n      });\n\n      if (_this.props.onDestroyed) {\n        _this.props.onDestroyed(_this.state.playId, _this.state.audioLists, _this.getBaseAudioInfo());\n      }\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"getCurrentPlayIndex\", function () {\n      return _this.state.audioLists.findIndex(function (audio) {\n        return audio.id === _this.state.playId;\n      });\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"resetAudioPlayStatus\", function () {\n      return new Promise(function (res) {\n        _this.setState({\n          currentTime: 0,\n          loading: false,\n          playing: false,\n          canPlay: false,\n          lyric: '',\n          currentLyric: '',\n          loadedProgress: 0,\n          playIndex: _player.DEFAULT_PLAY_INDEX\n        }, res);\n      });\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"onTogglePlay\", function () {\n      _this.setState({\n        isAudioSeeking: false\n      });\n\n      if (_this.state.audioLists.length >= 1) {\n        var _ref7 = _this.props.volumeFade || {},\n            fadeIn = _ref7.fadeIn,\n            fadeOut = _ref7.fadeOut;\n\n        var _this$state5 = _this.state,\n            currentVolumeFade = _this$state5.currentVolumeFade,\n            currentVolumeFadeInterval = _this$state5.currentVolumeFadeInterval;\n        var isCurrentlyFading = currentVolumeFade === _volumeFade.VOLUME_FADE.IN || currentVolumeFade === _volumeFade.VOLUME_FADE.OUT;\n        /**\n         * Currently in middle of fading in/out, so need to cancel the current interval and do the opposite action.\n         * E.g. if currently fading out, then we need to cancel the fade-out and do a fade-in starting at current volume.\n         */\n\n        if (isCurrentlyFading) {\n          // Clear current fade-in/out\n          clearInterval(currentVolumeFadeInterval);\n\n          _this.setState({\n            currentVolumeFadeInterval: undefined,\n            updateIntervalEndVolume: undefined\n          });\n        } // Currently playing track or in the middle of fading in\n\n\n        if (!isCurrentlyFading && _this.state.playing || currentVolumeFade === _volumeFade.VOLUME_FADE.IN) {\n          _this.setState({\n            currentVolumeFade: _volumeFade.VOLUME_FADE.OUT\n          }); // Fade in from current volume to 0\n\n\n          var _adjustVolume = (0, _utils.adjustVolume)(_this.audio, _this.audio.volume, 0, {\n            duration: fadeOut\n          }, function () {\n            _this.audio.pause();\n\n            _this.setState({\n              currentVolumeFade: _volumeFade.VOLUME_FADE.NONE,\n              currentVolumeFadeInterval: undefined,\n              playing: false,\n              updateIntervalEndVolume: undefined\n            }); // Restore volume so slider does not reset to zero\n\n\n            _this.audio.volume = _this.getListeningVolume(_this.state.soundValue);\n          }),\n              fadeOutInterval = _adjustVolume.fadeInterval,\n              updateIntervalEndVolume = _adjustVolume.updateIntervalEndVolume;\n\n          _this.setState({\n            currentVolumeFadeInterval: fadeOutInterval,\n            updateIntervalEndVolume: updateIntervalEndVolume\n          });\n        } else {\n          _this.setState({\n            currentVolumeFade: _volumeFade.VOLUME_FADE.IN\n          }); // Start volume may not be 0 if interrupting a fade-out\n\n\n          var startVolume = isCurrentlyFading ? _this.audio.volume : 0;\n\n          var endVolume = _this.getListeningVolume(_this.state.soundValue);\n\n          var _adjustVolume2 = (0, _utils.adjustVolume)(_this.audio, startVolume, endVolume, {\n            duration: fadeIn\n          }, function () {\n            _this.setState({\n              currentVolumeFade: _volumeFade.VOLUME_FADE.NONE,\n              currentVolumeFadeInterval: undefined,\n              updateIntervalEndVolume: undefined\n            }); // It's possible that the volume level in the UI has changed since beginning of fade\n\n\n            _this.audio.volume = _this.getListeningVolume(_this.state.soundValue);\n          }),\n              fadeInInterval = _adjustVolume2.fadeInterval,\n              _updateIntervalEndVolume = _adjustVolume2.updateIntervalEndVolume;\n\n          _this.setState({\n            currentVolumeFadeInterval: fadeInInterval,\n            updateIntervalEndVolume: _updateIntervalEndVolume,\n            isAutoPlayWhenUserClicked: true\n          }, function () {\n            if (fadeInInterval) {\n              _this.audio.volume = startVolume;\n            }\n\n            _this.loadAndPlayAudio();\n          });\n        }\n      }\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"playAudio\", function () {\n      var isLoaded = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n      if (_this.isAudioCanPlay || isLoaded) {\n        if (isLoaded) {\n          _this.setAudioLoaded();\n        }\n\n        _this.loadAndPlayAudio(isLoaded);\n      }\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"setAudioLoaded\", function () {\n      _this.setState({\n        loading: false,\n        playing: false\n      });\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"onAudioPause\", function () {\n      _this.setState({\n        playing: false\n      });\n\n      _this.props.onAudioPause && _this.props.onAudioPause(_this.getBaseAudioInfo());\n\n      if (_this.state.lyric && _this.lyric) {\n        _this.lyric.togglePlay();\n      }\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"onAudioPlay\", function () {\n      // Audio currentTime changed will be trigger audio playing event\n      if (_this.state.isAudioSeeking) {\n        return;\n      }\n\n      _this.setState({\n        playing: true,\n        loading: false\n      });\n\n      _this.props.onAudioPlay && _this.props.onAudioPlay(_this.getBaseAudioInfo());\n\n      if (_this.state.lyric && _this.lyric) {\n        _this.lyric.togglePlay();\n      }\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"onSetAudioLoadedProgress\", function () {\n      var _this$audio = _this.audio,\n          timeRanges = _this$audio.buffered,\n          duration = _this$audio.duration;\n\n      if (timeRanges.length && timeRanges.end) {\n        var loadedProgress = timeRanges.end(timeRanges.length - 1) / duration * 100;\n\n        _this.setState({\n          loadedProgress: loadedProgress\n        });\n      }\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"loadAndPlayAudio\", function () {\n      var isLoaded = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n      var remember = _this.props.remember;\n      var _this$state6 = _this.state,\n          isInitRemember = _this$state6.isInitRemember,\n          musicSrc = _this$state6.musicSrc;\n      var _this$audio2 = _this.audio,\n          networkState = _this$audio2.networkState,\n          readyState = _this$audio2.readyState;\n\n      if (!musicSrc) {\n        return;\n      }\n\n      if (networkState === _audioState.AUDIO_NETWORK_STATE.NETWORK_NO_SOURCE || networkState === _audioState.AUDIO_NETWORK_STATE.NETWORK_EMPTY) {\n        return _this.onAudioError({\n          reason: \"\\n          [loadAndPlayAudio]: Failed to load because no supported source was found.\\n          current network status is \".concat(networkState, \".\\n        \")\n        });\n      }\n\n      _this.setState({\n        playing: false,\n        loading: true,\n        isAudioSeeking: false,\n        isResetCoverRotate: false\n      });\n\n      if (isLoaded || readyState >= _audioState.AUDIO_READY_STATE.HAVE_FUTURE_DATA) {\n        var _this$getLastPlayStat = _this.getLastPlayStatus(),\n            playing = _this$getLastPlayStat.playing;\n\n        var isLastPause = remember && !isInitRemember && !playing;\n        var canPlay = remember ? !isLastPause : _this.isAudioCanPlay;\n\n        _this.setState({\n          playing: canPlay,\n          loading: false\n        }, function () {\n          if (canPlay) {\n            _this.play();\n          }\n\n          _this.setState({\n            isInitAutoPlay: true,\n            isInitRemember: true,\n            isAutoPlayWhenUserClicked: false\n          });\n        });\n      } else {\n        _this.audio.load();\n      }\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"onAudioError\", function (error) {\n      var _this$state7 = _this.state,\n          playMode = _this$state7.playMode,\n          audioLists = _this$state7.audioLists,\n          playId = _this$state7.playId,\n          musicSrc = _this$state7.musicSrc;\n      var loadAudioErrorPlayNext = _this.props.loadAudioErrorPlayNext;\n      var isSingleLoop = playMode === _playMode2[\"default\"].singleLoop;\n      var currentPlayMode = isSingleLoop ? _playMode2[\"default\"].order : playMode;\n      _this.lyric && _this.lyric.stop(); // 如果删除歌曲或其他原因导致列表为空时\n      // 这时候会触发 https://developer.mozilla.org/en-US/docs/Web/API/MediaError\n\n      if (musicSrc) {\n        // 如果当前音乐加载出错 尝试播放下一首\n        if (loadAudioErrorPlayNext && audioLists.length) {\n          var isLastAudio = (playMode === _playMode2[\"default\"].order || playMode === _playMode2[\"default\"].orderLoop) && playId === audioLists[audioLists.length - 1].id;\n\n          if (!isLastAudio) {\n            _this.handlePlay(currentPlayMode, true);\n          }\n        }\n\n        _this.props.onAudioError && _this.props.onAudioError(_this.audio.error || error && error.reason || null, playId, audioLists, _this.getBaseAudioInfo());\n      }\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"handlePlay\", function (playMode) {\n      var isNext = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n      var _this$state8 = _this.state,\n          playId = _this$state8.playId,\n          audioLists = _this$state8.audioLists;\n      var audioListsLen = audioLists.length;\n\n      if (!audioListsLen) {\n        return;\n      }\n\n      var currentPlayIndex = _this.getCurrentPlayIndex();\n\n      switch (playMode) {\n        // 顺序播放\n        case _playMode2[\"default\"].order:\n          // 拖拽排序后 或者 正常播放 到最后一首歌 就暂停\n          if (currentPlayIndex === audioListsLen - 1) {\n            _this.audio.pause();\n\n            return;\n          }\n\n          _this.audioListsPlay(isNext ? audioLists[currentPlayIndex + 1].id : audioLists[currentPlayIndex - 1].id);\n\n          break;\n        // 列表循环\n\n        case _playMode2[\"default\"].orderLoop:\n          if (isNext) {\n            if (currentPlayIndex === audioListsLen - 1) {\n              return _this.audioListsPlay(audioLists[0].id);\n            }\n\n            _this.audioListsPlay(audioLists[currentPlayIndex + 1].id);\n          } else {\n            if (currentPlayIndex === 0) {\n              return _this.audioListsPlay(audioLists[audioListsLen - 1].id);\n            }\n\n            _this.audioListsPlay(audioLists[currentPlayIndex - 1].id);\n          }\n\n          break;\n        // 单曲循环\n\n        case _playMode2[\"default\"].singleLoop:\n          _this.audio.currentTime = 0;\n\n          _this.audioListsPlay(playId, true);\n\n          break;\n        // 随机播放\n\n        case _playMode2[\"default\"].shufflePlay:\n          {\n            var randomIndex = (0, _utils.createRandomNum)(0, audioListsLen - 1);\n\n            if (randomIndex === _this.getCurrentPlayIndex()) {\n              randomIndex = _this.getPlayIndex(randomIndex + 1);\n            }\n\n            var randomPlayId = (audioLists[randomIndex] || {}).id;\n\n            _this.audioListsPlay(randomPlayId, true);\n          }\n          break;\n\n        default:\n          break;\n      }\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"onAudioEnd\", function () {\n      _this.props.onAudioEnded && _this.props.onAudioEnded(_this.state.playId, _this.state.audioLists, _this.getBaseAudioInfo());\n\n      _this.handlePlay(_this.state.playMode);\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"audioPrevAndNextBasePlayHandle\", function () {\n      var isNext = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n      var playMode = _this.state.playMode;\n      var _playMode = '';\n\n      switch (playMode) {\n        case _playMode2[\"default\"].shufflePlay:\n          _playMode = playMode;\n          break;\n\n        default:\n          _playMode = _playMode2[\"default\"].orderLoop;\n          break;\n      }\n\n      _this.handlePlay(_playMode, isNext);\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"onPlayPrevAudio\", function () {\n      _this.audioPrevAndNextBasePlayHandle(false);\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"onPlayNextAudio\", function () {\n      _this.audioPrevAndNextBasePlayHandle(true);\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"audioTimeUpdate\", function () {\n      var currentTime = _this.audio.currentTime;\n\n      _this.setState({\n        currentTime: currentTime\n      });\n\n      if (_this.props.remember) {\n        _this.saveLastPlayStatus();\n      }\n\n      _this.props.onAudioProgress && _this.props.onAudioProgress(_this.getBaseAudioInfo());\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"onAudioSoundChange\", function (value) {\n      _this.setAudioVolume(value);\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"onAudioVolumeChange\", function () {\n      var volume = _this.audio.volume;\n      var _this$state9 = _this.state,\n          currentVolumeFade = _this$state9.currentVolumeFade,\n          currentAudioVolume = _this$state9.currentAudioVolume;\n\n      if (currentVolumeFade !== _volumeFade.VOLUME_FADE.NONE || currentAudioVolume === volume) {\n        return;\n      }\n\n      var volumeBarValue = _this.getVolumeBarValue(volume);\n\n      _this.setState({\n        soundValue: volumeBarValue\n      });\n\n      if (_this.props.onAudioVolumeChange) {\n        var formattedVolume = parseFloat(volume.toFixed(4));\n\n        _this.props.onAudioVolumeChange(formattedVolume);\n      }\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"onProgressChange\", function (currentTime) {\n      if (_this.audio) {\n        _this.audio.currentTime = currentTime;\n      }\n\n      _this.setState({\n        currentTime: currentTime,\n        isAudioSeeking: true\n      });\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"onAudioSeeked\", function (currentTime) {\n      _this.setState({\n        isAudioSeeking: true\n      });\n\n      if (!_this.state.audioLists.length) {\n        return;\n      }\n\n      _this.lyric && _this.lyric.seek(currentTime * 1000);\n\n      if (!_this.state.playing) {\n        _this.lyric && _this.lyric.stop();\n      }\n\n      if (_this.audio) {\n        _this.audio.currentTime = currentTime;\n      }\n\n      _this.props.onAudioSeeked && _this.props.onAudioSeeked(_this.getBaseAudioInfo());\n      setTimeout(function () {\n        _this.setState({\n          isAudioSeeking: false\n        });\n      }, 500);\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"onAudioMute\", function () {\n      _this.setState({\n        soundValue: 0,\n        currentAudioVolume: _this.audio.volume\n      }, function () {\n        _this.audio.volume = 0;\n      });\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"onAudioAbort\", function (e) {\n      var _this$state10 = _this.state,\n          audioLists = _this$state10.audioLists,\n          playId = _this$state10.playId;\n\n      var audioInfo = _this.getBaseAudioInfo();\n\n      var mergedAudioInfo = _objectSpread(_objectSpread({}, e), audioInfo);\n\n      _this.props.onAudioAbort && _this.props.onAudioAbort(playId, audioLists, mergedAudioInfo);\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"toggleMode\", function (mode) {\n      if (mode === _mode.MODE.FULL) {\n        _this.setState({\n          toggle: true\n        });\n      }\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"toggleTheme\", function (theme) {\n      _this.setState({\n        theme: theme\n      });\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"onAudioListsSortEnd\", function (_ref8) {\n      var oldIndex = _ref8.oldIndex,\n          newIndex = _ref8.newIndex;\n\n      if (oldIndex === newIndex) {\n        return;\n      }\n\n      var _this$state11 = _this.state,\n          playId = _this$state11.playId,\n          audioLists = _this$state11.audioLists;\n\n      var _audioLists = _toConsumableArray(audioLists);\n\n      var item = _audioLists.splice(oldIndex, 1)[0];\n\n      _audioLists.splice(newIndex, 0, item); // 如果拖动正在播放的歌曲 播放Id 等于 拖动后的index\n\n\n      var _playId = oldIndex === playId ? newIndex : playId;\n\n      _this.setState({\n        audioLists: _audioLists,\n        playId: _playId\n      });\n\n      _this.props.onAudioListsSortEnd && _this.props.onAudioListsSortEnd(oldIndex, newIndex);\n      _this.props.onAudioListsChange && _this.props.onAudioListsChange(_playId, _audioLists, _this.getBaseAudioInfo()); // TODO: remove\n\n      if (_this.props.onAudioListsDragEnd) {\n        // eslint-disable-next-line no-console\n        console.warn('[Deprecated] onAudioListsDragEnd is deprecated. please use onAudioListsSortEnd(oldIndex, newIndex){}');\n\n        _this.props.onAudioListsDragEnd(oldIndex, newIndex);\n      }\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"saveLastPlayStatus\", function () {\n      var _this$state12 = _this.state,\n          currentTime = _this$state12.currentTime,\n          playId = _this$state12.playId,\n          theme = _this$state12.theme,\n          soundValue = _this$state12.soundValue,\n          playMode = _this$state12.playMode,\n          name = _this$state12.name,\n          cover = _this$state12.cover,\n          singer = _this$state12.singer,\n          musicSrc = _this$state12.musicSrc;\n      var lastPlayStatus = JSON.stringify({\n        currentTime: currentTime,\n        playId: playId,\n        theme: theme,\n        playMode: playMode,\n        soundValue: soundValue,\n        name: name,\n        cover: cover,\n        singer: singer,\n        musicSrc: musicSrc\n      });\n      localStorage.setItem('lastPlayStatus', lastPlayStatus);\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"getLastPlayStatus\", function () {\n      var _this$props2 = _this.props,\n          theme = _this$props2.theme,\n          defaultPlayMode = _this$props2.defaultPlayMode,\n          playMode = _this$props2.playMode,\n          defaultPlayIndex = _this$props2.defaultPlayIndex,\n          playIndex = _this$props2.playIndex;\n      var status = {\n        currentTime: 0,\n        playMode: playMode || defaultPlayMode || _playMode2[\"default\"].order,\n        name: '',\n        cover: '',\n        singer: '',\n        musicSrc: '',\n        lyric: '',\n        playId: _this.getDefaultPlayId(),\n        theme: theme,\n        playing: true,\n        playIndex: playIndex || defaultPlayIndex || 0\n      };\n\n      try {\n        return JSON.parse(localStorage.getItem('lastPlayStatus')) || status;\n      } catch (error) {\n        return status;\n      }\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"checkCurrentPlayingAudioIsInUpdatedAudioLists\", function () {\n      var nextProps = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _this.props;\n      var _this$state13 = _this.state,\n          playId = _this$state13.playId,\n          musicSrc = _this$state13.musicSrc;\n\n      if (!nextProps.quietUpdate || !Array.isArray(nextProps.audioLists)) {\n        return false;\n      }\n\n      return playId && nextProps.audioLists.some(function (newAudioInfo) {\n        return newAudioInfo.id === playId || newAudioInfo.musicSrc === musicSrc;\n      });\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"play\", function () {\n      // https://developers.google.com/web/updates/2017/06/play-request-was-interrupted\n      var playPromise = _this.audio.play();\n\n      if (playPromise && playPromise.then) {\n        playPromise.then(function () {\n          _this.setState({\n            loading: false,\n            playing: true\n          });\n        })[\"catch\"](function () {\n          _this.setState({\n            loading: false,\n            playing: false\n          });\n        });\n      }\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"mockAutoPlayForMobile\", function () {\n      if (_this.props.autoPlay && !_this.state.playing) {\n        _this.audio.load();\n\n        _this.play();\n      }\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"bindMobileAutoPlayEvents\", function () {\n      document.addEventListener('touchstart', function () {\n        _this.mockAutoPlayForMobile();\n      }, {\n        once: true\n      }); // 监听微信准备就绪事件\n\n      document.addEventListener('WeixinJSBridgeReady', function () {\n        _this.mockAutoPlayForMobile();\n      });\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"bindSafariAutoPlayEvents\", function () {\n      document.addEventListener('click', function () {\n        _this.mockAutoPlayForMobile();\n      }, {\n        once: true\n      });\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"unBindEvents\", function () {\n      var _this2;\n\n      (_this2 = _this).bindEvents.apply(_this2, arguments);\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"bindEvents\", function () {\n      var target = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _this.audio;\n      var eventsNames = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n        waiting: _this.loadAndPlayAudio,\n        canplay: _this.onAudioCanPlay,\n        error: _this.onAudioError,\n        ended: _this.onAudioEnd,\n        pause: _this.onAudioPause,\n        play: _this.onAudioPlay,\n        timeupdate: _this.audioTimeUpdate,\n        volumechange: _this.onAudioVolumeChange,\n        abort: _this.onAudioAbort,\n        progress: _this.onSetAudioLoadedProgress\n      };\n      var bind = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n      var once = _this.props.once;\n\n      for (var name in eventsNames) {\n        var _events = eventsNames[name];\n\n        if (target) {\n          bind ? target.addEventListener(name, _events, {\n            once: !!(once && name === 'play')\n          }) : target.removeEventListener(name, _events);\n        }\n      }\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"getPlayId\", function () {\n      var audioLists = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _this.state.audioLists;\n\n      var playIndex = _this.getPlayIndex(undefined, audioLists);\n\n      var playId = _this.state.playId || audioLists[playIndex] && audioLists[playIndex].id;\n      return playId;\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"_getPlayInfo\", function () {\n      var audioLists = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n\n      var playId = _this.getPlayId(audioLists);\n\n      var _ref9 = audioLists.find(function (_ref10) {\n        var id = _ref10.id;\n        return id === playId;\n      }) || {},\n          _ref9$name = _ref9.name,\n          name = _ref9$name === void 0 ? '' : _ref9$name,\n          _ref9$cover = _ref9.cover,\n          cover = _ref9$cover === void 0 ? '' : _ref9$cover,\n          _ref9$singer = _ref9.singer,\n          singer = _ref9$singer === void 0 ? '' : _ref9$singer,\n          _ref9$musicSrc = _ref9.musicSrc,\n          musicSrc = _ref9$musicSrc === void 0 ? '' : _ref9$musicSrc,\n          _ref9$lyric = _ref9.lyric,\n          lyric = _ref9$lyric === void 0 ? '' : _ref9$lyric;\n\n      return {\n        name: name,\n        cover: cover,\n        singer: singer,\n        musicSrc: musicSrc,\n        lyric: lyric,\n        audioLists: audioLists,\n        playId: playId\n      };\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"getPlayInfo\", function () {\n      var audioLists = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n      var newAudioLists = audioLists.filter(function (audio) {\n        return !audio.id;\n      });\n      var lastAudioLists = audioLists.filter(function (audio) {\n        return audio.id;\n      });\n      var mergedAudioLists = [].concat(_toConsumableArray(lastAudioLists), _toConsumableArray(newAudioLists.map(function (info) {\n        return _objectSpread(_objectSpread({}, info), {}, {\n          id: (0, _utils.uuId)()\n        });\n      })));\n      return _this._getPlayInfo(mergedAudioLists);\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"getPlayInfoOfNewList\", function (nextProps) {\n      var _nextProps$audioLists = nextProps.audioLists,\n          audioLists = _nextProps$audioLists === void 0 ? [] : _nextProps$audioLists;\n\n      var _audioLists = audioLists.map(function (info) {\n        var prevAudioBeforeUpdate = nextProps.quietUpdate && _this.state.audioLists.find(function (_ref11) {\n          var musicSrc = _ref11.musicSrc;\n          return musicSrc === info.musicSrc;\n        }) || {};\n        return _objectSpread(_objectSpread({}, info), {}, {\n          id: prevAudioBeforeUpdate.id || (0, _utils.uuId)()\n        });\n      });\n\n      return _this._getPlayInfo(_audioLists);\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"initPlayInfo\", function (audioLists, cb) {\n      var info = _this.getPlayInfo(audioLists);\n\n      switch (_typeof(info.musicSrc)) {\n        case 'function':\n          info.musicSrc().then(function (originMusicSrc) {\n            _this.setState(_objectSpread(_objectSpread({}, info), {}, {\n              musicSrc: originMusicSrc\n            }), cb);\n          }, _this.onAudioError);\n          break;\n\n        default:\n          _this.setState(info, cb);\n\n      }\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"addMatchMediaListener\", function (query, handler) {\n      var media = window.matchMedia(query);\n      handler(media);\n\n      if ('addEventListener' in media) {\n        media.addEventListener('change', handler);\n      } else {\n        media.addListener(handler);\n      }\n\n      return media;\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"removeMatchMediaListener\", function (media, handler) {\n      if (media) {\n        if ('removeEventListener' in media) {\n          media.removeEventListener('change', handler);\n        } else {\n          media.removeListener && media.removeListener(handler);\n        }\n      }\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"addMobileListener\", function () {\n      _this.mobileMedia = _this.addMatchMediaListener(_this.props.mobileMediaQuery, _this.mobileMediaHandler);\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"removeMobileListener\", function () {\n      _this.removeMatchMediaListener(_this.mobileMedia, _this.mobileMediaHandler);\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"addSystemThemeListener\", function () {\n      _this.systemThemeMedia = _this.addMatchMediaListener(_mediaQuery.MEDIA_QUERY.DARK_THEME, _this.systemThemeMediaHandler);\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"removeSystemThemeListener\", function () {\n      _this.removeMatchMediaListener(_this.systemThemeMedia, _this.systemThemeMediaHandler);\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"mobileMediaHandler\", function (_ref12) {\n      var matches = _ref12.matches;\n\n      _this.setState({\n        isMobile: !!matches\n      });\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"systemThemeMediaHandler\", function (_ref13) {\n      var matches = _ref13.matches;\n\n      if (_this.props.theme === _theme.THEME.AUTO) {\n        var theme = matches ? _theme.THEME.DARK : _theme.THEME.LIGHT;\n\n        _this.updateTheme(theme);\n      }\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"setDefaultAudioVolume\", function () {\n      var _this$props3 = _this.props,\n          defaultVolume = _this$props3.defaultVolume,\n          remember = _this$props3.remember; // 音量 [0-1]\n\n      _this.defaultVolume = Math.max(0, Math.min(defaultVolume, 1));\n\n      var _this$getLastPlayStat2 = _this.getLastPlayStatus(),\n          _this$getLastPlayStat3 = _this$getLastPlayStat2.soundValue,\n          soundValue = _this$getLastPlayStat3 === void 0 ? _this.defaultVolume : _this$getLastPlayStat3;\n\n      _this.setAudioVolume(remember ? soundValue : _this.defaultVolume);\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"getDefaultPlayId\", function () {\n      var audioLists = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _this.props.audioLists;\n\n      var playIndex = _this.getPlayIndex();\n\n      return audioLists[playIndex] && audioLists[playIndex].id;\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"initLyricParser\", function () {\n      _this.lyric = new _lyric[\"default\"](_this.state.lyric, _this.onLyricChange);\n\n      _this.setState({\n        currentLyric: _this.lyric.lines[0] && _this.lyric.lines[0].text\n      });\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"onLyricChange\", function (_ref14) {\n      var lineNum = _ref14.lineNum,\n          txt = _ref14.txt;\n\n      _this.setState({\n        currentLyric: txt\n      });\n\n      _this.props.onAudioLyricChange && _this.props.onAudioLyricChange(lineNum, txt);\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"updateTheme\", function (theme) {\n      if (theme && theme !== _this.props.theme && Object.values(_theme.THEME).includes(theme)) {\n        _this.setState({\n          theme: theme\n        });\n      }\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"updateMode\", function (mode) {\n      if (mode && mode !== _this.props.mode && Object.values(_mode.MODE).includes(mode)) {\n        _this.setState({\n          toggle: mode === _mode.MODE.FULL\n        });\n\n        if (mode === _mode.MODE.MINI) {\n          _this._closeAudioListsPanel();\n        }\n      }\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"updatePlayMode\", function (playMode) {\n      if (!Object.values(_playMode2[\"default\"]).includes(playMode)) {\n        return;\n      }\n\n      if (playMode !== _this.props.playMode) {\n        _this.setState({\n          playMode: playMode\n        });\n      }\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"updateAudioLists\", function (audioLists) {\n      var newAudioLists = [].concat(_toConsumableArray(_this.state.audioLists), _toConsumableArray(audioLists.filter(function (audio) {\n        return _this.state.audioLists.findIndex(function (v) {\n          return v.musicSrc === audio.musicSrc;\n        }) === -1;\n      })));\n\n      _this.initPlayInfo(newAudioLists);\n\n      _this.bindEvents(_this.audio);\n\n      _this.props.onAudioListsChange && _this.props.onAudioListsChange(_this.state.playId, audioLists, _this.getBaseAudioInfo());\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"loadNewAudioLists\", function (nextProps) {\n      var audioLists = nextProps.audioLists,\n          remember = nextProps.remember,\n          playMode = nextProps.playMode,\n          theme = nextProps.theme,\n          autoPlayInitLoadPlayList = nextProps.autoPlayInitLoadPlayList,\n          playIndex = nextProps.playIndex;\n\n      if (!Array.isArray(audioLists) || !audioLists.length) {\n        return;\n      }\n\n      var info = _this.getPlayInfoOfNewList(nextProps);\n\n      var lastPlayStatus = remember ? _this.getLastPlayStatus() : {\n        playMode: playMode || _playMode2[\"default\"].order,\n        playIndex: playIndex || _player.DEFAULT_PLAY_INDEX\n      };\n\n      if (theme !== _theme.THEME.AUTO) {\n        lastPlayStatus.theme = theme;\n      }\n\n      var audioInfo = _objectSpread(_objectSpread(_objectSpread({}, info), lastPlayStatus), {}, {\n        isInitAutoPlay: autoPlayInitLoadPlayList,\n        playing: _this.isAudioCanPlay\n      });\n\n      if (_this.checkCurrentPlayingAudioIsInUpdatedAudioLists(nextProps)) {\n        _this.setState({\n          audioLists: info.audioLists\n        });\n\n        return;\n      }\n\n      switch (_typeof(info.musicSrc)) {\n        case 'function':\n          info.musicSrc().then(function (musicSrc) {\n            _this.setState(_objectSpread(_objectSpread({}, audioInfo), {}, {\n              musicSrc: musicSrc\n            }));\n          }, _this.onAudioError);\n          break;\n\n        default:\n          _this.setState(audioInfo);\n\n      }\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"resetPlayId\", function () {\n      return new Promise(function (res) {\n        _this.setState({\n          playId: _this.initPlayId\n        }, res);\n      });\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"changeAudioLists\", function (nextProps) {\n      if (!_this.checkCurrentPlayingAudioIsInUpdatedAudioLists(nextProps)) {\n        _this.resetAudioStatus();\n      }\n\n      _this.resetPlayId().then(function () {\n        _this.loadNewAudioLists(nextProps);\n\n        _this.props.onAudioListsChange && _this.props.onAudioListsChange(_this.state.playId, nextProps.audioLists, _this.getBaseAudioInfo());\n      });\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"updatePlayIndex\", function (playIndex) {\n      var currentPlayIndex = _this.getCurrentPlayIndex();\n\n      if (playIndex !== undefined && currentPlayIndex !== playIndex) {\n        _this.resetAudioPlayStatus().then(function () {\n          var currentPlayAudio = _this.state.audioLists[_this.getPlayIndex(playIndex)];\n\n          if (currentPlayAudio && currentPlayAudio.id) {\n            _this.audioListsPlay(currentPlayAudio.id, true);\n          }\n        });\n      }\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"playByIndex\", function (index) {\n      _this.updatePlayIndex(index);\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"appendAudio\", function (fromIndex) {\n      var audioLists = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n\n      if (!fromIndex && fromIndex !== 0) {\n        // eslint-disable-next-line no-console\n        console.error('Warning! function appendAudio(){} must have formIndex!');\n        return;\n      }\n\n      var newAudioLists = _toConsumableArray(_this.state.audioLists);\n\n      var addedAudioLists = audioLists.map(function (audioInfo) {\n        return _objectSpread({\n          id: (0, _utils.uuId)()\n        }, audioInfo);\n      });\n      newAudioLists.splice.apply(newAudioLists, [fromIndex, 0].concat(_toConsumableArray(addedAudioLists)));\n\n      _this.changeAudioLists(_objectSpread(_objectSpread({}, _this.props), {}, {\n        audioLists: newAudioLists\n      }));\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"getEnhanceAudio\", function () {\n      var _assertThisInitialize = _assertThisInitialized(_this),\n          audio = _assertThisInitialize.audio;\n\n      [{\n        name: 'destroy',\n        value: _this.onDestroyPlayer\n      }, {\n        name: 'updatePlayIndex',\n        value: _this.updatePlayIndex\n      }, {\n        name: 'playByIndex',\n        value: _this.playByIndex\n      }, {\n        name: 'playNext',\n        value: _this.onPlayNextAudio\n      }, {\n        name: 'playPrev',\n        value: _this.onPlayPrevAudio\n      }, {\n        name: 'togglePlay',\n        value: _this.onTogglePlay\n      }, {\n        name: 'clear',\n        value: _this.clearAudioLists\n      }, {\n        name: 'appendAudio',\n        value: _this.appendAudio\n      }, {\n        name: 'sortable',\n        value: _this.sortable\n      }].forEach(function (_ref15) {\n        var name = _ref15.name,\n            value = _ref15.value;\n        Object.defineProperty(audio, name, {\n          value: value,\n          writable: false\n        });\n      });\n      return audio;\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"onGetAudioInstance\", function () {\n      if (_this.props.getAudioInstance) {\n        _this.props.getAudioInstance(_this.getEnhanceAudio());\n      }\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"updateMediaSessionMetadata\", function () {\n      if ('mediaSession' in navigator && _this.props.showMediaSession) {\n        var _this$state14 = _this.state,\n            name = _this$state14.name,\n            cover = _this$state14.cover,\n            singer = _this$state14.singer;\n        var mediaMetaDataConfig = {\n          title: name,\n          artist: singer,\n          album: name\n        };\n\n        if (cover) {\n          mediaMetaDataConfig.artwork = ['96x96', '128x128', '192x192', '256x256', '384x384', '512x512'].map(function (size) {\n            return {\n              src: cover,\n              sizes: size,\n              type: 'image/png'\n            };\n          });\n        }\n\n        navigator.mediaSession.metadata = new MediaMetadata(mediaMetaDataConfig);\n\n        _this.updateMediaSessionPositionState();\n      }\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"updateMediaSessionPositionState\", function () {\n      if ('setPositionState' in navigator.mediaSession) {\n        try {\n          var _assertThisInitialize2 = _assertThisInitialized(_this),\n              audio = _assertThisInitialize2.audio;\n\n          navigator.mediaSession.setPositionState({\n            duration: _this.audioDuration,\n            playbackRate: audio.playbackRate || 1,\n            position: audio.currentTime || 0\n          });\n        } catch (error) {\n          // eslint-disable-next-line no-console\n          console.error('Update media session position state failed: ', error);\n        }\n      }\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"onAddMediaSession\", function () {\n      if ('mediaSession' in navigator && _this.props.showMediaSession) {\n        var defaultSkipTime = 10;\n        navigator.mediaSession.setActionHandler('play', _this.onTogglePlay);\n        navigator.mediaSession.setActionHandler('pause', _this.onTogglePlay);\n        navigator.mediaSession.setActionHandler('seekbackward', function (details) {\n          var skipTime = details.seekOffset || defaultSkipTime;\n          _this.audio.currentTime = Math.max(_this.audio.currentTime - skipTime, 0);\n          _this.props.onAudioSeeked && _this.props.onAudioSeeked(_this.getBaseAudioInfo());\n        });\n        navigator.mediaSession.setActionHandler('seekforward', function (details) {\n          var skipTime = details.seekOffset || defaultSkipTime;\n          _this.audio.currentTime = Math.min(_this.audio.currentTime + skipTime, _this.audioDuration);\n          _this.props.onAudioSeeked && _this.props.onAudioSeeked(_this.getBaseAudioInfo());\n        });\n        navigator.mediaSession.setActionHandler('previoustrack', _this.onPlayPrevAudio);\n        navigator.mediaSession.setActionHandler('nexttrack', _this.onPlayNextAudio);\n        setTimeout(function () {\n          _this.updateMediaSessionMetadata();\n        }, 0);\n\n        try {\n          navigator.mediaSession.setActionHandler('seekto', function (event) {\n            if (event.fastSeek && 'fastSeek' in _this.audio) {\n              _this.audio.fastSeek(event.seekTime);\n\n              return;\n            }\n\n            _this.audio.currentTime = event.seekTime;\n\n            _this.updateMediaSessionPositionState();\n          });\n        } catch (error) {\n          // eslint-disable-next-line no-console\n          console.warn('Warning! The \"seekto\" media session action is not supported.');\n        }\n      }\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"bindUnhandledRejection\", function () {\n      window.addEventListener('unhandledrejection', _this.onAudioError);\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"unBindUnhandledRejection\", function () {\n      window.removeEventListener('unhandledrejection', _this.onAudioError);\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"bindKeyDownEvents\", function () {\n      if (_this.props.spaceBar && _this.player.current) {\n        _this.player.current.addEventListener('keydown', _this.onKeyDown, false);\n\n        _this.player.current.focus({\n          preventScroll: true\n        });\n      }\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"unBindKeyDownEvents\", function () {\n      if (_this.player.current) {\n        _this.player.current.removeEventListener('keydown', _this.onKeyDown, false);\n      }\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"onKeyDown\", function (e) {\n      var spaceBar = _this.props.spaceBar;\n\n      if (spaceBar && e.keyCode === _keycode.SPACE_BAR_KEYCODE) {\n        _this.onTogglePlay();\n\n        e.preventDefault();\n      }\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"initPlayer\", function () {\n      var audioLists = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _this.props.audioLists;\n      var isBindKeyDownEvents = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n\n      if (!Array.isArray(audioLists) || !audioLists.length) {\n        return;\n      }\n\n      _this.setDefaultAudioVolume();\n\n      _this.bindUnhandledRejection();\n\n      _this.bindEvents(_this.audio);\n\n      _this.initLyricParser();\n\n      _this.onAddMediaSession();\n\n      if (IS_MOBILE) {\n        _this.bindMobileAutoPlayEvents();\n      } else {\n        if (isBindKeyDownEvents) {\n          _this.bindKeyDownEvents();\n        }\n\n        if ((0, _utils.isSafari)()) {\n          _this.bindSafariAutoPlayEvents();\n        }\n      }\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"removeLyric\", function () {\n      if (_this.lyric) {\n        _this.lyric.stop();\n\n        _this.lyric = undefined;\n      }\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"unInstallPlayer\", function () {\n      _this.unBindEvents(_this.audio, undefined, false);\n\n      _this.unBindUnhandledRejection();\n\n      _this.unBindKeyDownEvents();\n\n      _this.removeMobileListener();\n\n      _this.removeLyric();\n\n      _this._onDestroyed();\n\n      _this.sortable && _this.sortable.destroy();\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"onAudioCanPlay\", function () {\n      if (_this.state.isAudioSeeking) {\n        return;\n      }\n\n      _this.setState({\n        canPlay: true\n      }, function () {\n        _this.playAudio(true);\n      });\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"initSortableAudioLists\", function () {\n      var _this$props4 = _this.props,\n          audioLists = _this$props4.audioLists,\n          sortableOptions = _this$props4.sortableOptions;\n\n      var selector = _sortable[\"default\"].selector,\n          defaultOptions = _objectWithoutProperties(_sortable[\"default\"], [\"selector\"]);\n\n      var container = document.querySelector(\".\".concat(selector));\n\n      if (Array.isArray(audioLists) && !audioLists.length || !container) {\n        return;\n      }\n\n      if (_this.sortable) {\n        _this.sortable.destroy();\n      }\n\n      _this.sortable = new _sortablejs[\"default\"](container, _objectSpread(_objectSpread({\n        onEnd: _this.onAudioListsSortEnd\n      }, defaultOptions), sortableOptions));\n    });\n\n    _this.audio = null;\n    _this.targetId = 'music-player-controller';\n    _this._PLAY_MODE_ = Object.values(_playMode2[\"default\"]);\n    _this._PLAY_MODE_LENGTH_ = _this._PLAY_MODE_.length;\n    _this.player = /*#__PURE__*/(0, _react.createRef)();\n    _this.destroyBtn = /*#__PURE__*/(0, _react.createRef)();\n    window.reactmusicplayer = _assertThisInitialized(_this);\n    return _this;\n  }\n\n  _createClass(ReactJkMusicPlayer, [{\n    key: \"locale\",\n    get: // 初始播放id\n    function get() {\n      var locale = this.props.locale;\n\n      if (typeof locale === 'string') {\n        return _locale2[\"default\"][this.props.locale];\n      }\n\n      return locale ? _objectSpread(_objectSpread({}, _locale2[\"default\"][_locale[\"default\"].en_US]), locale) : {};\n    }\n  }, {\n    key: \"audioDuration\",\n    get: function get() {\n      var _this$state15 = this.state,\n          audioLists = _this$state15.audioLists,\n          playId = _this$state15.playId;\n\n      if (!audioLists.length || !this.audio) {\n        return 0;\n      }\n\n      var _ref16 = audioLists.find(function (audio) {\n        return audio.id === playId;\n      }) || {},\n          duration = _ref16.duration;\n\n      return Math.max(Number(duration) || this.audio.duration || 0, 0);\n    }\n  }, {\n    key: \"isAudioCanPlay\",\n    get: function get() {\n      var autoPlay = this.props.autoPlay;\n      var _this$state16 = this.state,\n          isInitAutoPlay = _this$state16.isInitAutoPlay,\n          isAutoPlayWhenUserClicked = _this$state16.isAutoPlayWhenUserClicked,\n          canPlay = _this$state16.canPlay;\n      return canPlay && (isInitAutoPlay || autoPlay || isAutoPlayWhenUserClicked);\n    }\n  }, {\n    key: \"iconMap\",\n    get: function get() {\n      var _this3 = this;\n\n      var Spin = function Spin() {\n        return /*#__PURE__*/_react[\"default\"].createElement(\"span\", {\n          className: \"loading group\"\n        }, _this3.props.icon.loading);\n      };\n\n      return _objectSpread(_objectSpread(_objectSpread({}, DEFAULT_ICON), this.props.icon), {}, {\n        loading: /*#__PURE__*/_react[\"default\"].createElement(Spin, null)\n      });\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      var _this4 = this;\n\n      var _this$props5 = this.props,\n          className = _this$props5.className,\n          drag = _this$props5.drag,\n          style = _this$props5.style,\n          showDownload = _this$props5.showDownload,\n          showPlay = _this$props5.showPlay,\n          showReload = _this$props5.showReload,\n          showPlayMode = _this$props5.showPlayMode,\n          showThemeSwitch = _this$props5.showThemeSwitch,\n          toggleMode = _this$props5.toggleMode,\n          showMiniModeCover = _this$props5.showMiniModeCover,\n          extendsContent = _this$props5.extendsContent,\n          defaultPlayMode = _this$props5.defaultPlayMode,\n          seeked = _this$props5.seeked,\n          showProgressLoadBar = _this$props5.showProgressLoadBar,\n          bounds = _this$props5.bounds,\n          defaultPosition = _this$props5.defaultPosition,\n          showMiniProcessBar = _this$props5.showMiniProcessBar,\n          preload = _this$props5.preload,\n          glassBg = _this$props5.glassBg,\n          remove = _this$props5.remove,\n          lyricClassName = _this$props5.lyricClassName,\n          showLyric = _this$props5.showLyric,\n          getContainer = _this$props5.getContainer,\n          autoHiddenCover = _this$props5.autoHiddenCover,\n          showDestroy = _this$props5.showDestroy,\n          responsive = _this$props5.responsive,\n          audioTitleExtra = _this$props5.audioTitleExtra;\n      var locale = this.locale;\n      var _this$state17 = this.state,\n          toggle = _this$state17.toggle,\n          playing = _this$state17.playing,\n          currentTime = _this$state17.currentTime,\n          soundValue = _this$state17.soundValue,\n          moveX = _this$state17.moveX,\n          moveY = _this$state17.moveY,\n          loading = _this$state17.loading,\n          audioListsPanelVisible = _this$state17.audioListsPanelVisible,\n          theme = _this$state17.theme,\n          name = _this$state17.name,\n          cover = _this$state17.cover,\n          singer = _this$state17.singer,\n          musicSrc = _this$state17.musicSrc,\n          playId = _this$state17.playId,\n          isMobile = _this$state17.isMobile,\n          playMode = _this$state17.playMode,\n          playModeTipVisible = _this$state17.playModeTipVisible,\n          playModelNameVisible = _this$state17.playModelNameVisible,\n          initAnimate = _this$state17.initAnimate,\n          loadedProgress = _this$state17.loadedProgress,\n          audioLists = _this$state17.audioLists,\n          removeId = _this$state17.removeId,\n          currentLyric = _this$state17.currentLyric,\n          audioLyricVisible = _this$state17.audioLyricVisible,\n          isPlayDestroyed = _this$state17.isPlayDestroyed,\n          isResetCoverRotate = _this$state17.isResetCoverRotate;\n      var preloadState = preload === false || preload === 'none' ? {} : preload === true ? {\n        preload: 'auto'\n      } : {\n        preload: preload\n      };\n      var panelToggleAnimate = initAnimate ? {\n        show: audioListsPanelVisible,\n        hide: !audioListsPanelVisible\n      } : {\n        show: audioListsPanelVisible\n      };\n      var currentPlayMode = _playMode2[\"default\"][playMode || defaultPlayMode] || _playMode2[\"default\"].order;\n      var currentPlayModeName = locale.playModeText[currentPlayMode];\n      var miniModeCoverConfig = showMiniModeCover && !autoHiddenCover || autoHiddenCover && cover ? {\n        style: {\n          backgroundImage: \"url(\".concat(cover, \")\")\n        }\n      } : {};\n      var formattedCurrentTime = (0, _utils.formatTime)(currentTime);\n      var formattedAudioDuration = (0, _utils.formatTime)(this.audioDuration);\n      var progressHandler = seeked ? {\n        onChange: this.onProgressChange,\n        onAfterChange: this.onAudioSeeked\n      } : {};\n\n      var ProgressBar = /*#__PURE__*/_react[\"default\"].createElement(_react[\"default\"].Fragment, null, showProgressLoadBar && /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n        className: \"progress-load-bar\",\n        style: {\n          width: \"\".concat(Math.min(loadedProgress, 100), \"%\")\n        }\n      }), /*#__PURE__*/_react[\"default\"].createElement(_Slider[\"default\"], _extends({\n        max: Math.ceil(this.audioDuration),\n        defaultValue: 0,\n        value: Math.ceil(currentTime)\n      }, progressHandler, _slider.PROGRESS_BAR_SLIDER_OPTIONS)));\n\n      var DownloadComponent = showDownload && /*#__PURE__*/_react[\"default\"].createElement(\"span\", {\n        className: \"group audio-download\",\n        onClick: this.onAudioDownload,\n        title: locale.downloadText\n      }, this.iconMap.download);\n\n      var ThemeSwitchComponent = showThemeSwitch && /*#__PURE__*/_react[\"default\"].createElement(\"span\", {\n        className: \"group theme-switch\"\n      }, /*#__PURE__*/_react[\"default\"].createElement(_rcSwitch[\"default\"], {\n        className: \"theme-switch-container\",\n        onChange: this.themeChange,\n        checkedChildren: locale.lightThemeText,\n        unCheckedChildren: locale.darkThemeText,\n        checked: theme === _theme.THEME.LIGHT,\n        title: locale.switchThemeText\n      }));\n\n      var ReloadComponent = showReload && /*#__PURE__*/_react[\"default\"].createElement(\"span\", {\n        className: \"group reload-btn\",\n        onClick: this.onAudioReload,\n        title: locale.reloadText\n      }, this.iconMap.reload);\n\n      var LyricComponent = showLyric && /*#__PURE__*/_react[\"default\"].createElement(\"span\", {\n        className: (0, _classnames[\"default\"])('group lyric-btn', {\n          'lyric-btn-active': audioLyricVisible\n        }),\n        onClick: this.toggleAudioLyric,\n        title: locale.toggleLyricText\n      }, this.iconMap.lyric);\n\n      var PlayModeComponent = showPlayMode && /*#__PURE__*/_react[\"default\"].createElement(\"span\", {\n        className: (0, _classnames[\"default\"])('group loop-btn'),\n        onClick: this.togglePlayMode,\n        title: locale.playModeText[currentPlayMode]\n      }, this.renderPlayModeIcon(currentPlayMode));\n\n      var miniProcessBarR = isMobile ? 30 : 40;\n\n      var DestroyComponent = showDestroy && /*#__PURE__*/_react[\"default\"].createElement(\"span\", {\n        title: locale.destroyText,\n        className: \"group destroy-btn\",\n        ref: this.destroyBtn,\n        onClick: !drag || toggle ? this.onDestroyPlayer : undefined\n      }, this.iconMap.destroy);\n\n      var AudioController = /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n        className: (0, _classnames[\"default\"])('react-jinke-music-player'),\n        style: defaultPosition,\n        tabIndex: \"-1\"\n      }, /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n        className: (0, _classnames[\"default\"])('music-player')\n      }, showMiniProcessBar && /*#__PURE__*/_react[\"default\"].createElement(_CircleProcessBar[\"default\"], {\n        progress: currentTime / this.audioDuration,\n        r: miniProcessBarR\n      }), /*#__PURE__*/_react[\"default\"].createElement(\"div\", _extends({\n        id: this.targetId,\n        className: (0, _classnames[\"default\"])('scale', 'music-player-controller', {\n          'music-player-playing': playing\n        })\n      }, miniModeCoverConfig, {\n        onClick: !drag ? this.onOpenPanel : undefined\n      }), loading ? this.iconMap.loading : /*#__PURE__*/_react[\"default\"].createElement(_react[\"default\"].Fragment, null, /*#__PURE__*/_react[\"default\"].createElement(\"span\", {\n        className: \"controller-title\"\n      }, locale.controllerTitle), /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n        className: \"music-player-controller-setting\"\n      }, toggle ? locale.closeText : locale.openText))), DestroyComponent));\n\n      var container = getContainer() || document.body;\n      var audioTitle = this.getAudioTitle();\n\n      if (isPlayDestroyed) {\n        return null;\n      }\n\n      var shouldShowPlayIcon = !playing || this.state.currentVolumeFade === _volumeFade.VOLUME_FADE.OUT;\n      return /*#__PURE__*/(0, _reactDom.createPortal)( /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n        className: (0, _classnames[\"default\"])('react-jinke-music-player-main', {\n          'light-theme': theme === _theme.THEME.LIGHT,\n          'dark-theme': theme === _theme.THEME.DARK\n        }, className),\n        style: style,\n        ref: this.player,\n        tabIndex: \"-1\"\n      }, toggle && isMobile && responsive && /*#__PURE__*/_react[\"default\"].createElement(_PlayerMobile[\"default\"], {\n        playing: playing,\n        loading: loading,\n        name: name,\n        singer: singer,\n        cover: cover,\n        themeSwitch: ThemeSwitchComponent,\n        duration: formattedAudioDuration,\n        currentTime: formattedCurrentTime,\n        progressBar: ProgressBar,\n        onPlay: this.onTogglePlay,\n        currentPlayModeName: currentPlayModeName,\n        playMode: PlayModeComponent,\n        audioNextPlay: this.onPlayNextAudio,\n        audioPrevPlay: this.onPlayPrevAudio,\n        icon: _objectSpread(_objectSpread({}, this.iconMap), {}, {\n          reload: ReloadComponent,\n          download: DownloadComponent,\n          lyric: LyricComponent\n        }),\n        playModeTipVisible: playModeTipVisible,\n        openAudioListsPanel: this.openAudioListsPanel,\n        onClose: this.onHidePanel,\n        extendsContent: extendsContent,\n        glassBg: glassBg,\n        autoHiddenCover: autoHiddenCover,\n        onCoverClick: this.onCoverClick,\n        locale: locale,\n        toggleMode: toggleMode,\n        renderAudioTitle: this.renderAudioTitle,\n        shouldShowPlayIcon: shouldShowPlayIcon,\n        isResetCoverRotate: isResetCoverRotate\n      }), toggle ? undefined : drag ? /*#__PURE__*/_react[\"default\"].createElement(_reactDraggable[\"default\"], {\n        bounds: bounds,\n        position: {\n          x: moveX,\n          y: moveY\n        },\n        onDrag: this.onControllerDrag,\n        onStop: this.onControllerDragStop,\n        onStart: this.onControllerDragStart\n      }, AudioController) : AudioController, toggle && (!isMobile || !responsive) && /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n        className: (0, _classnames[\"default\"])('music-player-panel', 'translate', {\n          'glass-bg': glassBg\n        })\n      }, /*#__PURE__*/_react[\"default\"].createElement(\"section\", {\n        className: \"panel-content\"\n      }, (!autoHiddenCover || autoHiddenCover && cover) && /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n        className: (0, _classnames[\"default\"])('img-content', 'img-rotate', {\n          'img-rotate-pause': !playing || !cover,\n          'img-rotate-reset': isResetCoverRotate\n        }),\n        style: {\n          backgroundImage: \"url(\".concat(cover, \")\")\n        },\n        onClick: function onClick() {\n          return _this4.onCoverClick();\n        }\n      }), /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n        className: \"progress-bar-content\"\n      }, /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n        className: \"audio-title-group\"\n      }, /*#__PURE__*/_react[\"default\"].createElement(\"span\", {\n        className: \"audio-title\",\n        title: audioTitle\n      }, this.renderAudioTitle()), audioTitleExtra), /*#__PURE__*/_react[\"default\"].createElement(\"section\", {\n        className: \"audio-main\"\n      }, /*#__PURE__*/_react[\"default\"].createElement(\"span\", {\n        className: \"current-time\",\n        title: formattedCurrentTime\n      }, loading ? '--' : formattedCurrentTime), /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n        className: \"progress-bar\"\n      }, ProgressBar), /*#__PURE__*/_react[\"default\"].createElement(\"span\", {\n        className: \"duration\",\n        title: formattedAudioDuration\n      }, loading ? '--' : formattedAudioDuration))), /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n        className: \"player-content\"\n      }, !showPlay ? loading && this.iconMap.loading : /*#__PURE__*/_react[\"default\"].createElement(\"span\", {\n        className: \"group\"\n      }, /*#__PURE__*/_react[\"default\"].createElement(\"span\", {\n        className: \"group prev-audio\",\n        title: locale.previousTrackText,\n        onClick: this.onPlayPrevAudio\n      }, this.iconMap.prev), loading ? /*#__PURE__*/_react[\"default\"].createElement(\"span\", {\n        className: \"group loading-icon\",\n        title: locale.loadingText\n      }, this.iconMap.loading) : /*#__PURE__*/_react[\"default\"].createElement(\"span\", {\n        className: \"group play-btn\",\n        onClick: this.onTogglePlay,\n        title: shouldShowPlayIcon ? locale.clickToPlayText : locale.clickToPauseText\n      }, shouldShowPlayIcon ? this.iconMap.play : this.iconMap.pause), /*#__PURE__*/_react[\"default\"].createElement(\"span\", {\n        className: \"group next-audio\",\n        title: locale.nextTrackText,\n        onClick: this.onPlayNextAudio\n      }, this.iconMap.next)), ReloadComponent, DownloadComponent, ThemeSwitchComponent, extendsContent || null, /*#__PURE__*/_react[\"default\"].createElement(\"span\", {\n        className: \"group play-sounds\",\n        title: locale.volumeText\n      }, soundValue === 0 ? /*#__PURE__*/_react[\"default\"].createElement(\"span\", {\n        className: \"sounds-icon\",\n        onClick: this.onResetVolume\n      }, this.iconMap.mute) : /*#__PURE__*/_react[\"default\"].createElement(\"span\", {\n        className: \"sounds-icon\",\n        onClick: this.onAudioMute\n      }, this.iconMap.volume), /*#__PURE__*/_react[\"default\"].createElement(_Slider[\"default\"], _extends({\n        value: soundValue,\n        onChange: this.onAudioSoundChange,\n        className: \"sound-operation\"\n      }, _slider.VOLUME_BAR_SLIDER_OPTIONS))), PlayModeComponent, LyricComponent, /*#__PURE__*/_react[\"default\"].createElement(\"span\", {\n        className: \"group audio-lists-btn\",\n        title: locale.playListsText,\n        onClick: this.openAudioListsPanel\n      }, /*#__PURE__*/_react[\"default\"].createElement(\"span\", {\n        className: \"audio-lists-icon\"\n      }, this.iconMap.playLists), /*#__PURE__*/_react[\"default\"].createElement(\"span\", {\n        className: \"audio-lists-num\"\n      }, audioLists.length)), toggleMode && /*#__PURE__*/_react[\"default\"].createElement(\"span\", {\n        className: \"group hide-panel\",\n        title: locale.toggleMiniModeText,\n        onClick: this.onHidePanel\n      }, this.iconMap.toggle), DestroyComponent))), /*#__PURE__*/_react[\"default\"].createElement(_AudioListsPanel[\"default\"], {\n        playing: playing,\n        playId: playId,\n        loading: loading,\n        visible: audioListsPanelVisible,\n        audioLists: audioLists,\n        onPlay: this.onTogglePlay,\n        onCancel: this.closeAudioListsPanel,\n        icon: this.iconMap,\n        isMobile: isMobile,\n        panelToggleAnimate: panelToggleAnimate,\n        glassBg: glassBg,\n        cover: cover,\n        remove: remove,\n        onDelete: this.onDeleteAudioLists,\n        removeId: removeId,\n        locale: locale,\n        shouldShowPlayIcon: shouldShowPlayIcon,\n        audioTitleExtra: audioTitleExtra\n      }), !isMobile && /*#__PURE__*/_react[\"default\"].createElement(_PlayModel[\"default\"], {\n        visible: playModelNameVisible,\n        value: currentPlayModeName\n      }), audioLyricVisible && /*#__PURE__*/_react[\"default\"].createElement(_reactDraggable[\"default\"], null, /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n        className: (0, _classnames[\"default\"])('music-player-lyric', lyricClassName)\n      }, currentLyric || locale.emptyLyricText)), /*#__PURE__*/_react[\"default\"].createElement(\"audio\", _extends({\n        className: \"music-player-audio\",\n        title: audioTitle\n      }, preloadState, {\n        src: musicSrc,\n        ref: function ref(node) {\n          _this4.audio = node;\n        }\n      }))), container);\n    }\n  }, {\n    key: \"getBaseAudioInfo\",\n    value: // 返回给使用者的 音乐信息\n    function getBaseAudioInfo() {\n      var _this$state18 = this.state,\n          cover = _this$state18.cover,\n          name = _this$state18.name,\n          musicSrc = _this$state18.musicSrc,\n          soundValue = _this$state18.soundValue,\n          lyric = _this$state18.lyric,\n          audioLists = _this$state18.audioLists,\n          currentLyric = _this$state18.currentLyric;\n\n      var _ref17 = this.audio || {},\n          currentTime = _ref17.currentTime,\n          muted = _ref17.muted,\n          networkState = _ref17.networkState,\n          readyState = _ref17.readyState,\n          played = _ref17.played,\n          paused = _ref17.paused,\n          ended = _ref17.ended,\n          startDate = _ref17.startDate;\n\n      var currentPlayIndex = this.getCurrentPlayIndex();\n      var currentAudioListInfo = audioLists[currentPlayIndex] || {};\n      return _objectSpread(_objectSpread({}, currentAudioListInfo), {}, {\n        cover: cover,\n        name: name,\n        musicSrc: musicSrc,\n        volume: soundValue,\n        currentTime: currentTime,\n        duration: this.audioDuration,\n        muted: muted,\n        networkState: networkState,\n        readyState: readyState,\n        played: played,\n        paused: paused,\n        ended: ended,\n        startDate: startDate,\n        lyric: lyric,\n        currentLyric: currentLyric,\n        playIndex: currentPlayIndex\n      });\n    }\n  }, {\n    key: \"componentDidUpdate\",\n    value: function componentDidUpdate(_, prevState) {\n      if (prevState.musicSrc !== this.state.musicSrc) {\n        // eslint-disable-next-line react/no-did-update-set-state\n        this.setState({\n          isResetCoverRotate: true\n        });\n      }\n    } // eslint-disable-next-line camelcase\n\n  }, {\n    key: \"UNSAFE_componentWillReceiveProps\",\n    value: function UNSAFE_componentWillReceiveProps(nextProps) {\n      var _this5 = this;\n\n      var audioLists = nextProps.audioLists,\n          playIndex = nextProps.playIndex,\n          theme = nextProps.theme,\n          mode = nextProps.mode,\n          playMode = nextProps.playMode,\n          clearPriorAudioLists = nextProps.clearPriorAudioLists;\n      var isEqualAudioLists = (0, _utils.arrayEqual)(audioLists)(this.props.audioLists);\n\n      if (!isEqualAudioLists) {\n        if (clearPriorAudioLists) {\n          this.changeAudioLists(nextProps);\n        } else {\n          this.updateAudioLists(audioLists);\n        }\n\n        if (!this.checkCurrentPlayingAudioIsInUpdatedAudioLists(nextProps)) {\n          this.initPlayer(audioLists, false);\n        }\n\n        setTimeout(function () {\n          return _this5.initSortableAudioLists();\n        }, 200);\n      }\n\n      this.updatePlayIndex(!isEqualAudioLists && clearPriorAudioLists ? _player.DEFAULT_PLAY_INDEX : playIndex);\n      this.updateTheme(theme);\n      this.updateMode(mode);\n      this.updatePlayMode(playMode);\n    } // eslint-disable-next-line camelcase\n\n  }, {\n    key: \"UNSAFE_componentWillMount\",\n    value: function UNSAFE_componentWillMount() {\n      var _this6 = this;\n\n      var _this$props6 = this.props,\n          audioLists = _this$props6.audioLists,\n          remember = _this$props6.remember;\n\n      if (Array.isArray(audioLists) && audioLists.length >= 1) {\n        var playInfo = this.getPlayInfo(audioLists);\n        var lastPlayStatus = remember ? this.getLastPlayStatus() : {};\n\n        switch (_typeof(playInfo.musicSrc)) {\n          case 'function':\n            playInfo.musicSrc().then(function (val) {\n              _this6.setState(_objectSpread(_objectSpread({}, playInfo), {}, {\n                musicSrc: val\n              }, lastPlayStatus));\n            }, this.onAudioError);\n            break;\n\n          default:\n            this.setState(_objectSpread(_objectSpread({}, playInfo), lastPlayStatus));\n        }\n      }\n    }\n  }, {\n    key: \"componentWillUnmount\",\n    value: function componentWillUnmount() {\n      this.unInstallPlayer();\n    }\n  }, {\n    key: \"componentDidMount\",\n    value: function componentDidMount() {\n      this.addMobileListener();\n      this.addSystemThemeListener();\n      this.initPlayer();\n      this.initSortableAudioLists();\n      this.onGetAudioInstance();\n    }\n  }]);\n\n  return ReactJkMusicPlayer;\n}(_react.PureComponent);\n\nexports[\"default\"] = ReactJkMusicPlayer;\n\n_defineProperty(ReactJkMusicPlayer, \"defaultProps\", {\n  audioLists: [],\n  theme: _theme.THEME.DARK,\n  mode: _mode.MODE.MINI,\n  defaultPlayMode: _playMode2[\"default\"].order,\n  defaultPosition: {\n    left: 0,\n    top: 0\n  },\n  once: false,\n  // onAudioPlay 事件  是否只触发一次\n  drag: true,\n  toggleMode: true,\n  // 能换在迷你 和完整模式下 互相切换\n  showMiniModeCover: true,\n  // 迷你模式下 是否显示封面图\n  showDownload: true,\n  showPlay: true,\n  showReload: true,\n  showPlayMode: true,\n  showThemeSwitch: true,\n  showLyric: false,\n  playModeTipVisible: false,\n  // 手机端切换播放模式\n  autoPlay: true,\n  defaultVolume: 1,\n  showProgressLoadBar: true,\n  // 音频预加载进度\n  seeked: true,\n  playModeShowTime: 600,\n  // 播放模式提示 显示时间,\n  bounds: 'body',\n  // mini 模式拖拽的可移动边界\n  showMiniProcessBar: false,\n  // 是否在迷你模式 显示进度条\n  loadAudioErrorPlayNext: true,\n  // 加载音频失败时 是否尝试播放下一首\n  preload: false,\n  // 是否在页面加载后立即加载音频\n  glassBg: false,\n  // 是否是毛玻璃效果\n  remember: false,\n  // 是否记住当前播放状态\n  remove: true,\n  // 音乐是否可以删除\n  defaultPlayIndex: 0,\n  // 默认播放索引\n  getContainer: function getContainer() {\n    return document.body;\n  },\n  // 播放器挂载的节点\n  autoHiddenCover: false,\n  // 当前播放歌曲没有封面时是否自动隐藏\n  onBeforeAudioDownload: function onBeforeAudioDownload() {},\n  // 下载前转换音频地址等\n  spaceBar: false,\n  // 是否可以通过空格键 控制播放暂停\n  showDestroy: false,\n  showMediaSession: false,\n  locale: _locale[\"default\"].en_US,\n  responsive: true,\n  icon: DEFAULT_ICON,\n  quietUpdate: false,\n  // 更新后的播放列表如果有当前正在播放的歌曲不打断当前播放状态\n  mobileMediaQuery: _mediaQuery.MEDIA_QUERY.MOBILE,\n  // 音频暂停播放 淡入淡出\n  volumeFade: {\n    fadeIn: 0,\n    fadeOut: 0\n  },\n  // https://github.com/SortableJS/Sortable#options\n  sortableOptions: {}\n});\n\n_defineProperty(ReactJkMusicPlayer, \"propTypes\", _propTypes[\"default\"]);"]}