diff --git a/jam-ui/src/components/client/JKSessionBackingTrackPlayer.js b/jam-ui/src/components/client/JKSessionBackingTrackPlayer.js index 4bc0c89ae..5fa15c5d9 100644 --- a/jam-ui/src/components/client/JKSessionBackingTrackPlayer.js +++ b/jam-ui/src/components/client/JKSessionBackingTrackPlayer.js @@ -19,6 +19,8 @@ const JKSessionBackingTrackPlayer = ({ const [volume, setVolume] = useState(100); const [currentTime, setCurrentTime] = useState('0:00'); const [duration, setDuration] = useState('0:00'); + const [currentPositionMs, setCurrentPositionMs] = useState(0); + const [durationMs, setDurationMs] = useState(0); const volumeRef = useRef(null); @@ -35,14 +37,17 @@ const JKSessionBackingTrackPlayer = ({ // Initialize player state when opened setIsPlaying(false); setCurrentTime('0:00'); + setCurrentPositionMs(0); // Fetch and set duration immediately when track loads try { - const durationMs = jamClient.SessionGetTracksPlayDurationMs(); - setDuration(formatTime(durationMs)); + const durationInMs = jamClient.SessionGetTracksPlayDurationMs(); + setDurationMs(durationInMs); + setDuration(formatTime(durationInMs)); } catch (error) { console.error('Error fetching track duration:', error); setDuration('0:00'); + setDurationMs(0); } } }, [isOpen, backingTrack, jamClient]); @@ -58,11 +63,13 @@ const JKSessionBackingTrackPlayer = ({ if (!jamClient) return; const positionMs = jamClient.SessionCurrrentPlayPosMs(); - const durationMs = jamClient.SessionGetTracksPlayDurationMs(); + const durationInMs = jamClient.SessionGetTracksPlayDurationMs(); const trackIsPlaying = jamClient.isSessionTrackPlaying(); + setCurrentPositionMs(positionMs); setCurrentTime(formatTime(positionMs)); - setDuration(formatTime(durationMs)); + setDurationMs(durationInMs); + setDuration(formatTime(durationInMs)); // Sync playing state if changed if (trackIsPlaying !== isPlaying) { @@ -103,6 +110,7 @@ const JKSessionBackingTrackPlayer = ({ await jamClient.SessionStopPlay(); setIsPlaying(false); setCurrentTime('0:00'); + setCurrentPositionMs(0); } catch (error) { console.error('Error stopping playback:', error); }