答案 0 :(得分:4)
这不是完美的解决方案,但它有效,
<iframe class="delayed" width="486" height="273" frameborder="0" data-src="__url__" allowfullscreen=""></iframe>
请注意,我使用的是data-src而不是'src'
$(document).ready(function() {
setTimeout(function() {
$('iframe.delayed').attr('src',
$('iframe.delayed').attr('data-src'));
}, 20000);
}
它会在页面加载后20秒加载iframe。 看到我的前叉:http://jsfiddle.net/WswGV/
答案 1 :(得分:1)
最好的方法是使用带有Javascript功能的YouTube.API。
// 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'
});
}
我希望这个帮助
答案 2 :(得分:0)
我认为上面提到的IFrame YouTube API的链接已经过时,但我今天发现了这个链接:
https://developers.google.com/youtube/iframe_api_reference
希望我很久以前就读过这篇文章。
为了从那里的示例中摘录,我建议您检测正在下载并准备好的播放器,然后设置所需秒数的计时器(我认为为20),然后播放视频。< / p>
--- v
答案 3 :(得分:0)
使用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>
答案 4 :(得分:0)
我使用以下功能
jQuery(document).ready(function () {
var frame = jQuery('.embed-responsive iframe');
var src = frame.attr('src');
setTimeout(function(){ frame.attr('src', src+'?autoplay=1'); }, 20000);
});