Skip to navigation

Explore the demo apps

The FastPix Android Player SDK ships two complete, Compose-based demo apps that show its fast-start features working together in screens shaped like real apps. Open them from Demo: Infinite reels and Demo: Shop reels + series on the sample app’s home screen. Both live in the sample app on GitHub.


Infinite reels (Instagram-style)

A full-screen vertical feed that never ends: one video per page, with the next page of reels fetched as the user nears the end. Each reel carries an Instagram-style overlay with a profile picture, name, Follow, an expandable caption, an audio line, and like, comment, share, and more controls on the right.

The app code only binds pool.playerAt(page) to each page and calls pool.setCurrentIndex(page) when the pager settles. Everything that makes it fast comes from the pool’s configuration:

What makes it fastHow
Swipes land on video, not blackFastPixPlayerPool with PrerenderConfig(count = 1, behind = 1)
The next reels are already bufferedPreloadConfig(count = 3, behind = 1)
Swiping back or re-watching plays from diskCacheConfig.enabled()
Start on 250 ms of media, without buffering far aheadBufferConfig.FEED
Each page starts at the quality the last one learnedOne AbrConfig and bandwidth estimate across the pool
No decoder setup on every swipeThe pool’s few players, recycled between pages
Endless feedpool.addToPlaylist(...) as each new page of reels arrives
One analytics view per reel watchedsetAnalyticsConfig(...) on the pool; pre-rendered pages never count

For the recipe behind this screen, see Build video feeds.


Shop reels and series (Flipkart-style)

A shopping home screen: a row of series across the top and a grid of shoppable reels below it that keeps loading as the user scrolls. It combines all three playback shapes:

  • Tap a reel in the grid. The reel feed opens on that reel, and the user can swipe on through the whole endless feed, exactly like the infinite reels demo.
  • Tap a series. The episode plays on top with every episode listed below it. Episodes play on in order, and tapping one jumps to it. This is one FastPixPlayer holding the series as a playlist (setPlaylist), with PrerenderConfig(count = 1) so moving to the next episode shows its first frame at once, and PreloadConfig(count = 2, behind = 1).
  • Nothing plays on the home screen, but it makes the next screen fast. FastPixPreCacher warms the first seconds of the reels and series on screen once scrolling settles, so whatever the user taps starts from disk. It warms with the players’ own cache and AbrConfig settings, so it fetches the rendition they will start on, and it stops while another screen is open. See Pre-cache videos before a player exists.

Things to know about the demos

  • Both demos build every item with PlaylistItem.fastPix(playbackId), so the pre-cacher and the players share one disk cache keyed by asset.
  • Analytics is off unless you set your FastPix Data workspace in local.properties with fastpix.analyticsWorkspace=your-workspace-id.
  • The content is the sample’s public test videos, repeated, served by an in-app stand-in for a backend. Captions, counts, and profile pictures are placeholder data, and likes and follows last only while the screen is open.

What’s next