Hướng dẫn cấu hình jwplayer để video play ở thời điểm đang xem lần trước

Một số bác inbox hỏi em cách làm thế nào để khi user xem video trên tool p2p drive và gphoto thì video sẽ play tại vị trí cuối cùng mà user đó đã xem

Ví dụ: Một user đang xem ở thời điểm 30:05 rồi có việc gì đó user đó không xem tiếp nữa, thì lần sau quay lại xem, thì player sẽ tự động nhảy đến thời điểm 30:05 để user đó xem tiếp

Các làm rất đơn giản như sau

Bước 1: Thêm đoạn code get cookie như dưới đây vào file index.html của tool p2p drive

var $cookie = {
    getItem: function(sKey) {
        return decodeURIComponent(document.cookie.replace(new RegExp("(?:(?:^|.*;)\\s*" + encodeURIComponent(sKey).replace(/[\-\.\+\*]/g, "\\$&") + "\\s*\\=\\s*([^;]*).*$)|^.*$"), "$1")) || null;
    },
    setItem: function(sKey, sValue, vEnd, sPath, sDomain, bSecure) {
        if (!sKey || /^(?:expires|max\-age|path|domain|secure)$/i.test(sKey)) {
            return false;
        }
        var sExpires = "";
        if (vEnd) {
            switch (vEnd.constructor) {
                case Number:
                    sExpires = vEnd === Infinity ? "; expires=Fri, 31 Dec 9999 23:59:59 GMT" : "; max-age=" + vEnd;
                    break;
                case String:
                    sExpires = "; expires=" + vEnd;
                    break;
                case Date:
                    sExpires = "; expires=" + vEnd.toUTCString();
                    break;
            }
        }
        document.cookie = encodeURIComponent(sKey) + "=" + encodeURIComponent(sValue) + sExpires + (sDomain ? "; domain=" + sDomain : "") + (sPath ? "; path=" + sPath : "") + (bSecure ? "; secure" : "");
        return true;
    },
    removeItem: function(sKey, sPath, sDomain) {
        if (!sKey || !this.hasItem(sKey)) {
            return false;
        }
        document.cookie = encodeURIComponent(sKey) + "=; expires=Thu, 01 Jan 1970 00:00:00 GMT" + (sDomain ? "; domain=" + sDomain : "") + (sPath ? "; path=" + sPath : "");
        return true;
    },
    hasItem: function(sKey) {
        return (new RegExp("(?:^|;\\s*)" + encodeURIComponent(sKey).replace(/[\-\.\+\*]/g, "\\$&") + "\\s*\\=")).test(document.cookie);
    },
    keys: /* optional method: you can safely remove it! */ function() {
        var aKeys = document.cookie.replace(/((?:^|\s*;)[^\=]+)(?=;|$)|^\s*|\s*(?:\=[^;]*)?(?:\1|$)/g, "").split(/\s*(?:\=[^;]*)?;\s*/);
        for (var nIdx = 0; nIdx < aKeys.length; nIdx++) {
            aKeys[nIdx] = decodeURIComponent(aKeys[nIdx]);
        }
        return aKeys;
    }
};

Bước 2: Thêm đoạn code dưới đây ngay sau hàm
player.setup(json); trong file index.html

var id = getUrlParameter('id');
player.on('ready', function() {
var cookieData = $cookie.getItem('resumevideodata'+id);
function logMessage(txt){
console.log(txt);
}
if(cookieData) {
var resumeAt = cookieData.split(':')[0];
var videoDur = cookieData.split(':')[1];

if(parseInt(resumeAt) < parseInt(videoDur)) {
player.seek(parseInt(resumeAt));
logMessage('Resuming at ' + resumeAt); //for demo purposes
}
else if(cookieData && !(parseInt(resumeAt) < parseInt(videoDur))) {
logMessage('Video ended last time! Will skip resume behavior'); //for demo purposes
}
}
else {
logMessage('No video resume cookie detected. Refresh page.');
}
});

player.on('time', function(e) {
$cookie.setItem('resumevideodata'
+id , Math.floor(e.position) + ':' + player.getDuration());
});

Thế là xong rồi, bác nào vẫn chưa hiểu, vui lòng index em nhé!