mirror of
https://github.com/algerkong/AlgerMusicPlayer.git
synced 2026-05-17 02:07:29 +08:00
refactor(player): 重构播放控制系统,移除 Howler.js 改用原生 HTMLAudioElement
- 新建 playbackController.ts,使用 generation-based 取消替代 playbackRequestManager 状态机 - audioService 重写:单一持久 HTMLAudioElement + Web Audio API,createMediaElementSource 只调一次 - playerCore 瘦身为纯状态管理,移除 handlePlayMusic/playAudio/checkPlaybackState - playlist next/prev 简化,区分用户手动切歌和歌曲自然播完 - MusicHook 适配 HTMLAudioElement API(.currentTime/.duration/.paused) - preloadService 从 Howl 实例缓存改为 URL 可用性验证 - 所有 view/component 调用者迁移到 playbackController.playTrack() 修复:快速切歌竞态、seek 到未缓冲位置失败、重启后自动播放循环提示、EQ 重建崩溃
This commit is contained in:
@@ -75,7 +75,8 @@ export const usePlayerStore = defineStore('player', () => {
|
||||
const playHistoryStore = usePlayHistoryStore();
|
||||
playHistoryStore.migrateFromLocalStorage();
|
||||
|
||||
await playerCore.initializePlayState();
|
||||
const { initializePlayState: initPlayState } = await import('@/services/playbackController');
|
||||
await initPlayState();
|
||||
await playlist.initializePlaylist();
|
||||
};
|
||||
|
||||
@@ -112,11 +113,7 @@ export const usePlayerStore = defineStore('player', () => {
|
||||
getVolume: playerCore.getVolume,
|
||||
increaseVolume: playerCore.increaseVolume,
|
||||
decreaseVolume: playerCore.decreaseVolume,
|
||||
handlePlayMusic: playerCore.handlePlayMusic,
|
||||
playAudio: playerCore.playAudio,
|
||||
handlePause: playerCore.handlePause,
|
||||
checkPlaybackState: playerCore.checkPlaybackState,
|
||||
reparseCurrentSong: playerCore.reparseCurrentSong,
|
||||
|
||||
// ========== 播放列表管理 (Playlist) ==========
|
||||
playList,
|
||||
|
||||
Reference in New Issue
Block a user