JavaScript play/pause YouTube iframe 按钮

JavaScript play/pause button for YouTube iframe

我正在一个网站上工作,我正在尝试在 <iframe> 标签中获取一个 YouTube 视频,以便通过一个按钮播放和暂停。我可以用单独的按钮让它播放或暂停,但我似乎无法让 if 语句工作以便只用一个按钮控制视频。 我对 JavaScript 还是比较陌生,所以可能只是我错过了一些简单的东西,但我已经在网上搜索了一段时间,但找不到任何解决我问题的方法。

下面是我现在使用的代码。我第一次点击 YouTube 视频播放按钮,但第二次没有任何反应。 我还尝试为嵌入式视频打开自动播放,但是当我按下按钮时,什么也没有发生。

这是我目前使用的代码:

HTML

<div class="iframe">
  <iframe id="iframe1" width="360" height="203" src="https://www.youtube-nocookie.com/embed/videoseries?list=PLb-Mg8r29XuOV9CbkXVDQ5NdQG__WbJqI&amp;controls=0&amp;showinfo=0&amp;enablejsapi=1" frameborder="0" allowfullscreen></iframe>
  <a href="#" onclick="iframe1play();return false;">
    <div id="iframe1play">
    </div>
  </a>
</div>

JavaScript

function onYouTubePlayerAPIReady() {
    iframe1 = new YT.Player('iframe1');
} 

function iframe1play() {
    if (event.data == YT.PlayerState.PLAYING && !done) {
        iframe1.pauseVideo();
        document.getElementById("iframe1").style.opacity = "0";
    } else {
        iframe1.playVideo();
        document.getElementById("iframe1").style.opacity = "1";
    }   
}

var tag = document.createElement('script');
tag.src = "//www.youtube.com/player_api";
var firstScriptTag = document.getElementsByTagName('script')[0];
firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);

如有任何建议,我们将不胜感激!

也许我不明白你的问题。因为我试过你的代码并且它有效。 我可以看到一个包含 youtube 视频的页面。单击播放按钮时视频开始播放,当我再次单击视频时暂停。那么你的问题是什么。对不起,如果我不使用评论,但我还不能。

好的,主要问题是您的函数中没有事件对象。

这应该可以解决问题

if (player.getPlayerState() == YT.PlayerState.PLAYING) {
        player.pauseVideo();
        document.getElementById("iframe").style.opacity = "0";
    } else {
        player.playVideo();
        document.getElementById("iframe").style.opacity = "1";
    }

使用 jQuery 或其他框架,如果可以的话,将函数注入元素。