Skip to content

Commit 9edee0b

Browse files
committed
(UI) improve audio message
1 parent 40241da commit 9edee0b

File tree

2 files changed

+24
-14
lines changed

2 files changed

+24
-14
lines changed

src/ChatWindow/Message/AudioPlayer.vue

Lines changed: 11 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,6 @@
1717

1818
<audio :id="playerUniqId" :src="audioSource" />
1919
</div>
20-
<div class="vac-player-time">
21-
{{ time }}
22-
</div>
2320
</div>
2421
</template>
2522

@@ -55,9 +52,6 @@ export default {
5552
if (this.src) return this.src
5653
this.resetProgress()
5754
return null
58-
},
59-
time() {
60-
return this.progress > 1 ? this.playedTime : this.duration
6155
}
6256
},
6357
@@ -68,9 +62,10 @@ export default {
6862
this.isPlaying = false
6963
})
7064
71-
this.player.addEventListener('loadeddata', ev => {
65+
this.player.addEventListener('loadeddata', () => {
7266
this.resetProgress()
7367
this.duration = this.convertTimeMMSS(this.player.duration)
68+
this.updateProgressTime()
7469
})
7570
7671
this.player.addEventListener('timeupdate', this.onTimeUpdate)
@@ -95,13 +90,21 @@ export default {
9590
this.playedTime = this.convertTimeMMSS(0)
9691
this.progress = 0
9792
this.isPlaying = false
93+
this.updateProgressTime()
9894
},
9995
onTimeUpdate() {
10096
this.playedTime = this.convertTimeMMSS(this.player.currentTime)
10197
this.progress = (this.player.currentTime / this.player.duration) * 100
98+
this.updateProgressTime()
10299
},
103100
onUpdateProgress(pos) {
104101
if (pos) this.player.currentTime = pos * this.player.duration
102+
},
103+
updateProgressTime() {
104+
this.$emit(
105+
'update-progress-time',
106+
this.progress > 1 ? this.playedTime : this.duration
107+
)
105108
}
106109
}
107110
}
@@ -110,17 +113,11 @@ export default {
110113
<style lang="scss">
111114
.vac-audio-player {
112115
display: flex;
113-
margin-top: 15px;
116+
margin: 15px 0 5px;
114117
115118
.vac-svg-button {
116119
max-width: 20px;
117120
margin-left: 7px;
118121
}
119122
}
120-
121-
.vac-player-time {
122-
margin-left: 41px;
123-
color: var(--chat-color);
124-
font-size: 12px;
125-
}
126123
</style>

src/ChatWindow/Message/Message.vue

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,7 @@
9797
<audio-player
9898
v-else-if="message.file.audio"
9999
:src="message.file.url"
100+
@update-progress-time="progressTime = $event"
100101
@hover-audio-progress="hoverAudioProgress = $event"
101102
>
102103
<template v-for="(i, name) in $scopedSlots" #[name]="data">
@@ -116,6 +117,10 @@
116117
<span>{{ message.content }}</span>
117118
</div>
118119

120+
<div class="vac-player-time">
121+
{{ progressTime }}
122+
</div>
123+
119124
<div class="vac-text-timestamp">
120125
<div
121126
v-if="message.edited && !message.deleted"
@@ -224,6 +229,7 @@ export default {
224229
optionsOpened: false,
225230
emojiOpened: false,
226231
newMessage: {},
232+
progressTime: '00:00',
227233
hoverAudioProgress: false
228234
}
229235
},
@@ -484,6 +490,13 @@ export default {
484490
text-align: right;
485491
}
486492
493+
.vac-player-time {
494+
float: left;
495+
margin: -2px 0 0 41px;
496+
color: var(--chat-color);
497+
font-size: 12px;
498+
}
499+
487500
.vac-file-message {
488501
display: flex;
489502
flex-wrap: wrap;

0 commit comments

Comments
 (0)