diff --git a/src/renderer/store/modules/player.ts b/src/renderer/store/modules/player.ts index eaa8925..6352815 100644 --- a/src/renderer/store/modules/player.ts +++ b/src/renderer/store/modules/player.ts @@ -560,7 +560,7 @@ export const usePlayerStore = defineStore('player', () => { const setPlay = async (song: SongResult) => { try { // 如果是当前正在播放的音乐,则切换播放/暂停状态 - if (playMusic.value.id === song.id && playMusic.value.playMusicUrl === song.playMusicUrl) { + if (playMusic.value.id === song.id && playMusic.value.playMusicUrl === song.playMusicUrl && !song.isFirstPlay) { if (play.value) { setPlayMusic(false); audioService.getCurrentSound()?.pause(); @@ -570,6 +570,10 @@ export const usePlayerStore = defineStore('player', () => { } return; } + + if(song.isFirstPlay) { + song.isFirstPlay = false; + } // 直接调用 handlePlayMusic,它会处理索引更新和播放逻辑 const success = await handlePlayMusic(song); @@ -1095,7 +1099,7 @@ export const usePlayerStore = defineStore('player', () => { savedPlayMusic.playMusicUrl = undefined; } - await handlePlayMusic({ ...savedPlayMusic, playMusicUrl: undefined }, isPlaying); + await handlePlayMusic({ ...savedPlayMusic, isFirstPlay: true, playMusicUrl: undefined }, isPlaying); if (savedProgress) { try { diff --git a/src/renderer/type/music.ts b/src/renderer/type/music.ts index 3addfa9..f836fce 100644 --- a/src/renderer/type/music.ts +++ b/src/renderer/type/music.ts @@ -45,6 +45,7 @@ export interface SongResult { // 时长 duration?: number; dt?: number; + isFirstPlay?: boolean; } export interface Song {