【问题标题】:Youtube frame api - video doesn't play from start (IE + Chrome issue)Youtube frame api - 视频无法从头开始播放(IE + Chrome 问题)
【发布时间】:2013-06-23 12:11:14
【问题描述】:

我对 Youtube 框架 API 有疑问。

我的视频 ID 为 z1gTBVs6zsw。我使用的是默认的 Youtube 示例代码 (here),结果是 (here)。

// 2. This code loads the IFrame Player API code asynchronously.
var tag = document.createElement('script');
tag.src = "//www.youtube.com/iframe_api";
var firstScriptTag = document.getElementsByTagName('script')[0];
firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);

// 3. This function creates an <iframe> (and YouTube player)
//    after the API code downloads.
var player;
function onYouTubeIframeAPIReady() {
  player = new YT.Player('player', {
    height: '390',
    width: '640',
    videoId: 'z1gTBVs6zsw',
    events: {
      'onReady': onPlayerReady,
      'onStateChange': onPlayerStateChange
    }
  });
}

// 4. The API will call this function when the video player is ready.
function onPlayerReady(event) {
  event.target.playVideo();
}

// 5. The API calls this function when the player's state changes.
//    The function indicates that when playing a video (state=1),
var done = false;
function onPlayerStateChange(event) {
  if (event.data == YT.PlayerState.PLAYING && !done) {
    done = true;
  }
}
function stopVideo() {
  player.stopVideo();
}

问题是视频在 IE10/9/8 和 Chrome 中以 4 秒开始。在 Firefox 中没问题。我不知道问题出在哪里。

【问题讨论】:

    标签: api youtube youtube-api frame


    【解决方案1】:

    试试这个:

    1. 从 onYouTubeIframeAPIReady() 中移除 videoId: 'z1gTBVs6zsw'
    2. 将 onPlayerReady() 替换为:

      function onPlayerReady(event) {
          player.loadVideoById("z1gTBVs6zsw");
      }
      

    【讨论】:

      猜你喜欢
      • 2019-07-23
      • 1970-01-01
      • 2011-11-04
      • 2014-10-04
      • 2015-08-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-25
      相关资源
      最近更新 更多