Add video player support to bskyembed with HLS.js

Adds real video playback to the bskyembed iframe embed system:

- Lazy-load the video player using preact/compat lazy/Suspense so hls.js
  and all player code are in a separate chunk, keeping the default bundle small
- Full video controls: play/pause, scrubber, volume, fullscreen, time display
- HLS.js integration with bandwidth estimation and error handling
- GIF presentation support with simplified controls
- Thumbnail + play button shown until user clicks to activate the player
- Ported patterns from the main app's web video player, adapted for
  Preact + Tailwind (no React Native, no ALF, no Lingui)

https://claude.ai/code/session_01Mva57VZnFgdaQ7LPPoVNsP
This commit is contained in:
Claude
2026-02-15 22:07:37 +00:00
parent 06fcea988e
commit 38d8c03f17
4 changed files with 1135 additions and 6 deletions
+1
View File
@@ -12,6 +12,7 @@
},
"dependencies": {
"@atproto/api": "^0.15.25",
"hls.js": "^1.6.2",
"preact": "^10.4.8"
},
"devDependencies": {