Skip to content

Add native Android Twitch live playback#2

Merged
namecallfilter merged 7 commits into
masterfrom
video-player
Jul 12, 2026
Merged

Add native Android Twitch live playback#2
namecallfilter merged 7 commits into
masterfrom
video-player

Conversation

@namecallfilter

Copy link
Copy Markdown
Owner

Summary

  • Add native Android Twitch HLS playback using Media3 with low-latency buffering, live-edge controls, and latency reporting.
  • Fetch Twitch playback access tokens and construct authorized live playlist URLs.
  • Add a Flutter player screen with playback controls, fullscreen handling, loading/error states, and stream metadata.
  • Open the player from live stream cards in Browse, Following, and category views.
  • Add Kotlin and Flutter tests for latency calculation, playback URL generation, player behavior, navigation, and display mapping.

Testing

  • Not run (PR content generated from the provided diff).

- Fetch Twitch playback tokens and HLS playlist URLs
- Add Media3 low-latency playback with controls and latency metrics
- Open the player from browse and following stream cards
Comment thread lib/features/player/media3_player_view.dart Outdated
Comment thread lib/features/player/media3_player_view.dart
Comment thread lib/features/player/player_screen.dart Outdated
Comment thread lib/features/player/player_screen.dart
- Add manual video quality selection and refreshed viewer counts
- Resume at the live edge and tune low-latency buffering
- Refine playback controls, layout, and lifecycle state handling
Comment thread android/app/src/main/kotlin/com/namecallfilter/flow/TwitchPlayerView.kt Outdated
Comment thread android/app/src/main/kotlin/com/namecallfilter/flow/TwitchPlayerView.kt Outdated
Comment thread lib/features/player/media3_player_controller.dart Outdated
- Parse stitched-ad cues and report pod countdowns to Flutter
- Improve low-latency playlist handling, live-edge jumps, buffering, and retries
- Expand player, API, and browse behavior tests
Comment thread lib/api/twitch_api.dart
Comment thread lib/api/twitch_api.dart Outdated
- Add bounded startup, resume, and jump-to-live correction seeks
- Adjust playback speed from validated Twitch latency and buffer health
- Keep channel playback mounted while browsing and cover the new behavior
Comment thread lib/features/browse/browse_screen.dart
Comment thread lib/features/player/player_screen.dart
Comment thread android/app/src/main/kotlin/com/namecallfilter/flow/TwitchPlayerView.kt Outdated
Comment thread lib/features/player/player_screen.dart Outdated
Comment thread lib/features/player/player_screen.dart Outdated
- Bridge Twitch EMSG metadata into timed ID3 latency samples
- Add buffered partial seeks and hysteresis-based catch-up control
- Preserve stitched-ad latency fallback until primary samples resume
Comment thread lib/features/player/player_screen.dart
- Stabilize low-latency correction and stitched-ad fallback behavior
- Preserve selected quality options when duplicate tracks are deduplicated
- Expand player, playlist, API, and UI test coverage
Comment thread lib/features/player/player_screen.dart Outdated
@namecallfilter namecallfilter merged commit d36aca3 into master Jul 12, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant