我正在玩YouTube嵌入视频。我希望播放器在第三秒暂停。代码如下:
playerInstance.on('time', function(x) {
if (x.position === 3){
playerInstance.pause();
}
});
但这并非每次都能奏效。有时它起作用,有时却不起作用。这是完全随机的。为什么?
最佳答案
根据正在播放的媒体类型和挂接到JW播放器实例的其他事件,“onTime”事件每秒会触发多次,并报告到许多小数位。
因此,“位置”极不可能完全是3(这是您实际上在说的:“==”和“===”)。
使用'> ='会更健壮:
playerInstance.on('time', function(x) {
if (x.position >= 3){
playerInstance.pause();
}
});
但是,这将意味着玩家将无法播放超过3秒的内容,因此根据您的要求,您可能还需要包括其他逻辑来满足以下要求:
可能更好的解决方案是将“位置”转换为整数值并进行直接比较。这意味着您不需要逻辑来处理超过暂停点的进度。但是,您将需要逻辑以确保仅在暂停点暂停一次。以下内容可满足此要求:
playerInstance.on('time', function(x){
if(parseInt(x.position,10)===3){
if(!playerInstance["pauseOnce"]){
playerInstance["pauseOnce"]=true;
playerInstance.pause();
}
}else{
playerInstance["pauseOnce"]=false;
}
});
关于youtube - JW Player 7在精确时间暂停,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33662656/