diff --git a/src/views/api/aplayer/vue-aplayer.vue b/src/views/api/aplayer/vue-aplayer.vue index db2ef32..1172036 100644 --- a/src/views/api/aplayer/vue-aplayer.vue +++ b/src/views/api/aplayer/vue-aplayer.vue @@ -13,7 +13,7 @@
(null) const internalMusic = ref(props.music) const isPlaying = ref(false) +const isSeeking = ref(false) const wasPlayingBeforeSeeking = ref(false) const isMobile = /mobile/i.test(window.navigator.userAgent) const playStat = reactive({ @@ -258,6 +259,7 @@ const currentMusic = computed({ const currentTheme = computed(() => selfAdaptingTheme.value || currentMusic.value.theme || props.theme) const isFloatMode = computed(() => props.float && !isMobile) +const thumbnailPlaying = computed(() => isPlaying.value || (isSeeking.value && wasPlayingBeforeSeeking.value)) const floatStyleObj = computed(() => { return { transform: `translate(${floatOffsetLeft.value}px, ${floatOffsetTop.value}px)`, @@ -408,6 +410,7 @@ function onProgressDragBegin(value: number) { if (!media) return wasPlayingBeforeSeeking.value = isPlaying.value + isSeeking.value = true pause() if (!isNaN(media.duration)) { @@ -429,6 +432,9 @@ function onProgressDragging(value: number) { function onProgressDragEnd() { if (wasPlayingBeforeSeeking.value) { thenPlay() + } else { + isSeeking.value = false + wasPlayingBeforeSeeking.value = false } } @@ -502,10 +508,15 @@ function onSelectSong(song: PlayerMusicItem) { function onAudioPlay() { isPlaying.value = true + isSeeking.value = false + wasPlayingBeforeSeeking.value = false } function onAudioPause() { isPlaying.value = false + if (!isSeeking.value) { + wasPlayingBeforeSeeking.value = false + } } function onAudioWaiting() {