我和这些人有同样的问题并尝试了所有解决方案:
YouTube API loadVideoById startSeconds not working
Youtube IFrame Player API - Disable Youtube auto resume video where I left off
youtube api iframe loadvideobyid starts video where last one left off
据说这是一个大约3年前修复的Youtube bug,但它仍然不适合我。我尝试以多种方式加载视频:
1-Normal函数调用:
player.loadVideoById(container.data('youtube_id'), 0, 'hd1080');
2对象函数调用:
player.loadVideoById({
videoId: container.data('youtube_id'),
startSeconds: 0,
suggestedQuality: 'hd1080'
});
3-cueVideoById()然后seekTo()(在博客上建议):
player.cueVideoById(container.data('youtube_id'), 0, 'hd1080');
player.seekTo(0);
4 - 停止视频,加载新视频,寻求0(来自另一个StackOverflow答案):
player.stopVideo();
player.loadVideoById(container.data('youtube_id'), 0, 'hd1080');
player.seekTo(0);
无论采用何种方法,Youtube API的startSeconds参数都会被完全忽略,视频会从最后一点恢复。
然而..在浏览器中,如果我打开JavaScript控制台并输入player.seekTo(0)
,那么它正在运行。这是非常令人沮丧的,使用Youtube的确切指示,仍然无法做到它应该做的。
注意:
我可以在加载视频后使用onPlayerStateChange(),然后在加载后手动寻找0,但是当YouTube API应该这样做时,我自己做这件事似乎很愚蠢和烦人。所以我真的想以正确的方式解决这个问题。