@nbamford123/arwes
Version:
Futuristic Sci-Fi and Cyberpunk Graphical User Interface Framework for Web Apps
51 lines (41 loc) • 1.57 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var _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; };
var _howler = require('howler');
var _howler2 = _interopRequireDefault(_howler);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
/**
* Create handler for sound player functionalities.
* This uses the `howler` package to create a player.
* @param {Object} depencencies
* @param {Function} depencencies.Howl
* @param {Object} conf - Player configuration
* @param {Object} conf.sound - Configuration passed to `howler.Howl`.
* @param {Object} conf.settings - Sound settings
* @return {Howl}
*/
exports.default = function (depencencies, conf) {
var deps = _extends({
Howl: _howler2.default.Howl
}, depencencies);
var _ref = conf || {},
_ref$sound = _ref.sound,
sound = _ref$sound === undefined ? {} : _ref$sound,
_ref$settings = _ref.settings,
settings = _ref$settings === undefined ? {} : _ref$settings;
var player = new deps.Howl(sound);
if (settings.oneAtATime) {
var play = player.play.bind(player);
var lastPlay = void 0;
player.play = function () {
if (lastPlay) {
this.stop(lastPlay);
}
lastPlay = play.apply(undefined, arguments);
return lastPlay;
};
}
return player;
};