stopSound ({ getters, commit, state }, opts) {
      let unload
      let id

      if (typeof opts === 'object') {
        unload = opts.unload
        id = opts.id
      } else {
        id = opts
        unload = false
      }

      const sound = getters.getSoundById(id)
      if (!sound) {
        return
      }

      sound.stop()

      if (unload) {
        sound.unload()
        commit('removeSound', id)
        if (state.unique.soundIdKeys.has(id)) {
          commit('removeUniqueEntry', { id, unique: state.unique.soundIdKeys.get(id) })
        }
      }

      return id
    }
Stops a playing sound.  Unloads and cleans up data after
stopping.  Stopping a paused sound unloads and cleans up
all data.

@param opts {string} ID of sound to stop

@param opts.id {string} ID of sound to stop
@param opts.unload {boolean} unload / cleanup sound

@return The ID of the sound stopped

@throws {Error} when invalid ID specified