Отслеживать продолжительность использования видео на каждую паузу в jquery - PullRequest
0 голосов
/ 13 ноября 2018
var $myVideo = $(".myVideo");
        if ($myVideo.length) {
            var index = 0;
            // Videos managed by video.js
            $.each($myVideo, function () {
                var $this = $(this);

                my.players.push(videojs($this.attr("id"), {controls: true}));

                my.players[index].on("play", function () {
                    if (my.currentVideo !== null) {
                        my.currentVideo.pause();
                    }
                    my.currentVideo = this;
                    my.lastStartTime = new Date();
                    setTimeout(function () {
                        $this.addClass("started");
                    }, 500);
                });
                my.players[index].on("pause", function () {
                    if (!my.exitingSlide) {
                        if (my.currentVideo === this) {
                            my.currentVideo = null;
                        }
                        if ($this.hasClass("started")) {
                           my.trackVideoEvent(this);
                        }
                    }
                });
                my.players[index].on("ended", function () {
                    this.load();
                    $this.removeClass("started");
                });

                index++;
            });           
        }
trackVideoEvent: function(player) {
        var time = my.getSeconds(player),
            clickdata = my.buildclickdata($("#"+player.id()), time);

        if (clickdata === null) { return 0; }

        var jsonString = JSON.stringify(clickdata);
        com.gsk.mt.debug(jsonString);

        var callback = function() { return 0; };
        my.createRecord("Call_clickdata_vod__c", clickdata, callback);
    },

getSeconds: function(video){
        var seconds = 0;
        video = $("#"+video.id()).find("video").get(0);
        if (video.played.length > 1) {
            for(var ii = 1; ii < video.played.length; ii++) {
                seconds += video.played.end(ii) - video.played.start(ii);
            }
        } else if (video.played.length > 0) {
            seconds += video.played.end(0) - video.played.start(0);
        }
        return Math.round(seconds);
    },

Я отслеживаю видео html5 на протяжении всего времени.Если воспроизвести видео и сделать паузу в 2 секунды, я получу продолжительность использования консоли в течение 2 секунд.Снова, если я возобновляю видео в 2 секунды и играю в течение следующих 3 секунд.Я получаю продолжительность использования 5 секунд вместо 3 секунд.Это мой кодМогу ли я передать аргумент getseconds для каждой паузы и вычесть его из полного времени окончания

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...