feat(twitch): l'embed ne se charge qu'apres un geste (autoplay)
CI / build-and-test (push) Canceled after 10m52s
CI / build-and-test (push) Canceled after 10m52s
- Methode « touch listener b4 loading the iframe » : l'URL de l'embed Twitch n'est produite qu'apres un premier geste — navigator.userActivation. hasBeenActive a l'arrivee (clic sur un lien = fenetre d'activation de 5 s), sinon pointerdown / keydown / wheel. Le premier chargement de l'iframe tombe donc dans un contexte d'activation utilisateur. - Invite « Touchez pour charger la vidéo » sur /watch et /shorts pendant l'attente (sinon spinner infini sur /watch, cadre noir sur /shorts). - /shorts : pas d'avance auto tant que l'embed n'est pas charge — le flux ne switchait plus d'une video a l'autre sans jamais jouer. - Le nudge (recharge &r=1 au premier geste) est conserve pour les videos montees sans geste (avance auto, arrivee avec activation deja consommee). - Verifs instance locale : 8/8 (arrivee a froid : invite + montage au geste) et 6/6 (arrivee avec activation : montage immediat + recharge unique).
This commit is contained in:
@@ -33,6 +33,15 @@
|
||||
<iframe [src]="url" [title]="current()?.title || 'Short video'" class="absolute inset-0 w-full h-full" frameborder="0" playsinline
|
||||
allow="accelerometer; autoplay; clipboard-write; encrypted-media; fullscreen; gyroscope; picture-in-picture; web-share"
|
||||
allowfullscreen referrerpolicy="origin"></iframe>
|
||||
} @else if (embedWaiting()) {
|
||||
<!-- Embed Twitch en attente d'un geste : le premier chargement de
|
||||
l'iframe doit tomber dans un contexte d'activation utilisateur
|
||||
(méthode « listener b4 loading »). N'importe quel geste sur la
|
||||
page charge la vidéo. -->
|
||||
<div class="absolute inset-0 flex flex-col items-center justify-center gap-3 bg-black text-slate-300" role="status">
|
||||
<svg class="h-12 w-12 text-white/70" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><path d="M8 5v14l11-7z"/></svg>
|
||||
<span class="text-sm">Touchez pour charger la vidéo</span>
|
||||
</div>
|
||||
} @else if (loading()) {
|
||||
<div class="absolute inset-0 flex flex-col gap-3 items-center justify-center bg-black text-slate-400 text-sm">
|
||||
<div class="h-8 w-8 rounded-full border-2 border-slate-600 border-t-red-500 animate-spin" aria-hidden="true"></div>
|
||||
|
||||
Reference in New Issue
Block a user