Bug 1 — playback stops on navigation: WaveSurfer v7 creates its <audio> element inside the container div. When SongPage unmounts, the container is removed from the DOM, taking the audio element with it and stopping playback. Fix: AudioService owns a persistent hidden <audio> element on document.body and passes it to WaveSurfer via the `media` option. WaveSurfer uses it for playback but does not destroy it on WaveSurfer.destroy(), so audio survives any number of navigations. Bug 2 — stale playhead/duration when opening a new song: initialize() called destroyWaveSurfer() but never reset the store, so the previous song's currentTime, duration, and isPlaying leaked into the new song's load sequence. Fix: reset those three fields in the store immediately after tearing down the old WaveSurfer instance. cleanup() also now resets duration. Bug 3 — excessive console noise on mobile: Remove console.warn from play() (silent return when not ready) and from useWaveform's play() wrapper. Only console.error on actual errors remains. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
12 KiB
12 KiB