我正在使用Youtube Javascript API(iframe版本),我正在使用start
和end
参数才能播放视频的一部分。虽然一切正常,但一旦达到end
,玩家就会停止(正常行为)。但是,再次点击播放时,播放器似乎没有考虑start
选项。它始终从视频开头重新开始播放。但它始终以定义的end
值结束。
<iframe frameborder="0" src="https://www.youtube.com/embed/5lGoQhFb4NM?autoplay=1&autohide=1&modestbranding=1&showinfo=0&controls=0&vq=hd720&rel=0&start=60&end=100" style="width: 100%; height: 400px;"></iframe>
你们有没有想过为什么会这样?
答案 0 :(得分:0)
以下是我能够在原始start
时间重播重播按钮,以及阻止用户滚动到playerVars
的开始/结束范围之外:
function onPlayerStateChange(event) {
var isClip = playerOptions.playerVars.start && playerOptions.playerVars.end;
var start = isClip ? playerOptions.playerVars.start : null;
var end = isClip ? playerOptions.playerVars.end : null;
if (event.data == YT.PlayerState.PLAYING) {
if (isClip) {
var currentTime = event.target.getCurrentTime();
if (currentTime < start || currentTime > end) {
event.target.seekTo(playerOptions.playerVars.start);
}
}
}
}
答案 1 :(得分:0)
我尝试了上述解决方案,但没有成功(错误控制台:“未定义playerOptions”)
但是这个话题YouTube API - Loop video between set start and end times非常重要,我已经能够成功获取重播的开始/结束参数:
<script>
// 5. The API calls this function when the player's state changes.
var done = false;
function onPlayerStateChange(event) {
if (event.data == YT.PlayerState.ENDED) {
var playButton = document.getElementById("play");
playButton.addEventListener("click", function() {
player.loadVideoById({
videoId: videoId,
startSeconds: startSeconds,
endSeconds: endSeconds
});
});
document.getElementById("play").style.cssText = "visibility:visible";
}
}
</script>
说明:以我为例,我使用的是id =“ play”按钮开始播放视频。视频结束时,将#play按钮设置为visible:visible,而click事件使用player.loadVideoById对应参数。 如果您不使用click事件,视频将自动循环播放所需的开始/结束值。
来自Youtube API参考= https://developers.google.com/youtube/iframe_api_reference?hl=fr#Getting_Started