YouTube API-iframe onStateChange события
Я использую iframe YouTube API, и я хочу отслеживать события, например, отправку данных в google analytics, когда пользователь запускает и останавливает видео.
<iframe src="https://www.youtube.com/embed/DjB1OvEYMhY"></iframe>
Я посмотрел https://developers.google.com/youtube/iframe_api_reference?csw=1 и не нашел примера как это сделать. В примере создается iframe и также определяются onReady и onStateChange. Как я могу сделать то же самое, когда у меня есть только iframe на странице?
1 ответов
этот пример прослушивает каждое действие воспроизведения / паузы, которое пользователь делает, используя onPlayerStateChange
С государства, и печатает (записи) них.
однако вам нужно создать свой собственный record
функция, чтобы сделать все, что вы хотите с этими данными.
вам также нужен идентификатор на вашем iframe (#плеер в этом случае) и добавить ?enablejsapi=1 в конце его URL. И конечно, убедитесь, что включите окне iframe с YouTube API-интерфейс.
Примечание
важно объявить API после вашего кода, потому что он называет onYouTubeIframeAPIReady
когда он будет готов.
<!DOCTYPE html>
<html>
<body>
<iframe id="player" src="https://www.youtube.com/embed/DjB1OvEYMhY?enablejsapi=1"></iframe>
<h5>Record of user actions:</h5>
<script>
var player;
function onYouTubeIframeAPIReady() {
player = new YT.Player( 'player', {
events: { 'onStateChange': onPlayerStateChange }
});
}
function onPlayerStateChange(event) {
switch(event.data) {
case 0:
record('video ended');
break;
case 1:
record('video playing from '+player.getCurrentTime());
break;
case 2:
record('video paused at '+player.getCurrentTime());
}
}
function record(str){
var p = document.createElement("p");
p.appendChild(document.createTextNode(str));
document.body.appendChild(p);
}
</script>
<script src="https://www.youtube.com/iframe_api"></script>
</body>
</html>