YouTube API onPlayerReady永远不会被调用
YouTube API onPlayerReady is Never Getting Called
遵循本教程,我一直在尝试将YouTube API集成到我的网站。具体来说,当按下按钮时,我想以全屏模式播放YouTube上的视频。不幸的是,我甚至不能让教程中给出的代码工作。
我使用Slim标记,所以我添加了一个空的div与播放器的ID作为教程建议
.body
.player
然后我在我的标记
的末尾添加了这个javascript $(document).ready(
function() {
loadYoutubeAPI();
});
应该开始调用这些函数的链
function loadYoutubeAPI() {
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', {
height: '390',
width: '640',
videoId: 'M7lc1UVf-VE',
events: {
'onReady': onPlayerReady,
'onStateChange': onPlayerStateChange
}
});
}
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();
}
然而,调用链在onPlayerReady触发之前停止,我不知道为什么。
从我所看到的,似乎你的问题可能是在玩家div似乎是类玩家,从我可以看到在教程中,它寻找一个div与玩家id。因此,像下面这样的内容可能会起作用:
.body
#player
我对Slim不是很熟悉,所以你可能需要用不同的方式标记。
相关文章:
- 成功回调永远不会被JSONP请求调用
- 动态弹出窗口'通过调用一个永远运行并返回's每个周期后的数据
- 多次调用 javascript 会导致 setInterval 永远不会被清除
- FB.Event.subscribe永远不会被调用
- 初始化后,监视永远不会被调用(ui路由器)
- FB.ui回调未调用/FB.ui流永远发布加载
- jQueryAJAX对MVC控制器的调用永远不会返回
- 阿贾克斯回来了,但动作是“永远不会”.调用
- Form.parse()永远不会在node.js中被调用
- 带有返回json的Ajax调用永远不会成功
- YouTube API onPlayerReady永远不会被调用
- 指令在字段上调用setValidity(false),但是字段的有效性永远不会根据视图而改变
- 远程服务.getdistancemmatrix永远不会被调用(google maps API)
- 从api控制器加载的路由永远不会被调用
- Facebook SDK for Javascript, FB.login()回调不触发(异步调用永远不会得到响应?)
- 反向地理编码:将GPS坐标转换为位置名称的函数调用永远不会执行
- onreadystatechange函数永远不会被调用
- jQueryajax调用永远不会结束(成功和错误回调不会触发)
- reCaptcha 小部件不会过期,过期的回调永远不会被调用
- visual studio 2012 -找出哪些Javascript方法永远不会被调用