控制和循环不适用于YouTube视频(YouTube API)

时间:2018-09-25 08:46:10

标签: javascript iframe youtube-api

我正在使用YouTube的API在自己的页面上加载YouTube视频。我有'controls': 0'loop': 1,但是视频标题仍然显示,并且在视频播放完成后就不会循环播放。不确定为什么?

代码

    //  Load  IFrame Player API 
    var tag = document.createElement('script');

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

    // Creating iframe
    var player;
    function onYouTubeIframeAPIReady() {
      player = new YT.Player('player', {
        videoId: 'jagIsKF8oVA',        
        playerVars: {'autoplay': 1, 'controls': 0, 'mute' : 1, 'loop': 1, 'rel': 0 },
        events: {
          'onReady': onPlayerReady,
          'onStateChange': onPlayerStateChange
        }
      });
    }

    //  Calls function
    function onPlayerReady(event) {
      event.target.playVideo();
    }

    var done = false;
    function onPlayerStateChange(event) {
      // if (event.data == YT.PlayerState.PLAYING && !done) {
      //   setTimeout(stopVideo, 6000);
      //   done = true;
      // }
    }
    function stopVideo() {
      // player.stopVideo();
    }

1 个答案:

答案 0 :(得分:0)

基于您的问题,您不能使用controls参数隐藏视频的标题。 在documentation中,

  

控件

     

此参数指示视频播放器控件是否为   显示:

     
      
  • controls = 0 –播放器控件不显示在播放器中。
  •   
  • controls = 1(默认)–播放器控件在播放器中显示。
  •   

以及loop参数:

  

循环

     

注意:此参数在AS3播放器和IFrame嵌入中支持有限,可能会加载AS3或HTML5播放器。   当前,loop参数仅在使用时在AS3播放器中起作用   结合播放列表参数。要循环播放单个视频,   将循环参数值设置为1并设置播放列表参数值   到已经在播放器API URL中指定的相同视频ID:

 https://www.youtube.com/v/VIDEO_ID?
     version=3
     &loop=1
     &playlist=VIDEO_ID

要显示诸如标题之类的信息,可以使用showinfo参数:

  

showinfo

     

支持的值为0和1。

     

将参数的值设置为0会导致播放器无法显示   视频开始之前的信息,例如视频标题和上传者   玩。

     

如果播放器正在加载播放列表,并且您明确设置了   参数值设为1,则在加载后,播放器还将显示   播放列表中视频的缩略图。

     

注意:注意:此参数已弃用,在之后将被忽略   2018年9月25日。

即使它说showinfo昨天已过时,我仍在尝试它是否仍在工作。是的,它仍在工作。

function onYouTubeIframeAPIReady() {
  player = new YT.Player('player', {
    videoId: 'jagIsKF8oVA',        
    playerVars: {'autoplay': 1, 'controls': 0, 'mute' : 1, 'loop': 1, 'rel': 0, 'showinfo': 0 },
    events: {
      'onReady': onPlayerReady,
      'onStateChange': onPlayerStateChange
    }
  });
}

如果这行不通,我认为您需要自定义代码以隐藏视频标题,并使用AS3播放器实现loop参数。