【问题标题】:Cannot rewind or go forward after initially seek the video?最初搜索视频后无法后退或前进?
【发布时间】:2017-07-20 09:34:07
【问题描述】:

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

但在那之后我无法倒带或转发视频。因为如果我快进或快退视频从开始的搜索位置开始播放。假设我的搜索位置是从 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);
    });
}

【问题讨论】:

    标签: javascript html jwplayer seekbar seek


    【解决方案1】:

    问题

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

    解决方案

    您需要跳过 5 分钟

    1. 首先获取当前位置:
      • JWPlayer API: jwp.getPosition()
      • HTML5 视频 Web API:jwp.currentTime
    2. 接下来,将偏移时间添加到当前位置:
      • JWPlayer API: jwp.getPosition() + offset

    以下演示使用的是 JWPlayer API:

    1. .getPosition()
    2. .seek()
    3. .addButton()

    与您的原始代码一样,它从偏移量开始。测试视频只有一分钟长,所以所有时间偏移都以秒为单位。

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

    演示

    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>

    【讨论】:

      【解决方案2】:

      在点击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);
           }
        });
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多