相关疑难解决方法(0)

加载多个YouTube视频iFrame API

我遇到以下代码的问题,但我不确定问题出在哪里.

在我的母版页上,在javascript中,我有一个数组,用于保存YouTubePlayer我创建的对象列表.我还在这里加载了YouTube API.

我还有(有时几个)YouTube用户控件,其中包含引导模式中的YouTube div.它还包含一个JavaScript,用于将新YouTubePlayer对象推送到母版页js中的数组.最后,在用户控件上,我定义了在bootstrap模式的"显示"和"隐藏"事件上自动启动和停止视频的方法.

最后,为了(希望)解决正在加载的文档和正在加载的YouTube API之间的竞争条件,我设置了两个bool变量(一个用于文档,一个用于API),并在调用initVideos函数之前检查两者是否为true,迭代通过YouTubePlayer对象数组并初始化它们,YT.Player在窗口中设置对象.我认为,部分问题是我无法静态设置window.player1等,因为我从来不知道将加载多少YouTube用户控件.

问题是,每当引导模式的事件发生火灾,YT.Player我从窗口检索对象不包含方法playVideo()pauseVideo().

在我的母版页面上:

$(document).ready(function () {
    window.docReady = true;

    if (window.apiReady)
        initVideos();
});

function onYouTubeIframeAPIReady() {
    window.apiReady = true;

    if (window.docReady)
        initVideos();

    initVideos();
}

function initVideos() {

    if (typeof ytPlayerList === 'undefined')
        return;

    for (var i = 0; i < ytPlayerList.length; i++) {
        var player = ytPlayerList[i];
        var pl = new YT.Player(player.DivId, {
            playerVars: {
                'autoplay': '0',
                'controls': …
Run Code Online (Sandbox Code Playgroud)

javascript webforms youtube-api twitter-bootstrap

17
推荐指数
1
解决办法
4601
查看次数

YouTube API - Firefox/IE为任何"播放器"返回错误"X不是函数".请求

我一直在试图让一个相当简单的YouTube api集成在FF/IE中工作并且到目前为止没有运气.

这听起来像是一个范围问题或者在玩家初始化之前进行的调用,但我尝试过的一切都表明它不是这两件事之一.另外值得注意的是,一切都在(仅)Chrome中完美运行.

// Async api load per YT documentation...
var tag = document.createElement('script');
tag.src = "//www.youtube.com/iframe_api";
var firstScriptTag = document.getElementsByTagName('script')[0];
firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);

// Declare player and set basic functions...
var player

playVideo = function() { player.playVideo(); }
stopVideo = function() { player.stopVideo(); }

// YT Api ready function...
function onYouTubeIframeAPIReady() {
  player = new YT.Player('player', {
    videoId: "TkJcg4bmAYs",
    events: {
      'onStateChange': onPlayerStateChange
    }
  });

  // After player object created, bind popup function to page anchors...
  var popup = $('#video-popup') …
Run Code Online (Sandbox Code Playgroud)

html javascript jquery scope youtube-api

2
推荐指数
1
解决办法
3965
查看次数