代码之家  ›  专栏  ›  技术社区  ›  Gopi

如何刷新JW播放器进行直播?

  •  2
  • Gopi  · 技术社区  · 9 年前

    当前,当流受到攻击时,用户会刷新整个网页。这会增加web服务器的负载,因为必须再次提供页面。

    相反,我希望用户单击“刷新流”按钮,以便JW播放器以相同的实时重新加载/刷新,而不刷新整个页面

    我想通过JSAPI,但我不确定单击“刷新流”按钮时会触发什么JW播放器事件。

    2 回复  |  直到 9 年前
        1
  •  2
  •   emaxsaun    9 年前

    当然,在您的页面上创建如下链接:

    <a href="#" onclick="jwplayer().load('my_stream.m3u8');jwplayer().play();>Refresh Stream</a>
    
        2
  •  0
  •   T. Maxx    4 年前

    我知道,这是一个很古老的问题。但当我遇到与OP相同的问题时,接受的解决方案对我没有帮助。Max提供的答案更好。然而,我是这样做的:

    this.player = jwplayer("...").setup(...);
    let player_url = ... /* data from backend */
    
    ...
    
    this.player.on('buffer', function() {
        debounce = setTimeout(function () {
            this.player.load([{file:player_url}]);
            this.player.play();
        }.bind(this), 10000);
    }.bind(this));
    

    这样,无论发生什么错误,如果玩家尝试重新连接,它将每10秒刷新一次,而用户不会对其进行任何操作。虽然提供的文件url是正确的,但不会抛出错误。

    这仅用于刷新实时流。(我不知道你为什么要在VOD的情况下处理这个问题)

    编辑:接受的答案对我没有帮助的原因是,加载函数不能只使用文件名,而是数组中的一个对象