覆盖YouTube的简历回放功能?

时间:2016-10-03 19:00:34

标签: javascript jquery api youtube

有谁知道如何覆盖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();
}

以上工作都没有(玩家准备就绪的搜索有时候工作,但更多时候没有。玩家会在用户的最后位置加载,按照指示寻找0,但然后在之前跳回用户的最后位置回放。我也尝试过-1但没有运气)

我能找到的唯一解决方法是将开始时间设置为1秒(或者在玩家准备就绪时寻求1秒)。但这显然不是一个理想的解决方案。

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

1 个答案:

答案 0 :(得分:0)

你正在考虑复杂化。

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
    },