Implémentation d'un bouton de lecture / pause personnalisé pour les vidéos YouTube intégrées à l'aide de l'API IFrame Player

Récemment, j'ai travaillé sur un bogue où le suivi GTM était interrompu pour une vidéo YouTube intégrée avec un bouton de lecture personnalisé. En cliquant sur le bouton de lecture, la vidéo jouait parfaitement bien, mais elle n'était pas suivie par GTM. Je n'ai rien trouvé de mal dans le code, j'ai donc fait quelques recherches et j'ai trouvé qu'il était recommandé d'utiliser l'API YouTube IFrame player pour tout bouton de lecture / pause personnalisé, que vous effectuiez un suivi GTM sur votre site Web pages ou pas.
L'API du lecteur IFrame vous permet de contrôler le lecteur YouTube à l'aide de JavaScript. En utilisant les fonctions JavaScript de l'API, vous pouvez:
- Mettre des vidéos en file d'attente pour la lecture
- Lire, mettre en pause ou couper le son de ces vidéos
- Ajuster le volume du lecteur
- Récupérer des informations sur la vidéo en cours de lecture
API YouTube IFrame Player
Pour utiliser l'API, assurez-vous de charger le code de l'API IFrame player de manière asynchrone.
var tag = document.createElement ('script'); tag.src = "https://www.youtube.com/iframe_api"; var firstScriptTag = document.getElementsByTagName ('script') [0]; firstScriptTag.parentNode.insertBefore (tag, firstScriptTag);
Définissez également le paramètre enablejsapi sur 1 dans l'URL src de la balise
<iframe id = "iframe-id" src = "https://www.youtube.com/embed/[19459020—2012?enablejsapi=1" frameborder = "0" >onYouTubeIframeAPIReady – L'API appellera cette fonction lorsque la page aura fini de télécharger le JavaScript pour l'API du lecteur, ce qui vous permettra ensuite d'utiliser l'API sur votre page. Fonction
onYouTubeIframeAPIReady () { player = new YT.Player ('iframe-id', { videoId: 'video-id', événements: { 'onReady': onPlayerReady, 'onStateChange': onPlayerStateChange } }); }'iframe-id' – Valeur de l'attribut id de
onPlayerReady – L'API appellera cette fonction lorsque le lecteur YouTube est prêt. Vous pouvez écrire des événements pour vos boutons personnalisés et effectuer des opérations sur un lecteur YouTube comme la lecture d'une vidéo, la mise en pause d'une vidéo en cours de lecture, etc.
Les opérations suivantes peuvent être effectuées:
player.playVideo ()
player. pauseVideo ()
player.stopVideo ()
player.seekTo ()onPlayerStateChange – L'API appellera la fonction onPlayerStateChange lorsque l'état du joueur change, ce qui peut indiquer que le joueur est lecture, pause, fin, etc. En fonction de l'état du lecteur, vous pouvez effectuer différentes opérations selon vos besoins. Par exemple, vous pouvez afficher un bouton de pause une fois que l'état du lecteur passe à 1, et vous pouvez afficher le bouton de lecture une fois que l'état du lecteur passe à 2.
Les différentes valeurs d'état sont:
-1 – non démarré
0 – terminé
1 – lecture
2 – pause
3 – mise en mémoire tampon
5 – mise en mémoire vidéoSi vous voulez en savoir plus sur les différentes opérations / fonctions fournies par l'API du lecteur IFrame, il y a des détails documentation disponible ici .
Si vous voulez voir un exemple fonctionnel de boutons de lecture / pause personnalisés, cliquez sur ici . Le code de script JavaScript prendra en charge plusieurs vidéos YouTube intégrées. Une fois que vous avez cliqué sur le bouton de lecture, la lecture de la vidéo commencera et son état passera à 1. Une fois que son état passe à 1, ce qui indique que la vidéo est en cours de lecture, l'API appellera la fonction
onPlayerStateChange ()
et rendre visible un bouton de pause personnalisé.Si vous l'ouvrez dans un navigateur Firefox, vous remarquerez que la vidéo est lue sans aucun problème. Mais si vous ouvrez ce lien dans un navigateur Chrome et cliquez sur le bouton de lecture, la vidéo sera lue en sourdine. Cela est dû aux règles de lecture automatique de Chrome. Vous devez d'abord couper le son de la vidéo pour la lire automatiquement. Pour cette raison, j'ai ajouté la ligne
yt_player [index] .mute ();
pour les navigateurs Chrome. Si vous commentez cette ligne, Chrome ne lira pas la vidéo. Reportez-vous au lien ci-dessous,
https://developers.google.com/web/updates/2017/09/autoplay-policy-changesVeuillez ne pas oublier de laisser un commentaire si vous avez des questions ou besoin de plus d'informations à ce sujet.
Source link