phaser/src/sound/noaudio/NoAudioSound.js

81 lines
2.4 KiB
JavaScript
Raw Normal View History

var Class = require('../../utils/Class');
var EventEmitter = require('eventemitter3');
2018-01-20 20:28:37 +00:00
var Extend = require('../../utils/object/Extend');
var BaseSound = require('../BaseSound');
/*!
* @author Pavle Goloskokovic <pgoloskokovic@gmail.com> (http://prunegames.com)
*/
var NoAudioSound = new Class({
Extends: EventEmitter,
/**
* No audio implementation of the sound. It is used if audio has been
* disabled in the game config or the device doesn't support any audio.
*
* It represents a graceful degradation of sound logic that provides
* minimal functionality and prevents Phaser projects that use audio from
* breaking on devices that don't support any audio playback technologies.
*
* @class Phaser.Sound.NoAudioSound
* @constructor
* @param {Phaser.Sound.NoAudioSoundManager} manager - Reference to the current sound manager instance.
* @param {string} key - Asset key for the sound.
* @param {ISoundConfig} [config={}] - An optional config object containing default sound settings.
*/
initialize: function NoAudioSound(manager, key, config) {
2018-01-26 13:52:03 +00:00
if (config === void 0) { config = {}; }
EventEmitter.call(this);
this.manager = manager;
this.key = key;
this.isPlaying = false;
this.isPaused = false;
2018-01-20 20:00:31 +00:00
this.totalRate = 1;
2018-01-20 20:00:50 +00:00
this.duration = 0;
this.totalDuration = 0;
this.config = Extend({
mute: false,
volume: 1,
rate: 1,
detune: 0,
seek: 0,
loop: false,
delay: 0
}, config);
this.currentConfig = this.config;
this.mute = false;
this.volume = 1;
this.rate = 1;
this.detune = 0;
this.seek = 0;
this.loop = false;
this.markers = {};
this.currentMarker = null;
this.pendingRemove = false;
},
addMarker: function (marker) {
return false;
},
updateMarker: function (marker) {
return false;
},
removeMarker: function (markerName) {
return null;
},
play: function (markerName, config) {
return false;
},
pause: function () {
return false;
},
resume: function () {
return false;
},
stop: function () {
return false;
2018-01-20 20:13:36 +00:00
},
destroy: function () {
this.manager.remove(this);
BaseSound.prototype.destroy.call(this);
}
});
module.exports = NoAudioSound;