如何處理「未捕獲(承諾中)DOMException:play() 失敗,因為使用者沒有先與文件互動。」在使用 Chrome 66 的桌面上?
P粉651109397
2023-08-23 19:57:46
<p>我收到錯誤訊息..</p>
<blockquote>
<p>未捕獲(承諾中)DOMException:play() 失敗,因為使用者沒有先與文件互動。 </p>
</blockquote>
<p>..嘗試使用 Chrome 版本 66 在桌面上播放影片時。 </p>
<p>我確實發現一個廣告在網站上自動開始播放,但使用以下 HTML:</p>
<pre class="brush:php;toolbar:false;"><video
title="Advertisement"
webkit-playsinline="true"
playsinline="true"
style="background-color: rgb(0, 0, 0); position: absolute; width: 640px; height: 360px;"
src="http://ds.serving-sys.com/BurstingRes/Site-2500/Type-16/1ff26f6a-aa27-4b30-a264-df2173c79623.mp4"
autoplay=""></video></pre>
<p>繞過Chrome v66 的自動播放攔截器真的很簡單,只需添加<code>webkit-playsinline="true"</code>、<code>playsinline="true"</ code> 和<code <code=""><video></video></code> 元素的>autoplay="" 屬性?這會帶來什麼負面影響嗎? </p>
要在 chrome 66 更新後讓 html 5 元素自動播放,您只需將
muted
屬性新增至 video 元素即可。所以你目前的影片 HTML
只需要
muted="muted"
我相信 chrome 66 更新正在嘗試阻止選項卡在用戶選項卡上產生隨機噪音。這就是為什麼靜音屬性使自動播放再次起作用的原因。