【问题标题】:YouTube Javascript embed won't load until page refreshYouTube Javascript 嵌入在页面刷新之前不会加载
【发布时间】:2015-09-26 19:56:26
【问题描述】:

我有一个从 Javascript sn-p 调用的 youtube 视频。该功能允许在单击时选择章节 - 允许用户在不同时间播放视频 (startSeconds) - 视频在刷新页面或随机加载之前不会加载。我第一次加载页面时,没有骰子。控制台中没有显示任何内容,我已经在 Chrome 和 Safari 中对其进行了测试,结果相同。

我的代码:

<div id="player"></div>

<script type="text/javascript">
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('player', {
  width: '800',
  videoId: 'YQY9BZBrZds',
  events: {
    'onStateChange': onPlayerStateChange    
  },
  playerVars:{
    rel: 0,
    wmode: "opaque"
  }         
});
}

function onPlayerStateChange(evt) {
if (evt.data == 0) {
      $('#video_popup').removeClass('hide_pop');
      $('#video_popup').addClass('display_pop');
}
else if (evt.data == -1) {
      $('#video_popup').removeClass('display_pop');
      $('#video_popup').addClass('hide_pop');
}
else {
      $('#video_popup').removeClass('display_pop');
      $('#video_popup').addClass('hide_pop');
 }
 }

function chapter1() {
//player.loadVideoById({'videoId': 'YQY9BZBrZds', 'startSeconds': 0});
  player.cueVideoById('YQY9BZBrZds', 0);
  player.playVideo();
}

function chapter2() {
//player.loadVideoById({'videoId': 'YQY9BZBrZds', 'startSeconds': 22});
player.cueVideoById('YQY9BZBrZds', 22);
player.playVideo();
}

function chapter3() {
//player.loadVideoById({'videoId': 'YQY9BZBrZds', 'startSeconds': 44});
player.cueVideoById('YQY9BZBrZds', 44);
player.playVideo();
}

function chapter4() {
//player.loadVideoById({'videoId': 'YQY9BZBrZds', 'startSeconds': 87});
player.cueVideoById('YQY9BZBrZds', 87);
player.playVideo();
}

function chapter5() {
 //player.loadVideoById({'videoId': 'YQY9BZBrZds', 'startSeconds': 149});
player.cueVideoById('YQY9BZBrZds', 149);
player.playVideo();
}

我的网站: Click here http://design.vast42.com/rcity/redux/

如您所见,在 1 2 3 指令下是视频所在的位置。

我从以前的 S.O. 那里得到了这个代码。帖子/JSBin: Link to source YouTube API loadVideoById startSeconds not working

感谢任何可以提供见解的人!

【问题讨论】:

    标签: javascript jquery youtube embed pageload


    【解决方案1】:

    我认为你不应该使用 cueVideoById。此功能将视频添加到播放器的提示中。但它是同一个视频。

    此函数加载指定视频的缩略图并准备播放器播放视频。

    你应该使用函数 seekTo。它会让你的视频到正确的位置,而不需要重新加载视频。

    寻找视频中的指定时间。如果调用函数时播放器暂停,它将保持暂停状态。如果从其他状态(播放、视频提示等)调用该函数,播放器将播放视频。

    文档:https://developers.google.com/youtube/js_api_reference?hl=en#seekTo

    你的函数应该是这样的:

    function chapter1() {
        player.seekTo(0);
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-11-17
      • 2015-04-28
      • 2020-05-10
      • 2014-02-02
      • 1970-01-01
      • 2013-01-09
      • 2020-04-03
      相关资源
      最近更新 更多