当我在我的网站上为YouTube视频(IFrame API)设置自动播放为true时,它不起作用。所有文档都表示,由于带宽的原因,Apple会禁用ios上的自动播放功能。如何在youtube.com上的iOS上自动播放视频
但是,我发现视频会在iPad上的youtube.com上自动播放(无需单击视频元素)。 YouTube如何运作?很难想象苹果会为YouTube做些特别的事情。
当我在我的网站上为YouTube视频(IFrame API)设置自动播放为true时,它不起作用。所有文档都表示,由于带宽的原因,Apple会禁用ios上的自动播放功能。如何在youtube.com上的iOS上自动播放视频
但是,我发现视频会在iPad上的youtube.com上自动播放(无需单击视频元素)。 YouTube如何运作?很难想象苹果会为YouTube做些特别的事情。
这是不能做到的。由于各种原因(包括但不限于数据使用),Apple不允许自动播放视频。
请参考:
Youtube embedded video: autoplay feature not working in iphone
这不回答问题,它不是重复的。 OP询问为什么自动播放*确实*在iOS上访问youtube.com主页时看起来可行(它也适用于我)。 – mpobrien
看来,YouTube上的团队使用用户的交互的时候水龙头/点击视频按钮授权再现。
请记住,youtube.com是SPA(单页应用程序),所以没有页面重新加载或重定向。
因此,youtube.com没有启用自动播放功能。
那么,他们正在操纵DOM和URL来使它看起来好像在不同的页面之间移动一样? –
是的,用普通的JavaScript和“历史pushState”管理导航。关于自动播放的更多信息请查看:http://stackoverflow.com/questions/29894406/initialize-videojs-from-dummy-element-using-require-js –
我还没有测试过这个,但是您可能可以使用Javascript并调用播放器的播放功能,或者甚至在页面加载时单击元素。
你可以用javascript来做到这一点。
下面是一个例子:
<div class="video-container">
<div id="player"> </div> <!--<iframe width="960" height="720" src="//www.youtube.com/embed/5YptIh_avrM?rel=0&autoplay=1" frameborder="0" allowfullscreen></iframe>-->
</div>
<script>
// 2. This code loads the IFrame Player API code asynchronously.
var tag = document.createElement('script');
tag.src = "https://www.youtube.com/iframe_api";
var firstScriptTag = document.getElementsByTagName('script')[0];
firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
// 3. This function creates an <iframe> (and YouTube player)
// after the API code downloads.
var player;
function onYouTubeIframeAPIReady() {
player = new YT.Player('player', {
height: '720',
width: '960',
videoId: 'YOUR_ID_HERE',
events: {
'onReady': onPlayerReady,
'onStateChange': onPlayerStateChange
}
});
}
// 4. The API will call this function when the video player is ready.
function onPlayerReady(event) {
event.target.playVideo();
event.target.setVolume(20);
}
// 5. The API calls this function when the player's state changes.
// The function indicates that when playing a video (state=1),
// the player should play for six seconds and then stop.
var done = false;
function onPlayerStateChange(event) {
}
function stopVideo() {
player.stopVideo();
}
</script>
经过测试,它在iOS 9.1和Chrome浏览器中无法使用在iOS 9.1 请参阅Aitor AznarÁlvarez关于YouTube如何在其移动版本上做的解答。 – Gumbah
我真的很讨厌ios 9.1 ..谢谢你的评论,在写这篇文章的时候ios还在工作,但那是在“降级”之前。 –
这适用于笔记本电脑/台式机浏览器。在移动iOS浏览器上无法使用。可能会或可能无法在Android上运行。 – mjwunderlich
不重复。 OP询问为什么自动播放功能在iOS上访问youtube.com主页时确实可以正常工作(它也适用于我)。 –