【发布时间】:2012-01-29 23:31:28
【问题描述】:
【问题讨论】:
标签: javascript youtube youtube-api
【问题讨论】:
标签: javascript youtube youtube-api
这不是完美的解决方案,但它有效,
<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/
【讨论】:
最好的方法是使用带有 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'
});
}
希望对你有帮助
【讨论】:
我认为上面指向 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>
【讨论】:
我使用如下函数
jQuery(document).ready(function () {
var frame = jQuery('.embed-responsive iframe');
var src = frame.attr('src');
setTimeout(function(){ frame.attr('src', src+'?autoplay=1'); }, 20000);
});
【讨论】: