开发者

How to seek() then pause() with JWPlayer 5.4

开发者 https://www.devze.com 2023-02-06 18:43 出处:网络
Does anyone know how to get JW PLayer v5.4 (either the Flash rendering or the HTML5 rendering) to pause after a seek() command?

Does anyone know how to get JW PLayer v5.4 (either the Flash rendering or the HTML5 rendering) to pause after a seek() command?

I'm trying to get the video to step 0.01 seconds forward or backward when a user clicks the fine-grain control buttons (or uses the left or right arrow keys). This is so they can snap a framegrab with better precision.

I'm not sure if this is even possible but I've tried a few things with no luck. Such as the following:

var stepTo = jwplayer("video_player").getPosition() + 0.01;

jwplayer("video_player").seek(stepTo).onComplete(function(){
    jwplayer('video_player').pause();
});

And:

jwplayer("video_player").pause().seek(stepTo);

And:

j开发者_StackOverflow中文版wplayer("jwplayer_container").seek(stepTo).pause();

And:

jwplayer("video_player").pause().play().pause();

I've also seen that the 'Shortcuts' plugin has this feature, but that plugin ins't compatible with v5.4 yet.

Thanks for any help.


@AJB -

There's a ticket to add an "onSeek" event scheduled for the 5.6 player. In the meantime, the best way to do this is probably something like this:

jwplayer("video_player").seek(stepTo);

var pauseOnSeek = true;
jwplayer.onTime(function() {
   if (pauseOnSeek) {
      this.pause();
      pauseOnSeek = false;
   }
});

If the onTime() event fires off before the seek is complete, you may be able to hack around it by setting a timeout before defining the onTime() handler.


With JW Player 6, you can do the following to cause the video to pause after seeking:

jwplayer("vidPlayerDiv").onSeek(function () { jwplayer("vidPlayerDiv").pause(); });


This is a little variation on PabloS code:

jwp = var player = jwplayer('target').setup({
    file: '/some-file.mp3'
});

jwp.seek(position);

var pauseOnSeek = true;
jwp.onTime(function () {
    if (jwp.getState() === "PLAYING" && pauseOnSeek) {
        this.pause();
        pauseOnSeek = false;
    }
});

I had to write code that changed source mediafile without starting video from the beginning. I wanted to handle switching video when it was paused. When I used seek and pause in onSeek callback it didn't work because video was still buffering. Pausing in onTime callback like in code above worked like a charm.

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号