From 702cf51573f3ab9a092d8f6a60817e3225707689 Mon Sep 17 00:00:00 2001 From: N Pex Date: Mon, 11 Apr 2022 12:09:51 +0000 Subject: [PATCH] Only one audio play at a time --- src/components/messages/AudioPlayer.vue | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/components/messages/AudioPlayer.vue b/src/components/messages/AudioPlayer.vue index e73c080..00157aa 100644 --- a/src/components/messages/AudioPlayer.vue +++ b/src/components/messages/AudioPlayer.vue @@ -45,6 +45,7 @@ export default { }; }, mounted() { + this.$root.$on('playback-start', this.onPlaybackStart); this.player = this.$refs.player; this.player.addEventListener("timeupdate", this.updateProgressBar); this.player.addEventListener("play", () => { @@ -58,6 +59,9 @@ export default { this.playing = false; }); }, + beforeDestroy() { + this.$root.$off('playback-start', this.onPlaybackStart); + }, computed: { currentTime() { return util.formatDuration(this.playTime); @@ -80,6 +84,7 @@ export default { methods: { play() { if (this.player.src) { + this.$root.$emit("playback-start", this); if (this.player.paused) { this.player.play(); } else if (this.player.ended) { @@ -107,6 +112,11 @@ export default { updateDuration() { this.duration = 1000 * this.player.duration; }, + onPlaybackStart(item) { + if (item != this && this.playing) { + this.pause(); + } + } }, };