Youtube延迟自动启动视频
答
它不是完美的解决方案,但它的工作原理,
<iframe class="delayed" width="486" height="273" frameborder="0" data-src="__url__" allowfullscreen=""></iframe>
注意,我用的数据 - src而不是'src'
$(document).ready(function() {
setTimeout(function() {
$('iframe.delayed').attr('src',
$('iframe.delayed').attr('data-src'));
}, 20000);
}
它将在页面加载后20秒加载iframe。 看到我的叉:http://jsfiddle.net/WswGV/
答
到的IFrame的YouTube API上面的链接已经过时了,我想,但这里有一个我今天发现:
https://developers.google.com/youtube/iframe_api_reference
希望我读了很久以前的事。
从这里的例子可以看出,我建议你检测下载和准备好的播放器,然后设置一个计时器达到所需的秒数(我认为你的情况为20),然后播放视频。
--- v
答
使用https://developers.google.com/youtube/iframe_api_reference这个视频会自动启动之前将增加10秒的延迟:
<div id="player"></div>
<script>
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) {
setTimeout(function() {
event.target.playVideo();
}, 10000);
}
function stopVideo() {
player.stopVideo();
}
</script>
答
做到这一点是使用YouTube.API与JavaScript功能的最佳途径。
// Load the IFrame Player API code asynchronously.
setTimeout(function() {
player.playVideo();
}, 20000);
var tag = document.createElement('script');
tag.src = "https://www.youtube.com/player_api";
var firstScriptTag = document.getElementsByTagName('script')[0];
firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
// Replace the 'ytplayer' element with an <iframe> and
// YouTube player after the API code downloads.
var player;
function onYouTubePlayerAPIReady() {
player = new YT.Player('ytplayer', {
height: '315',
width: '560',
videoId: 'I_V_kIzKKqM'
});
}
我希望这帮助
答
我用下面的函数
jQuery(document).ready(function() {
var frame = jQuery('.embed-responsive iframe');
var src = frame.attr('src');
setTimeout(function(){ frame.attr('src', src+'?autoplay=1'); }, 20000);
});
了解不完美:)非常感谢......只是在寻找其他的方式做用JavaScript来模拟20秒后的点击。不要隐藏用户的youtube gui。 – 2011-12-29 15:49:31
@RicardoRodrigues那该怎么办?以autoplay = 0开始并在20秒后用自动播放= 1替换src? – Sang 2011-12-29 15:56:52
感谢您的想法,可以尝试后..现在尝试使用JavaScript来插入iframe,并使用播放事件..可能是最好的解决方案。 您是否尝试用该解决方案替换src?无需刷新dom? – 2011-12-29 16:27:10