2013-06-21 43 views
25

当我在我的网站上为YouTube视频(IFrame API)设置自动播放为true时,它不起作用。所有文档都表示,由于带宽的原因,Apple会禁用ios上的自动播放功能。如何在youtube.com上的iOS上自动播放视频

但是,我发现视频会在iPad上的youtube.com上自动播放(无需单击视频元素)。 YouTube如何运作?很难想象苹果会为YouTube做些特别的事情。

+0

不重复。 OP询问为什么自动播放功能在iOS上访问youtube.com主页时确实可以正常工作(它也适用于我)。 –

回答

-3

这是不能做到的。由于各种原因(包括但不限于数据使用),Apple不允许自动播放视频。

请参考:

Youtube embedded video: autoplay feature not working in iphone

+4

这不回答问题,它不是重复的。 OP询问为什么自动播放*确实*在iOS上访问youtube.com主页时看起来可行(它也适用于我)。 – mpobrien

4

看来,YouTube上的团队使用用户的交互的时候水龙头/点击视频按钮授权再现。

请记住,youtube.com是SPA(单页应用程序),所以没有页面重新加载或重定向。

因此,youtube.com没有启用自动播放功能。

+0

那么,他们正在操纵DOM和URL来使它看起来好像在不同的页面之间移动一样? –

+2

是的,用普通的JavaScript和“历史pushState”管理导航。关于自动播放的更多信息请查看:http://stackoverflow.com/questions/29894406/initialize-videojs-from-dummy-element-using-require-js –

-2

我还没有测试过这个,但是您可能可以使用Javascript并调用播放器的播放功能,或者甚至在页面加载时单击元素。

2

你可以用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> 
+0

经过测试,它在iOS 9.1和Chrome浏览器中无法使用在iOS 9.1 请参阅Aitor AznarÁlvarez关于YouTube如何在其移动版本上做的解答。 – Gumbah

+0

我真的很讨厌ios 9.1 ..谢谢你的评论,在写这篇文章的时候ios还在工作,但那是在“降级”之前。 –

+0

这适用于笔记本电脑/台式机浏览器。在移动iOS浏览器上无法使用。可能会或可能无法在Android上运行。 – mjwunderlich

相关问题