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(); + } + } }, };