Skip to content

Commit 3ffb546

Browse files
committed
Improve player behavior when audio ends
- make sure to render with isPlaying set to false after audio has ended to toggle Play/Pause button - reset time to start
1 parent fbd50b4 commit 3ffb546

File tree

1 file changed

+9
-0
lines changed

1 file changed

+9
-0
lines changed

front/src/hooks/audio/useAudio.ts

+9
Original file line numberDiff line numberDiff line change
@@ -133,15 +133,24 @@ export default function useAudio({
133133
cancelAnimationFrame(timer);
134134
}
135135

136+
const onEnded = () => {
137+
cancelAnimationFrame(timer);
138+
// set this explicitly to toggle button
139+
setIsPlaying(false);
140+
setTime(startTime);
141+
}
142+
136143
current.addEventListener("play", onPlay);
137144
current.addEventListener("pause", onPause);
138145
current.addEventListener("error", onError);
146+
current.addEventListener("ended", onEnded);
139147

140148
return () => {
141149
cancelAnimationFrame(timer);
142150
current.removeEventListener("play", onPlay);
143151
current.removeEventListener("pause", onPause);
144152
current.removeEventListener("error", onError);
153+
current.removeEventListener("ended", onEnded);
145154
};
146155
}, [initialUrl, speed, startTime, loop, volume]);
147156

0 commit comments

Comments
 (0)