Depuis la dernière mise à jour de Safari vers la version 11, certaines vidéos ont cessé de fonctionner. Le pire, c'est que parfois, comme une fois sur cinq, cela fonctionne. Je pensais que la raison en était que mon script JS intégrait l'API de Vimeo Player, mais finalement, même le lien incorporé de Vimeo ne fonctionnait pas du tout.
Ainsi, lorsque vous ouvrez une vidéo intégrée dans Safari 11, elle ne démarre pas et se bloque complètement. Vous pouvez le voir en ouvrant i.e. https://player.vimeo.com/video/XXXXXXXX?autoplay=1
Dans le journal de la console, vous pouvez obtenir quelque chose comme:
Unhandled Promise Rejection: NotAllowedError (DOM Exception 35): The request is not allowed by the user agent or the platform in the current context, possibly because the user denied permission.
Vous pouvez ajouter background
URL param à iframe src
:
<iframe src="https://player.vimeo.com/video/XXXXXXXX?autoplay=1&background=1>
Si votre vidéo contient un son, vous pouvez également l'exporter à nouveau sans aucune piste sonore. Alors vous n’avez probablement pas besoin du paramètre background
.
Le problème est que Safari 11 bloque la lecture automatique de toutes les vidéos si elles contiennent du son.
Même lorsque la vidéo, comme dans mon cas, n'a pas de niveau sonore, elle est exportée avec un son sans volume. Vous pouvez voir l’icône sovolume dans la barre d’adresse:
prise en charge iOS: la lecture automatique des vidéos est prise en charge à partir de iOS 10+, mais requiert l'attribut playsinline sur la balise.
Parce que safari n'autorise pas la lecture automatique de toutes les vidéos . Vous pouvez ajouter mousemove
écouteur d'événements. Lorsque la souris se déplace, la lecture de la vidéo commence à se faire . Vous devez ensuite supprimer cet événement.