function onload() {
sound = new Sound();
sound.src = 'Coin.wav';
- sound.play();
+ sound.autoplay = true;
sound.addEventListener('ended', eventLogger);
sound.addEventListener('play', eventLogger);
sound.addEventListener('pause', eventLogger);
<button onclick="sound.pause()">pause</button>
<button onclick="sound.muted = !sound.muted">mute</button>
<input type="range" min="0" max="1" step="0.01" onchange="sound.volume = event.target.value" />
+ <button onclick="sound.loop = !sound.loop">loop</button>
</div>
</body>
this.shouldBePlaying = 0;
this.startTime = 0;
this.nextStartTime = 0;
- this.load();
}
Sound.prototype = {
},
onended: function() {
+ if (this._loop) {
+ this.stopInternal();
+ this.setCurrentTime(0);
+ this.playInternal();
+ return;
+ }
+
this._ended = true;
this.nextStartTime = 0;
this.stopInternal();
setSrc: function(src) {
this._src = src;
- this.load();
+ if (this._autoplay && this._src != null)
+ this.load();
},
getCurrentSrc: function() {
if (this.gainNode)
this.gainNode.gain.value = this._muted ? 0 : this._volume;
},
+
+ getAutoplay: function() {
+ return this._autoplay;
+ },
+
+ setAutoplay: function(autoplay) {
+ if (this._autoplay == autoplay)
+ return;
+
+ this._autoplay = autoplay;
+ if (this._autoplay && this._src != null)
+ this.load();
+ },
+
+ getLoop: function() {
+ return this._loop;
+ },
+
+ setLoop: function(loop) {
+ this._loop = loop;
+ },
};
Object.defineProperty(Sound.prototype, 'src', {