javascript - 在 Magnific Popup 中检测 YouTube 视频的结尾

标签 javascript jquery video youtube

如何检测在华丽的弹出窗口中播放的 YouTube 视频的结尾?提供的唯一事件是打开和关闭弹出窗口。是否可以使用来自 YouTube 的 iframe 或 js api 以某种方式使用 onPlayerStateChange === 0 来完成此操作?

我需要触发 javascript 在视频结束时显示一个继续按钮,以便用户可以继续到下一个片段。

最佳答案

http://jsfiddle.net/sjvc_phil/s7432z8L/

  1. 确保包含 youtube iframe api

    <script src="//www.youtube.com/iframe_api"></script>
    
  2. 您需要稍微修改 Magnific Popup iFrame 代码。标记需要在 class="mfp-iframe" 旁边包含 id="player"。这让 YouTube API 知道您要监视哪个视频。您还需要在 ?autoplay=1 参数之后的 youtube url 中添加参数 &enablejsapi=1

  3. 神奇之处在于 Magnific Popup callback .

    callbacks: {
      open: function () {
        new YT.Player('player', {
          events: {
            'onStateChange': onPlayerStateChange
           }
        });
      }
    }
    

    以及视频结束时关闭 Magnific Popup 的功能:

    function onPlayerStateChange(event) {
        if (event.data == YT.PlayerState.ENDED) {
            $.magnificPopup.close();
        }
    }
    

关于javascript - 在 Magnific Popup 中检测 YouTube 视频的结尾,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29993448/

相关文章:

javascript - 表达值

javascript - 将第二个值传递给 promise

jquery - 如何在Tweenmax中连续动画?

javascript - 使用ajax从html输入>日期保存值

视频上传过程和 Amazon S3

javascript - 回调和 AngularJS (ng-click)

javascript - 用 jQuery 替换 href 元素

Android SDK 剪切/修剪视频文件

c++ - 如何使用 FFMPEG 打开文件\实时流使用 openCV 编辑每个帧并将其保存为使用 FFMPEG 文件\实时流编码?

javascript - 创建接管页面