使用js暂停Youtube iframe

时间:2018-03-06 13:53:53

标签: javascript html

我想创建一个按钮,暂停自动播放的YouTube视频。

这是iframe:

<iframe id="music" width="0" height="0" src="https://www.youtube.com/embed/v_FucrYWy3k?rel=1&amp;controls=0&amp;showinfo=0&amp;start=1&autoplay=1&enablejsapi=1" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen></iframe>

这是按钮:

  <button onclick="mute()" type="button" name="button">mute</button>

这就是JS:

function mute(){
  var myVideo =  document.getElementById('music');
  myVideo.pauseVideo();
}

我错过了什么?

2 个答案:

答案 0 :(得分:0)

似乎使用当前的Youtube API,您必须做的不仅仅是将enablejsapi作为get参数添加到嵌入。实际上,您必须包含来自 here 的API脚本,并使用自定义方法。您可以查看以下代码或运行此工作 JSFiddle

<iframe id="music" width="310" height="310" src="https://www.youtube.com/embed/v_FucrYWy3k?rel=1&amp;controls=1&amp;showinfo=0&amp;start=1&autoplay=1&enablejsapi=1" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen></iframe>
<button id='button' type="button" name="button">mute</button>

JS代码:

//create the script for the API and append it to the DOM
var tag = document.createElement('script');
tag.src = 'https://www.youtube.com/iframe_api';
var firstScriptTag = document.getElementsByTagName('script')[0];
firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);

var player;

function onYouTubeIframeAPIReady() {
  player = new YT.Player('music', {
    events: {
      'onReady': onPlayerReady
    }
  });
}

function onPlayerReady(event) {
  document.getElementById('button').addEventListener('click', function() {
    player.pauseVideo();
  })
}

全部在文档 here

答案 1 :(得分:-1)