最初寻找视频后无法倒带或前进?

时间:2017-07-20 09:34:08

标签: javascript html jwplayer seekbar seek

我在开始播放前寻找视频。这工作正常。所有视频在给定和播放的搜索时间后开始播放。那真的很好。

但在此之后我无法快退或转发视频。因为如果我转发或倒带视频从开始搜索位置开始播放。假设我的搜索位置是5分钟,我在第10分钟转发时,视频从我开始搜索的5分钟开始。

我该如何解决这个问题?这是我目前的代码。

jwplayer('myPlayer').setup({
    file: video_url_here,
    image: video_poster_here,
    title: 'Play',
    width: '800',
    height: '500',
    skin: 'glow',
    autostart: 'true',
    primary: 'flash'
});

if(resume_time > 0) {
    jwplayer('myPlayer').onPlay(function() {
        setTimeout(function() {
        jwplayer('myPlayer').seek(resume_time);
        }, 500);
    });
}

2 个答案:

答案 0 :(得分:1)

问题

基本上,无论何时执行代码,它都会将跳过<5分钟

解决方案

您需要跳过 5分钟

  1. 首先获得当前位置:
    • JWPlayer API: jwp.getPosition()
    • HTML5视频网址API:jwp.currentTime
  2. 接下来,将偏移时间添加到当前位置:
    • JWPlayer API: jwp.getPosition() + offset
  3. 以下演示使用JWPlayer API:

    1. .getPosition()
    2. .seek()
    3. .addButton()
    4. 与原始代码一样,它以偏移量开始。测试视频只有一分钟,因此所有时间偏移都是以秒为单位。

      1. 键入或滚动0-60秒
      2. 点击右上角的 Skip 按钮
      3. 请注意,视频会提前从当前位置中输入的秒数。因此,如果 Skip 在输入中单击了19.5并且玩家处于26,则玩家应该前进到45.5。
      4. 演示

        var jwp = jwplayer('botr_xJ7Wcodt_5QOesuLn_div');
        
        jwp.setup({
          file: '//clips.vorwaerts-gmbh.de/big_buck_bunny.mp4',
          title: 'Test Time Offset',
          width: '320',
          height: '180',
          skin: 'glow',
          key: "0H8QSBHQ3gTepr3hHusMAITnanKbD/JxzJYAKaDkZ5zwOSkLOgBqew=="
        });
        
        var offset = 5;
        
        jwp.on('ready', function(event) {
          var now = jwp.getPosition();
          var goTo = offset + now;
          jwp.seek(goTo);
        });
        
        jwp.addButton(
          'https://www.mix96.co.uk/shared/images/sky-news-play-24.png',
          'Skip',
          function() {
            jwp.seek(
              jwp.getPosition() + (parseFloat(document.forms[0].elements[0].value)));
          },
          'skip'
        );
        input {
          font: inherit;
          outline: 3px inset blue;
          width: 5ch;
          margin: 10px 0 0 0
        }
        <script src="//content.jwplatform.com/players/xJ7Wcodt-5QOesuLn.js"></script>
        
        
        <div id='botr_xJ7Wcodt_5QOesuLn_div'></div>
        
        <form>
          <input type='number' min='0' max='60' step='1.5'> Seconds
        </form>

答案 1 :(得分:0)

点击forwardrewind时设置一个变量标记,并在搜索onPlay时检查相同的条件。

var isRewindOrForward = false; // Initial load

// logic for forward and rewind here and reset isRewindOrForward to false again

if(resume_time > 0) {
jwplayer('myPlayer').onPlay(function() {
  if(!isRewindOrForward){
      setTimeout(function() {
      jwplayer('myPlayer').seek(resume_time);
      }, 500);
     }
  });
}