feat(player): implement dual subtitles, sync offset, and side-by-side comparison viewer - #3158
Open
nutine wants to merge 10 commits into
Open
feat(player): implement dual subtitles, sync offset, and side-by-side comparison viewer#3158nutine wants to merge 10 commits into
nutine wants to merge 10 commits into
Conversation
nutine
force-pushed
the
feat/dual-subtitles
branch
2 times, most recently
from
September 6, 2026 20:43
d5ffc2d to
00450fb
Compare
- Add secondary subtitle track support in CS3IPlayer with out-of-band loading and parsing - Handle Cloudflare WAF on subtitle fetches with Referer and User-Agent headers - Integrate secondary_subtitle_view into phone and TV player layouts - Add hardware vibration utility for haptic feedback
- Add long-press gesture in subtitle selection dialog to pick or clear secondary subtitle - Display ✓ [2nd] badge for active secondary subtitle with haptic feedback - Add settings toggle to always show secondary subtitle
…for secondary subtitles - Support separate delay/offset adjustments for primary and secondary subtitles - Prompt subtitle selection (primary vs secondary) in sync dialog when secondary subtitle is active - Add hold-to-reveal gesture on right 30% of screen to temporarily pause playback and reveal secondary subtitle
- Add full-screen dual subtitles timeline comparison dialog (dialog_dual_subtitles) - Align primary and secondary cues into paired chronological rows via DualSubtitleAdapter - Highlight active cues with progress indicator and allow seeking to any dialogue on tap - Trigger viewer dialog via long-press in the top-right corner of the player
nutine
force-pushed
the
feat/dual-subtitles
branch
from
September 7, 2026 11:18
00450fb to
45a0cdb
Compare
- Add secondary TextRenderer to ExoPlayer RenderersFactory for simultaneous embedded track decoding - Implement applySubtitleSelection to independently route primary and secondary tracks via DefaultTrackSelector - Collect streaming embedded cues into primary and secondary cue lists - Remove embedded origin guard that blocked secondary subtitle selection
…dded track decoding - Add DualDefaultTrackSelector to route secondaryTrackId directly to secondary TextRenderer in selectAllTracks - Match cues by playback position in pushSecondaryCues so secondary embedded subtitles persist when paused - Retain recorded cues across playback states
nutine
force-pushed
the
feat/dual-subtitles
branch
from
September 8, 2026 20:44
7f75e14 to
a549000
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
✓ [2nd]and haptic feedback).DualDefaultTrackSelectorsupporting concurrent playback of embedded video subtitle tracks.Test Plan