播放事件将在videojs中无限循环

Play event is going to infinite loop in videojs

本文关键字:无限循环 videojs 事件 播放      更新时间:2023-09-26

我刚刚做了一个videojs的小例子,它有一个登录事件播放,我正在使用类似play(),pause()的API

var myplayer;
var playCount = 0;
videojs("example_video_1").ready(function(){
      myplayer = this;
      myplayer.on("play", function(){
        playCount++;
        $("#count").text(playCount)
      });
});
$("#test").click(function (){  
    myplayer.pause();
    myplayer.play();
});

问题是,在执行API时,播放事件将进入无限循环。

我可以在触摸设备中发现这个问题,如果我在寻找条形图时启用控制,播放暂停等。所以如果我没有使用组合,我也可以发现这个问题。库内部是否在seek或其他控件中使用这些API?

jsfiddle中的链接实况BUG:

这是视频js事件处理中的一个错误:

https://github.com/videojs/video.js/issues/573<--原始错误

https://github.com/videojs/video.js/issues/620<--关于"为什么"这里的最佳信息

同时,一个解决方法是将任何播放/暂停切换都设置为超时。

$("#test").click(function (){
    myplayer.pause();
    window.setTimeout(function() {myplayer.play();}, 10);
});

这是解决此问题的方法。。。https://github.com/cameront/video.js/commit/ff0b443c285691074f7f01e8d0326ade0f0a6609对于问题/620