flutter_feed_player library

Vertical feed player and series episode player for Flutter.

Layering:

Classes

CachedPlayer
Cached parked player entry for episode binge.
EpisodeAsset
A single CDN / file asset for an episode clip.
EpisodeBoostBadge
"2.0x" badge while long-press boosting.
EpisodeBottomChrome
Bottom series / episode meta + seek bar.
EpisodeCenterControl
Large center play / pause control.
EpisodeCenterPlayIcon
Large center play glyph (non-interactive). Prefer EpisodeCenterControl.
EpisodeCircleIcon
Circular icon button used by EpisodeSideActions.
EpisodeItem
One episode within a series (or a feed clip that points at a series).
EpisodePlaybackStrategy
Series episode binge playback strategy.
EpisodePlayer
Batteries-included episode player: EpisodePlayerView + EpisodePlayerChrome.
EpisodePlayerChrome
Default episode chrome: top bar, side actions, bottom meta/seek, boost badge.
EpisodePlayerController
Controller for the vertical series episode binge player.
EpisodePlayerScope
Access EpisodePlayerViewState / controller from descendant overlays.
EpisodePlayerSlot
Per-page context for custom overlays on EpisodePlayerView.
EpisodePlayerView
Headless vertical episode shell: PageView + PlayerSurface + gestures.
EpisodePlayerViewState
EpisodeSideActions
Right-side episode list / share.
EpisodeTopBar
Back / title / quality / speed row.
FeedActionButton
Circular icon + label used by FeedSideActions.
FeedBottomChrome
Bottom title / tags / CTA / seek bar.
FeedCenterPlayIcon
Large center play glyph (non-interactive).
FeedItem
One card in a vertical recommendation / For You feed.
FeedPlaybackStrategy
Feed (For You) playback strategy — TikTok-style short clip switching.
FeedPlayer
Batteries-included feed player: FeedPlayerView + FeedPlayerChrome.
FeedPlayerChrome
Default feed chrome stack: center play + side actions + bottom meta/seek.
FeedPlayerController
Controller for the vertical recommendation / For You feed player.
FeedPlayerScope
Access FeedPlayerViewState / controller from descendant overlays.
FeedPlayerSlot
Per-page context for custom overlays on FeedPlayerView.
FeedPlayerView
Headless vertical feed shell: PageView + PlayerSurface + gestures.
FeedPlayerViewState
FeedSideActions
Right-side like / share / more column.
HlsQualityUrl
HLS playlist URL helpers.
LandscapeFullscreenButton
Pill button used under a landscape clip and inside the fullscreen stage.
LandscapeFullscreenStage
Landscape playback that fills the screen.
LandscapeSurfaceLayers
Split stack children so the fullscreen chip can sit above gestures.
LandscapeVideoLayout
Geometry for 16:9 and other landscape clips inside a portrait feed.
LockForwardPagePhysics
Blocks scrolling to the next page while the current clip is still cold.
MediaFormat
Detects common stream / file formats from URL extension or asset type.
PlaybackAudio
Process-wide exclusive audio for VideoPlayerControllers.
PlaybackMemory
Device RAM / heap budget for player parking and caches.
PlayerCache
Process-level episode player cache (survives leaving the page briefly).
PlayerFactory
Shared VideoPlayerController construction for feed / episode players.
PlayerSeekBar
Seek bar with a center-out loading beam, progress thumb, and scrub time labels.
PlayerSurface
Stable video surface that keeps the same VideoPlayer instance when promoting a parked controller (avoids black flash / remount).
SeriesInfo
Series metadata for the episode binge player.
VerticalPageRefresh
Pull-to-refresh / pull-up load-more for a vertical full-screen PageView.

Functions

showEpisodeListSheet(BuildContext context) → Future<void>
Modal episode list; jumps via EpisodePlayerScope.animateToEpisode.
showEpisodeQualitySheet(BuildContext context, EpisodePlayerController controller, EpisodeItem episode) → Future<void>
Modal quality picker; applies selection via EpisodePlayerController.setQuality.
showEpisodeSpeedSheet(BuildContext context, EpisodePlayerController controller) → Future<void>
Modal speed picker; applies selection via EpisodePlayerController.setSpeed.

Typedefs

EpisodePlayerOverlayBuilder = Widget Function(BuildContext context, EpisodePlayerSlot slot)
Builds chrome / overlays on top of the video surface for one episode page.
EpisodePlayerShellBuilder = Widget Function(BuildContext context, EpisodePlayerController controller)
Builds the empty / loading / error shell (full screen, no pages yet).
FeedPageLoader = Future<List<FeedItem>> Function(int page)
Loads a page of FeedItems. Return empty list when exhausted.
FeedPlayerOverlayBuilder = Widget Function(BuildContext context, FeedPlayerSlot slot)
Builds chrome / overlays on top of the video surface for one feed page.
FeedPlayerShellBuilder = Widget Function(BuildContext context, FeedPlayerController controller)
Builds the empty / loading / error shell (full screen, no pages yet).
HttpHeadersProvider = Map<String, String> Function({required bool isHls, required String url})
Optional hooks for authenticated / regional CDNs.
SeriesLoader = Future<SeriesInfo> Function(int page)
Supplies series + a page of episodes. Page starts at 1.
UrlTransformer = String Function(String url)