【问题标题】:How to resume embedded YouTube video?如何恢复嵌入的 YouTube 视频?
【发布时间】:2017-01-21 00:15:56
【问题描述】:

我使用//www.youtube.com/embed/JDcaMVwCr3c?wmode=opaque&showinfo=0&autoplay=1&controls=0&modestbranding=1&vq=&rel=0 网址在我的网站中嵌入了视频。

现在,如果用户访问该网站,则会播放视频,但如果用户没有观看完整视频并重新加载页面或离开网站并在一段时间后再次返回,那么视频现在正在播放开始。

我想从用户离开的位置恢复视频。与 YouTube 网站一样。

这是 YouTube 通过 API 提供的东西吗?

【问题讨论】:

    标签: javascript php video youtube youtube-iframe-api


    【解决方案1】:

    请参考以下带有注释的示例。

    <html>
    <head>
    </head>
    <body>
        <div id="ytplayer"></div>
        <script>
            // Load the IFrame Player API code asynchronously.
            var tag = document.createElement('script');
            tag.src = "https://www.youtube.com/player_api";
            var firstScriptTag = document.getElementsByTagName('script')[0];
            firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
    
            // Replace the 'ytplayer' element with an <iframe> and
            // YouTube player after the API code downloads.
            var player;
            function onYouTubePlayerAPIReady() {
                player = new YT.Player('ytplayer', {
                    height: '390',
                    width: '640',
                    videoId: 'M7lc1UVf-VE',  // Youtube video ID
                    events: {
                        'onReady': onPlayerReady,
                        'onStateChange': onPlayerStateChange,
                    }
    
                });
    
            }
    
            function onPlayerStateChange() {
                createCookie('ply_time', player.getCurrentTime(), 1);  // Stats like buffer, Pause and play store time in Cookes 
    
            }
    
            function onPlayerReady() {
                player.seekTo(readCookie('ply_time'));  // On ready get ccokies  and start vide from that.
            }
    
            document.unload = function() {                              // On docucment unload set cookie
                createCookie('ply_time', player.getCurrentTime(), 1);
            }
    
            window.onbeforeunload = function() {              // On Window unload set cookie
                createCookie('ply_time', player.getCurrentTime(), 1);
            }
    
    
            /* 
             * Start:-  function to create , read and erase Cookie 
             */
    
            function createCookie(name, value, days) {
                if (days) {
                    var date = new Date();
                    date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
                    var expires = "; expires=" + date.toGMTString();
                }
                else
                    var expires = "";
                document.cookie = name + "=" + value + expires + "; path=/";
            }
    
            function readCookie(name) {
                var nameEQ = name + "=";
                var ca = document.cookie.split(';');
                for (var i = 0; i < ca.length; i++) {
                    var c = ca[i];
                    while (c.charAt(0) == ' ')
                        c = c.substring(1, c.length);
                    if (c.indexOf(nameEQ) == 0)
                        return c.substring(nameEQ.length, c.length);
                }
                return null;
            }
    
            function eraseCookie(name) {
                createCookie(name, "", -1);
            }
    
            /* 
             * End:-  function to create , read and erase Cookie 
             */
    
        </script>    
    </body>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-12-04
      • 2012-06-25
      • 1970-01-01
      • 2022-01-21
      • 2021-05-31
      • 2020-06-16
      相关资源
      最近更新 更多