gpt4 book ai didi

javascript - 覆盖YouTube的恢复播放功能?

转载 作者:行者123 更新时间:2023-12-03 06:18:37 25 4
gpt4 key购买 nike

有谁知道如何替代YouTube的“恢复播放”功能?我需要将网站上嵌入的YouTube视频从头开始,而不是从用户上次离开的地方开始。

过去,YouTube上的恢复播放功能仅对20分钟或更长时间的视频有效,但最近几周YouTube似乎已将其应用于所有视频。

我以为我可以将开始时间设置为0秒,或者将播放器初始化后设置为0秒。但这是行不通的。通过任何方法将开始时间设置为0都会使视频从用户上次停止播放的位置继续播放(如果用户已登录YouTube)。

这是我的默认YouTube iframe API代码:

<div id="yt-player"></div>
<script>

var player;
var tag = document.createElement('script');

tag.src = "https://www.youtube.com/iframe_api";

var firstScriptTag = document.getElementsByTagName('script')[0];
firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);

function onYouTubePlayerAPIReady() {
player = new YT.Player("yt-player", {
height: "433",
width: "770",
videoId: "[YOUTUBE_VIDEO_ID]",
playerVars: {
autoplay: 1,
html5: 1,
rel: 0
},
events: {
onReady: onPlayerReady,
onStateChange: onPlayerStateChange
}
})
}

function onPlayerReady(e) {
//...
}

function onPlayerStateChange(e) {
//...
}

</script>

到目前为止,我已经尝试过:

将开始时间设置为0秒
...

playerVars: {
autoplay: 1,
html5: 1,
rel: 0,
start: 0
},

...

在准备好播放器时寻求0秒
function onPlayerReady(e) {
player.seekTo(0);
}

在玩家状态后寻求0秒=正在播放
function onPlayerStateChange(e) {
if(e.data==1)player.seekTo(0);
}

将自动播放设置为false,然后在准备就绪的播放器上调用playVideo()
...

playerVars: {
autoplay: 0,
html5: 1,
rel: 0
},

...

function onPlayerReady(e) {
player.playVideo();
}

以上工作均不起作用(准备好播放器的seekTo有时可以工作,但通常不起作用。播放器将加载到用户的最后一个位置,按照指示将其搜索到0,然后在播放之前跳回到用户的最后一个位置。)也尝试过-1但没有运气)

我能找到的唯一解决方法是将开始时间设置为1秒(或在准备好播放器时将其设置为1秒)。但这显然不是理想的解决方案。

有人有任何建议或知道解决方法吗?谢谢。

最佳答案

您正在思考复杂的方法。
https://youtu.be/Z2Q7jzHCAxM?t=692(随机视频)

现在看最后一部分:
t=692
这是开始播放视频的时间(以秒为单位)。
因此,如果将其更改为:
t=0
它将从头开始。

那么,您如何利用它呢?

var videoId = [YOUTUBE_VIDEO_ID] + "t=0";

videoId: videoId,
playerVars: {
autoplay: 1,
html5: 1,
rel: 0
},

关于javascript - 覆盖YouTube的恢复播放功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39838608/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com