標籤: autoplayhtml
首先朋友問到我這個問題,我也沒有遇到過,因此立即新建了一個html在谷歌瀏覽器中看了一下,果不如其然報了這個錯誤。而後我就去百度了一下,下面貼一下百度到的幾篇文章。前端
後面我又查了一下谷歌的文檔--(權威)考慮到可能有些朋友可能看不到這個連接,下面會大概講述一下文章說的內容web
這篇文章是講自動播放政策變動的,谷歌於2018年4月更改自動播放,就是不讓用了。給出的緣由是Web瀏覽器正在朝着更嚴格的自動播放策略發展,以改善用戶體驗,最大程度地減小安裝廣告攔截器的動機,並減小昂貴和/或受限網絡上的數據消耗。這些更改旨在更好地控制用戶的播放,並使使用合法狀況的發佈者受益。chrome
做爲開發人員,您可能須要在本地更改Chrome自動播放策略的行爲,以根據用戶的參與度來測試您的網站。跨域
您能夠經過使用一個徹底禁用自動播放策略內部開關 用chrome.exe --autoplay-policy=no-user-gesture-required。這樣,您就能夠像測試用戶強烈參與您的網站同樣測試您的網站,而且始終容許播放自動播放功能。promise
您還能夠經過禁用MEI,將自動播放策略應用於Web音頻以及整體MEI最高的站點是否默認爲新用戶播放自動播放,來肯定禁止播放自動播放。這能夠用三個完成內部開關用chrome.exe --disable-features=PreloadMediaEngagementData, MediaEngagementBypassAutoplayPolicies。瀏覽器
一個功能政策使開發人員能夠選擇性地啓用和禁用的各類瀏覽器的功能和API。原點得到自動播放權限後,即可以使用新的自動播放功能策略將該權限委派給跨域iframe。請注意,默認狀況下,同源同源iframe容許自動播放。網絡
``` <!-- Autoplay is allowed. --> <iframe src="https://cross-origin.com/myvideo.html" allow="autoplay"> <!-- Autoplay and Fullscreen are allowed. --> <iframe src="https://cross-origin.com/myvideo.html" allow="autoplay; fullscreen"> ```
禁用自動播放功能策略後,play()不帶用戶手勢的調用將使用NotAllowedErrorDOMException拒絕諾言。而且autoplay屬性也將被忽略。框架
能夠針對售貨亭或無人值守的系統等用例,經過Chrome企業策略更改這種新的自動播放行爲。請查看「 策略列表」幫助頁面,以瞭解如何設置這些與自動播放相關的新企業策略:ide
``` <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> </head> <body> <audio id="bgMusic" controls autoplay loop src="https://webfs.yun.kugou.com/202103042048/2b4e1bcbf20fc681fc0b79afd2c0cbce/G060/M09/00/11/HJQEAFbRRM-AVOSeADxTwivtZiI118.mp3"></audio> </body> <script> var promise = document.querySelector('video').play(); if (promise !== undefined) { promise.then(_ => { // Autoplay started! 這種狀況能夠自動播放(非谷歌的其餘瀏覽器:edge、360) }).catch(error => { // Autoplay was prevented.谷歌和火狐就會阻止播放,能夠顯示一個PLAY按鈕提示用戶點擊後進行播放 }); } </script> </html> ```
若是我寫得有不對的地方,還望各位指出糾正。