~/talk

Building a Video Player from Scratch with React Native

Talkat Voxxed Days Trieste 2024 · on Thursday, 2024-05-30· [react-native]
slides:none on file

Four-year retrospective of a custom React Native video player that scales to a 1.5M-user platform and 300 courses, built on AWS-encoded HLS served via CDN and using React Native Video. Key fixes: forced ExoPlayer (resolved muted audio and buffering after ~8 months and ~100 real-user A/B tests), a subtitle parser + binary search hook for styled, draggable transcripts, and two background-audio approaches (dual-player sync vs React Native Music Control, which proved unmaintained). Android still shows ~10% session crashes on some devices; Firebase Crashlytics used for tracking.

AI-written summary · about

  1. 0:00Introduction
  2. 2:34Introduction
  3. 3:35Project overview
  4. 5:01Video player evolution
  5. 6:46What went well during development
  6. 7:07Streaming infrastructure
  7. 8:31Subtitles and transcripts
  8. 11:58iOS performance
  9. 13:22Android challenges
  10. 14:25Media Player vs ExoPlayer
  11. 16:31Forcing ExoPlayer testing
  12. 18:41Background audio issues
  13. 20:02Syncing two players
  14. 21:26Music Control module
  15. 23:53Music Control maintenance
  16. 24:38iOS vs Android differences
  17. 27:05Android crash rates
  18. 27:47Dependency management lessons
  19. 28:31Costs of many modules
  20. 29:34Removing vs not developing
  21. 30:58Cross-platform challenges
  22. 31:41Action items
  23. 32:21Updating React Native Video to version 6.0
  24. 33:44Q&A
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.