2017-08-16 98 views
0

首先,我知道在iOS下的網站上的視頻只能在用戶操作(除非設置了點擊事件)上播放。無法在iOS9(iPad)上啓動的HTML5視頻

我有一個HTML5視頻元素:

<video muted="muted" loop id="js-b2b-video"> 
    <source src="my_video.mp4" type="video/mp4"> 
</video> 

然後,在JS,有聽scroll事件窗口的一段代碼:

$(window).on('scroll', function() { 

    var $video = $('#js-b2b-video'); 

    // Check if the video is in the viewport 
    // and if YES, play it: 
    $video.get(0).play(); 

}); 

上面的代碼在Windows上運行和MacOS - 在Chrome,Edge,Firefox和Safari中。但是,在運行於iOS9(例如iPad 1上)的任何瀏覽器上 - 沒有任何反應,視頻無法啓動。

所以,我試圖模擬點擊:

// Listener 
$('#js-b2b-video').on('click', function() { 

    $(this).get(0).play(); 

}); 

    // Modified scroll listener 
    $(window).on('scroll', function() { 

    var $video = $('#js-b2b-video'); 

    // Check if the video is in the viewport 
    // and if YES, play it: 
    $video.click(); 

}); 

並沒有什麼。打到牆上。

我需要能夠在沒有用戶交互的情況下在iOS上啓動視頻。我錯過了什麼?

PS。點擊(點擊)視頻也不會啓動它。

+1

https://webkit.org/blog/6784/new-video-policies-for-ios/ – CBroe

+0

@CBroe我知道這個網頁。這篇文章介紹了iOS10的變化。這對我的情況有什麼幫助? – lesssugar

+1

它也明確指出,_「在iOS 9上,'

回答

0

就像@CBroe告訴你在他的評論,讀他把鏈接(動機部分):

關於用戶手勢要求的說明:當我們說一個動作必須發生「爲用戶手勢的結果「,我們的意思是,例如,導致調用video.play()的JavaScript必須直接由touchend,click,doubleclick或keydown事件的處理程序產生。因此,button.addEventListener('click',()=> {video.play();})將滿足用戶的手勢要求。 video.addEventListener('canplaythrough',()=> {video.play();})不會。

所以it basicaly說,你不能使用任何事件或用戶的行動開始播放視頻。

那麼你的 '滾動' 事件不能工作^^