如何刷新JW播放器进行直播?
How to refresh JW player for Live streaming?
当前,当流被点击时,用户会刷新整个网页。这会增加 Web 服务器的负载,因为必须再次提供该页面。
相反,我希望用户单击一个按钮 "Refresh Stream",以便 JW 播放器 reloads/refreshes 再次使用相同的直播并且不会刷新整个页面
我想通过 JS API 但我不确定点击 "Refresh Stream" 按钮时触发什么 JW 播放器事件。
当然可以,像这样在您的页面上制作 link:
<a href="#" onclick="jwplayer().load('my_stream.m3u8');jwplayer().play();>Refresh Stream</a>
我知道这是一个很老的问题。但是当我 运行 遇到与 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 的情况下处理这个问题)
编辑:接受的答案对我没有帮助的原因是因为加载函数不适合仅文件名而是数组中的对象
当前,当流被点击时,用户会刷新整个网页。这会增加 Web 服务器的负载,因为必须再次提供该页面。
相反,我希望用户单击一个按钮 "Refresh Stream",以便 JW 播放器 reloads/refreshes 再次使用相同的直播并且不会刷新整个页面
我想通过 JS API 但我不确定点击 "Refresh Stream" 按钮时触发什么 JW 播放器事件。
当然可以,像这样在您的页面上制作 link:
<a href="#" onclick="jwplayer().load('my_stream.m3u8');jwplayer().play();>Refresh Stream</a>
我知道这是一个很老的问题。但是当我 运行 遇到与 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 的情况下处理这个问题)
编辑:接受的答案对我没有帮助的原因是因为加载函数不适合仅文件名而是数组中的对象