我正在尝试与Chrome中的第三方html5视频播放器进行互动。因此,我能够获得有效的参考资料:
document.getElementsByTagName("video")[1]
... readyState
是4,所以它都很好。
我可以成功(并且有预期的结果)致电:
document.getElementsByTagName("video")[1].play();
document.getElementsByTagName("video")[1].pause();
但是当我打电话时:
document.getElementsByTagName("video")[1].currentTime = 500;
...视频冻结,并且它没有前进到新的currentTime
。视频持续时间远远超过500秒,因此它应该能够前进到那个位置。我已尝试过500次以外的其他时间,都有相同的结果。如果我检查currentTime
,那么我刚刚设置的是正确的。但它实际上并没有去那里。此外,我无法再与视频互动。在我尝试设置play()
后,它会忽略对pause()
或currentTime
的任何调用。
之前我致电currentTime
,当我致电play()
时,我收到了这个有效的承诺,其他一切仍然有效:
之后我致电currentTime
,当我致电play()
时,我收到了这个破损的承诺,现在该视频对象无效: < / p>
如果您拥有Hulu帐户,只需在Chrome开发者控制台中尝试,就可以轻松地在任何视频中观察此行为。
编辑:有人向我指出,跳过很多次突破,但跳过一小段距离确实很有效。可能与散布的商业广告有关。
答案 0 :(得分:1)
尝试下面的代码,它会先暂停然后设置你的位置然后再次播放
document.getElementsByTagName("video")[1].pause();
document.getElementsByTagName("video")[1].currentTime = 500;
document.getElementsByTagName("video")[1].play();
答案 1 :(得分:0)
为什么不试试这段代码。
function setTime(tValue) {
// if no video is loaded, this throws an exception
try {
if (tValue == 0) {
video.currentTime = tValue;
}
else {
video.currentTime += tValue;
}
} catch (err) {
// errMessage(err) // show exception
errMessage("Video content might not be loaded");
}
}
答案 2 :(得分:0)
PLS。试试这个:
hv = document.getElementsByTagName("video")[1];
hv.play();
hv.addEventListener('canplay', function() {
this.currentTime = 500;
});