UNPKG

videojs-event-tracking

Version:

Track events with VideoJS and keep an eye on performance metrics

48 lines (43 loc) 1.14 kB
/** * Track Seeking Events * During playback, we are tracking how many times a person seeks, and * the position a user has seeked to. * * Example Usage: * player.on('tracking:seek', (e, data) => console.log(data)) * * Data Attributes: * => seekCount: total number of seeks that has occuring during this file * => seekTo: Position, in seconds, that has been seeked to. * * @function SeekTracking * @param {Object} [config={}] * An object of config left to the plugin author to define. */ const SeekTracking = function(config) { const player = this; let seekCount = 0; let locked = true; const reset = function() { seekCount = 0; locked = true; }; player.on('dispose', reset); player.on('loadstart', reset); player.on('ended', reset); player.on('play', () => { locked = false; }); player.on('pause', function() { if (locked || !player.scrubbing()) { return; } const curTime = +player.currentTime().toFixed(0); seekCount++; player.trigger('tracking:seek', { seekCount: +seekCount, seekTo: curTime }); }); }; export default SeekTracking;