fix(intro): splash always honors App's decision + video streams 3x lighter
- SplashScreen no longer re-checks neode_intro_seen itself: it silently skipped the whole logo-tap/typing sequence for any browser that had seen the intro before, even when App.vue explicitly requested it (demo fresh visits, Replay Intro). App.vue is the single decision point. - Intro video re-encoded 12.7MB/12.6Mbps → 4.3MB/4.2Mbps (1920x1080 CRF23 faststart, muted track dropped) — visually identical on this illustrated content; cache-buster bumped to v=8. - Video is <link rel=preload>ed the moment the splash is scheduled (the <video> element only mounts ~20s in, so cold caches used to start the download mid-sequence and stutter). - nginx demo cache regex now covers mp4/webm/mp3/webp/woff2 so repeat visits play from browser cache. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -433,6 +433,17 @@ onMounted(async () => {
|
||||
onboardingComplete,
|
||||
replayRequested,
|
||||
})) {
|
||||
// Kick off the intro video download NOW: the splash's <video> element only
|
||||
// mounts ~20s in (after the typing sequence), and on a cold cache the file
|
||||
// would otherwise start fetching mid-sequence and stutter.
|
||||
try {
|
||||
const link = document.createElement('link')
|
||||
link.rel = 'preload'
|
||||
link.as = 'video'
|
||||
link.type = 'video/mp4'
|
||||
link.href = '/assets/video/video-intro.mp4?v=8'
|
||||
document.head.appendChild(link)
|
||||
} catch { /* ignore */ }
|
||||
// Coming from boot screen — show the full splash intro (Enter to Exit → typing → logo)
|
||||
showSplash.value = true
|
||||
} else {
|
||||
|
||||
Reference in New Issue
Block a user