From 06951bbc29a0cbb57cd349c9ce8b3e7026cb5923 Mon Sep 17 00:00:00 2001 From: kuaifan Date: Sun, 29 May 2022 10:36:46 +0800 Subject: [PATCH] =?UTF-8?q?perf:=20=E6=92=A4=E5=9B=9E=E8=AF=AD=E9=9F=B3?= =?UTF-8?q?=E6=B6=88=E6=81=AF=E6=97=B6=E5=81=9C=E6=AD=A2=E6=AD=A3=E5=9C=A8?= =?UTF-8?q?=E6=92=AD=E6=94=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- resources/assets/js/components/AudioManager.vue | 13 +++++++++---- .../js/pages/manage/components/DialogView.vue | 5 ++--- resources/assets/js/store/actions.js | 1 + 3 files changed, 12 insertions(+), 7 deletions(-) diff --git a/resources/assets/js/components/AudioManager.vue b/resources/assets/js/components/AudioManager.vue index b5b410a6b..8e006b1c5 100644 --- a/resources/assets/js/components/AudioManager.vue +++ b/resources/assets/js/components/AudioManager.vue @@ -27,6 +27,7 @@ export default { return { audioSubscribe: null, audioPlay: false, + audioId: 0, audioSrc: null, callback: null, } @@ -48,19 +49,22 @@ export default { } }, methods: { - setAudioPlay(info) { + setAudioPlay(msg) { const audio = this.$refs.audio; const ended = audio.ended || audio.paused; audio.controls = false; audio.loop = false; audio.volume = 1; - if (info === false) { - if (!ended) { + if (/\d+/.test(msg)) { + msg = msg == this.audioId + } + if (typeof msg === "boolean") { + if (!msg && !ended) { audio.pause() } return } - const {src, callback} = info + const {id, src, callback} = msg this.callback = callback || null; if (src === this.audioSrc) { if (ended) { @@ -69,6 +73,7 @@ export default { audio.pause(); } } else { + this.audioId = id; this.audioSrc = src; if (!ended) { audio.pause() diff --git a/resources/assets/js/pages/manage/components/DialogView.vue b/resources/assets/js/pages/manage/components/DialogView.vue index 4572cc17e..e757a58b5 100644 --- a/resources/assets/js/pages/manage/components/DialogView.vue +++ b/resources/assets/js/pages/manage/components/DialogView.vue @@ -132,9 +132,7 @@ export default { }, beforeDestroy() { - if (this.recordPlay) { - Store.set('audioSubscribe', false); - } + Store.set('audioSubscribe', this.msgData.id); }, computed: { @@ -304,6 +302,7 @@ export default { playRecord() { Store.set('audioSubscribe', { + id: this.msgData.id, src: this.msgData.msg.path, callback: (play) => { this.recordPlay = play; diff --git a/resources/assets/js/store/actions.js b/resources/assets/js/store/actions.js index 33f1d25fe..105b0d970 100644 --- a/resources/assets/js/store/actions.js +++ b/resources/assets/js/store/actions.js @@ -2097,6 +2097,7 @@ export default { ids.some(id => { let index = state.dialogMsgs.findIndex(item => item.id == id); if (index > -1) { + Store.set('audioSubscribe', id); state.dialogMsgs.splice(index, 1); } })