You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
fix(subtitle): resolve overlay pause/seek update delays with immediate state sync (#153)
* fix(subtitle): resolve overlay pause/seek update delays with immediate state sync
- Add immediate store updates in PlayerOrchestrator during seek/jumpToCue
- Implement UserSeeking state in PlayerSettingsSaver to prevent conflicts
- Ensure subtitle overlay UI responds instantly to user interactions
- Maintain data consistency during user-initiated time changes
* Update src/renderer/src/pages/player/engine/PlayerOrchestrator.ts
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
* Update src/renderer/src/services/PlayerSettingsSaver.ts
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
* fix(player): resolve seeking event mismatch causing duplicate subtitle jumps
- Add missing mediaClock.startSeeking() call in PlayerOrchestrator.onSeeking()
- Fix SeekEventCoordinator state inconsistency between start/end seeking events
- Eliminate 'Ignoring seeked without active seeking' warnings in console
- Ensure proper event sequence for both paused and playing states
- All 66 player engine tests pass with TypeScript and lint validation
Resolves issue where users needed to press subtitle buttons twice in paused state.
* refactor(player): Use destroyOnHidden instead of destoryOnClose.
* fix(player): prevent SubtitleSyncStrategy from overriding user subtitle jumps
- Lock subtitle state machine for 2 seconds after user subtitle jump
- Prevent SubtitleSyncStrategy from immediately overriding user selection
- Add automatic unlock mechanism to restore normal subtitle sync behavior
- Ensure 'goToNextSubtitle' respects user intent in paused state
- Fix seeking event coordination in PlayerOrchestrator.onSeeking()
Resolves the core issue where clicking to jump to a subtitle would
be immediately overridden by the subtitle sync strategy, requiring
users to click twice to achieve their intended jump.
* fix(subtitle): eliminate subtitle content flickering during jumps
- Add activeCueIndex to PlayerState and StateUpdater interface
- Sync PlayerOrchestrator's activeCueIndex to store on updates
- Modify useSubtitleEngine to prioritize store's activeCueIndex over time-based calculation
- Ensure SubtitleContent component uses authoritative subtitle index
- Fix initial activeCueIndex synchronization on StateUpdater connection
Resolves flickering where subtitle content would briefly show wrong subtitle
before displaying the correct one during user-initiated subtitle jumps.
* fix(subtitle): eliminate subtitle overlay flickering during jumps
- Add smart tolerance mechanism to useSubtitleOverlay shouldShow calculation
- Display overlay when currentTime is within 2 seconds of subtitle start time
- Handles user jump delays while preserving smooth normal playback behavior
- Fixes flickering issue where overlay would briefly hide during subtitle navigation
Closes final flickering issue in subtitle navigation system.
* fix(subtitle): resolve overlay flickering through index priority and data stabilization
- Add stable subtitle data memoization in useSubtitleOverlay to prevent unnecessary re-renders
- Prioritize currentIndex over time-based checks in shouldShow calculation
- Reorder PlayerOrchestrator lock sequence to ensure SubtitleLockFSM is active during updateContext
- Implement granular dependency tracking for subtitle content changes
---------
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
0 commit comments