From 94d1269b9e2078184d530bf2a54a1121fe70ac05 Mon Sep 17 00:00:00 2001 From: Matthew Gaffen Date: Wed, 21 Aug 2019 17:51:37 +0100 Subject: [PATCH] stop other players on page playing when new one starts --- src/js/components/RecordPlayer.vue | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/js/components/RecordPlayer.vue b/src/js/components/RecordPlayer.vue index 32e07d3..c3b78de 100644 --- a/src/js/components/RecordPlayer.vue +++ b/src/js/components/RecordPlayer.vue @@ -92,6 +92,8 @@ export default { this.eqBarRotation = segmentWidth * (Math.PI / 180); this.createBarData(); + + window.dispatchEvent(new CustomEvent("changetrack", { detail: this })); } else { // let audioCtx = new (window.AudioContext || window.webkitAudioContext)(); this.source = this.audioCtx.createMediaStreamSource( @@ -105,8 +107,16 @@ export default { this.initialised = false; this.drawUI(); }); + + window.addEventListener('changetrack', this.changeTrack); }, methods: { + changeTrack: function(e){ + console.log(); + if (e.detail._uid !== this._uid && this.playing) { + this.togglePlay(); + } + }, createBarData: function() { this.drawBar(this.eqBarCache, "rgb(0, 0, 0)"); this.drawBar(this.eqBarCacheWhite, "rgb(255, 255, 255)"); @@ -353,6 +363,7 @@ export default { this.audioElement.play(); this.playing = !this.playing; this.draw(); + window.dispatchEvent(new CustomEvent("changetrack", { detail: this })); } else { this.audioElement.pause(); this.playing = !this.playing;