我正在使用youtube api iframe,只是使用示例代码。当我发出: player.loadVideoById(“ytidNo1”)正确的视频开始(“ytidNo1”是一个有效的YouTube视频ID)
然后,比方说,10秒后,如果我发出另一个: player.loadVideoById(“ytidNo2”)第二个视频开始播放,但它从最后一个视频播放的位置开始(例如10秒)。
这是最近一天的新行为,我没有更改我的代码。
为了纠正这个问题,我尝试了: player.loadVideoById( “ytidNo1”,0)
然后
player.loadVideoById( “ytidNo2”,0)
并且问题仍然存在。
其他人是否已经或刚刚开始遇到此问题?
答案 0 :(得分:0)
我正在尝试使用官方样本::
重现该问题https://developers.google.com/youtube/iframe_api_reference
停止后,我以相同的方式选择另一个视频,似乎运作良好:<!DOCTYPE html>
<html>
<body>
<!-- 1. The <iframe> (and video player) will replace this <div> tag. -->
<div id="player"></div>
<script>
// 2. This code loads the IFrame Player API code asynchronously.
var tag = document.createElement('script');
tag.src = "//www.youtube.com/iframe_api";
var firstScriptTag = document.getElementsByTagName('script')[0];
firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
// 3. This function creates an <iframe> (and YouTube player)
// after the API code downloads.
var player;
function onYouTubeIframeAPIReady() {
player = new YT.Player('player', {
height: '390',
width: '640',
videoId: 'u1zgFlCw8Aw',
events: {
'onReady': onPlayerReady,
'onStateChange': onPlayerStateChange
}
});
}
// 4. The API will call this function when the video player is ready.
function onPlayerReady(event) {
event.target.playVideo();
}
// 5. The API calls this function when the player's state changes.
// The function indicates that when playing a video (state=1),
// the player should play for six seconds and then stop.
var done = false;
function onPlayerStateChange(event) {
if (event.data == YT.PlayerState.PLAYING && !done) {
setTimeout(stopVideo, 6000);
done = true;
}
}
function stopVideo() {
player.stopVideo();
player.loadVideoById("tYrND5hMY3A");
}
</script>
</body>
</html>
答案 1 :(得分:0)
我也有同样的问题。在我身边玩耍最终让它发挥作用。 我不得不使用seekTo(0); (见吉姆的评论)
有关此问题的更多详细信息。
希望这会有所帮助