UNPKG

lottie-web

Version:

After Effects plugin for exporting animations to SVG + JavaScript or canvas + JavaScript

86 lines (81 loc) 2.09 kB
// import Howl from '../../3rd_party/howler'; const audioControllerFactory = (function () { function AudioController(audioFactory) { this.audios = []; this.audioFactory = audioFactory; this._volume = 1; this._isMuted = false; } AudioController.prototype = { addAudio: function (audio) { this.audios.push(audio); }, pause: function () { var i; var len = this.audios.length; for (i = 0; i < len; i += 1) { this.audios[i].pause(); } }, resume: function () { var i; var len = this.audios.length; for (i = 0; i < len; i += 1) { this.audios[i].resume(); } }, setRate: function (rateValue) { var i; var len = this.audios.length; for (i = 0; i < len; i += 1) { this.audios[i].setRate(rateValue); } }, createAudio: function (assetPath) { if (this.audioFactory) { return this.audioFactory(assetPath); } if (window.Howl) { return new window.Howl({ src: [assetPath], }); } return { isPlaying: false, play: function () { this.isPlaying = true; }, seek: function () { this.isPlaying = false; }, playing: function () {}, rate: function () {}, setVolume: function () {}, }; }, setAudioFactory: function (audioFactory) { this.audioFactory = audioFactory; }, setVolume: function (value) { this._volume = value; this._updateVolume(); }, mute: function () { this._isMuted = true; this._updateVolume(); }, unmute: function () { this._isMuted = false; this._updateVolume(); }, getVolume: function () { return this._volume; }, _updateVolume: function () { var i; var len = this.audios.length; for (i = 0; i < len; i += 1) { this.audios[i].volume(this._volume * (this._isMuted ? 0 : 1)); } }, }; return function () { return new AudioController(); }; }()); export default audioControllerFactory;