@alexander_shabe
So after some experimenting here is a code snippet that I got working that would fire a milestone event once, per each milestone.
var playerCheckInterval;
var mileStones = [1,2,25,50, 75]
function onPlayerStateChange(event) {
if (event.data == YT.PlayerState.PLAYING) {
playerCheckInterval = setInterval(mileStoneCheck, 100);
} else if (event.data == YT.PlayerState.PAUSED) {
clearInterval(playerCheckInterval);
//Send PAUSED Event
} else if (event.data == YT.PlayerState.ENDED ) {
clearInterval(playerCheckInterval);
//Send ENDED Event
}
}
function mileStoneCheck() {
var duration = player.getDuration();
var percComplete = (player.getCurrentTime() / player.getDuration()) * 100;
var ms_len = mileStones.length;
if (ms_len > 0) {
var next_ms = mileStones[0];
if (next_ms <= percComplete) {
mileStones.shift();
console.log("mileStoneCheck", next_ms, percComplete, player.getCurrentTime());
}
}
}
Hope this helps.
Adrian
... View more