From 1005718c07e51fc083e32d0519c63e075b7539b7 Mon Sep 17 00:00:00 2001 From: alger Date: Sat, 8 Nov 2025 14:22:44 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=B0=81=E9=9D=A2=E5=9B=BE=E9=A2=84?= =?UTF-8?q?=E5=85=88=E5=8A=A0=E8=BD=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/renderer/store/modules/player.ts | 35 ++++++++++++++++++++++++++-- 1 file changed, 33 insertions(+), 2 deletions(-) diff --git a/src/renderer/store/modules/player.ts b/src/renderer/store/modules/player.ts index d736709..af69ae6 100644 --- a/src/renderer/store/modules/player.ts +++ b/src/renderer/store/modules/player.ts @@ -445,6 +445,31 @@ const preloadNextSong = (nextSongUrl: string) => { } }; +// 预加载封面图片 +const preloadCoverImage = (picUrl: string) => { + if (!picUrl) return; + + try { + const imageUrl = getImgUrl(picUrl, '500y500'); + console.log('预加载封面图片:', imageUrl); + + // 创建一个 Image 对象来预加载图片 + const img = new Image(); + img.src = imageUrl; + + // 可选:添加加载完成和错误的回调 + img.onload = () => { + console.log('封面图片预加载成功:', imageUrl); + }; + + img.onerror = () => { + console.error('封面图片预加载失败:', imageUrl); + }; + } catch (error) { + console.error('预加载封面图片出错:', error); + } +}; + const fetchSongs = async (playList: SongResult[], startIndex: number, endIndex: number) => { try { const songs = playList.slice(Math.max(0, startIndex), Math.min(endIndex, playList.length)); @@ -478,8 +503,14 @@ const fetchSongs = async (playList: SongResult[], startIndex: number, endIndex: } }); - if (nextSong && nextSong.playMusicUrl) { - preloadNextSong(nextSong.playMusicUrl); + // 预加载下一首歌曲的音频和封面 + if (nextSong) { + if (nextSong.playMusicUrl) { + preloadNextSong(nextSong.playMusicUrl); + } + if (nextSong.picUrl) { + preloadCoverImage(nextSong.picUrl); + } } } catch (error) { console.error('获取歌曲列表失败:', error);