【问题标题】:Controls and loop not working on Youtube video (YouTube API)控件和循环不适用于 Youtube 视频(YouTube API)
【发布时间】:2018-09-25 08:46:10
【问题描述】:

我正在使用 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();
    }

【问题讨论】:

    标签: javascript iframe youtube-api


    【解决方案1】:

    根据您的问题,您不能使用controls 参数来隐藏视频的标题。 来自documentation

    控件

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

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

    对于loop参数:

    循环

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

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

    要显示标题等信息,可以使用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参数。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-10-13
      • 2016-04-12
      • 1970-01-01
      • 2012-03-11
      • 2016-04-02
      • 2018-06-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多