|
@@ -58,25 +58,21 @@ export const App: React.FC<Props> = ({
|
|
|
isDesktop,
|
|
isDesktop,
|
|
|
]);
|
|
]);
|
|
|
|
|
|
|
|
- const shouldPlay = isActiveClient(state) && !!state.player.songId;
|
|
|
|
|
- const wasPlaying = useRef<boolean>(false);
|
|
|
|
|
|
|
+ const shouldLoadAudio = isActiveClient(state) && !!state.player.songId;
|
|
|
|
|
+ const didLoadAudio = useRef<boolean>(false);
|
|
|
const [seekTime, setSeekTime] = useState<number>(-1);
|
|
const [seekTime, setSeekTime] = useState<number>(-1);
|
|
|
useEffect(() => {
|
|
useEffect(() => {
|
|
|
- if (shouldPlay && !wasPlaying.current) {
|
|
|
|
|
- wasPlaying.current = true;
|
|
|
|
|
|
|
+ if (shouldLoadAudio && !didLoadAudio.current) {
|
|
|
|
|
+ didLoadAudio.current = true;
|
|
|
setSeekTime(state.player.seekTime === -1 ? state.player.currentTime : state.player.seekTime);
|
|
setSeekTime(state.player.seekTime === -1 ? state.player.currentTime : state.player.seekTime);
|
|
|
- } else if (state.player.seekTime !== -1) {
|
|
|
|
|
- setSeekTime(state.player.seekTime);
|
|
|
|
|
|
|
+ } else if (!shouldLoadAudio && didLoadAudio.current) {
|
|
|
|
|
+ didLoadAudio.current = false;
|
|
|
}
|
|
}
|
|
|
-
|
|
|
|
|
- if (!shouldPlay && wasPlaying.current) {
|
|
|
|
|
- wasPlaying.current = false;
|
|
|
|
|
- }
|
|
|
|
|
- }, [shouldPlay, state.player.currentTime, state.player.seekTime]);
|
|
|
|
|
|
|
+ }, [shouldLoadAudio, state.player.currentTime, state.player.seekTime]);
|
|
|
|
|
|
|
|
return (
|
|
return (
|
|
|
<>
|
|
<>
|
|
|
- {shouldPlay && (
|
|
|
|
|
|
|
+ {shouldLoadAudio && (
|
|
|
<Player
|
|
<Player
|
|
|
src={getSongUrl(state.player.songId as number)}
|
|
src={getSongUrl(state.player.songId as number)}
|
|
|
playing={state.player.playing}
|
|
playing={state.player.playing}
|