有没有一种方法可以使用YouTube API播放视频并在视频的某一点暂停它?
有没有一种方法可以使用YouTube API播放视频并在视频的某一点暂停它?
我已修改了来自YouTube播放器API参考的代码,以在一定时间后暂停播放。
该代码通过等待 onPlayerStateChange
事件来工作。当事件触发时,它会检查事件,以查看它是否是 PLAYING
事件。如果是,它将从当前时间( getCurrentTime()
方法)到期望的暂停点的剩余时间进行计算(硬编码为 stopPlayAt
变量)。它设置一个Javascript定时器,等待该差异然后传递API命令以暂停视频。
cueVideoById
命令来实现这一点。//Minimal Example
player.cueVideoById({videoId:String, endSeconds:Number});
player.playVideo();
编辑:上面的示例停止了视频播放。如果您想要暂停它,JavaScript代码需要更多操作。
具体来说,您需要轮询正确的时间。
function checkTime() {
if ( player.getCurrentTime() == finishTime )
player.pauseVideo()
else
setInterval(checkTime, 500);
}
checkTime();
或者使用JS来跟踪时间:
var duration = finishTime - player.getCurrentTime();
player.playVideo()
setInterval("player.pauseVideo();", duration*1000);
YT.PlayerState.BUFFERING
,请参阅 onStateChange 文档)。我编写的代码方式是当播放器状态改变为除 playing 以外的任何状态时,停止计时器将被清除。当状态再次更改为YT.PlayerState.PLAYING
时,计时器将从当前播放位置重新启动,并计算新的超时时间。 - thirdender