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() {