Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

JWPlayer Prevent SKipping forward unless already watched

Tags:

api

jwplayer

seek

I'm using JWPlayer 5.4 and it's setup on the page using the javascript API.

What I'd like to do is make it so that users can fastforward/rewing via the seek bar ONLY if they have already played that part of the video.

So, if a user is watching the video for the first time they can't skip beyond the current position, however they can seek forward and back behind where the video played up until.

I'm struggling with the API onTime events etc. to try and work out the Math to make this work.

Does anyone know how this could be done.

Thanks

like image 389
Rob Avatar asked Sep 08 '11 12:09

Rob


1 Answers

I found this a while back, probably on the JWplayer forum. I think I added a bit about the playlist. So just in case you or others are still looking for an answer, consider adding stuff like:

var maxPlayPosition = 0.0;
var seeking = false;

jwplayer().onTime(function(event) 
{
    if (!seeking) 
    {
        maxPlayPosition = Math.max(event.position, maxPlayPosition); 
    }
})
.onPlaylistItem(function()
{
    maxPlayPosition = 0.0;
})   // consider using only if you have playlists
.onSeek(function (event) 
{
    if (!seeking) 
    {
        if (event.offset > maxPlayPosition) 
        {
            seeking = true;
            setTimeout(function ()
            {  
               jwplayer().seek(maxPlayPosition);
            }, 100);
        }
    } 
    else 
    {
        seeking = false;
    }   
 });
like image 80
mal Avatar answered Nov 15 '22 09:11

mal