diff --git a/com.twin.app.shoptime/src/views/PlayerPanel/PlayerPanel.jsx b/com.twin.app.shoptime/src/views/PlayerPanel/PlayerPanel.jsx index 83d70067..e969152f 100644 --- a/com.twin.app.shoptime/src/views/PlayerPanel/PlayerPanel.jsx +++ b/com.twin.app.shoptime/src/views/PlayerPanel/PlayerPanel.jsx @@ -381,24 +381,22 @@ const PlayerPanel = ({ isTabActivated, panelInfo, isOnTop, spotlightId, ...props }, []); // 재생 중 15초마다 메모리 모니터링 - const lastMemoryLogTimeRef = useRef(0); useEffect(() => { - const mediaState = videoPlayer.current?.getMediaState(); + const memoryLogInterval = setInterval(() => { + const mediaState = videoPlayer.current?.getMediaState(); - // 재생 중인지 확인 (duration > 0이고 paused가 아님) - if (mediaState?.duration > 0 && !mediaState?.paused && currentTime > 0) { - const now = Date.now(); - // 마지막 로그 이후 15초 이상 경과했으면 로깅 - if (now - lastMemoryLogTimeRef.current >= 15000) { + // 재생 중인지 확인 (duration > 0이고 paused가 아님) + if (mediaState?.duration > 0 && !mediaState?.paused && mediaState?.currentTime > 0) { memoryMonitor.current.logMemory('[Video Playing]', { currentTime: (mediaState?.currentTime ?? 0).toFixed(2), duration: (mediaState?.duration ?? 0).toFixed(2), buffered: (mediaState?.proportionLoaded ?? 0).toFixed(2), }); - lastMemoryLogTimeRef.current = now; } - } - }, [currentTime]); + }, 15000); // 15초마다 체크 + + return () => clearInterval(memoryLogInterval); + }, []); // PlayerPanel.jsx의 라인 313-327 useEffect 수정 - detailPanelClosed flag 감지 추가 useEffect(() => {