TEST12138

TEST12138

长路漫漫,唯心作伴。

前端之視頻自動播放

當我們打開一些視頻網站的時候,我們發現視頻可以自動播放,但是到了我們自己的網站後即使加上 autoplay 或者用 js 方法控制,也是不能自動播放的

<body>
	<video src="1.mp4" autoplay></video>
</body>
<script>
  const vd = document.querySelector('video')
  vd.play()
</script>

打開控制台,會發現報錯了

image
說是用戶還沒有與頁面交互,所以這個方法失敗了
這是因為 chrome 瀏覽器的自動播放策略,其它播放器也大差不差
主要目的是為了改善用戶體驗
要不然你在人多的地方打開一個網站,網站突然發出奇怪的聲音,豈不是當場社死
那麼解決辦法有哪些
自動播放策略裡也說明了

  1. 允許無聲自動播放
  2. iframe
  3. 滿足下面三種條件的任意一種
    1. 用戶在當前域進行了交互
    2. 用戶已經將網站添加到移動端主屏幕或桌面上安裝了 pwa
    3. 在桌面設備上,用戶的媒體參與度超過閾值

這個媒體參與度是什麼呢
這個值越高,瀏覽器就會認為你對這個網站的內容更感興趣,當達到一定值後,就會允許自動播放視頻
chrome 瀏覽器可以打開chrome://media-engagement/來查看

image

左邊是訪問的域名,右邊是參與度的值,數值越高,越有可能自動播放
可是我們的網站沒有那麼高的值,那麼我們怎麼實現自動播放呢

  1. iframe 是父窗口有自動播放的能力了可以傳遞給子窗口,這個肯定不合適
  2. 用戶剛打開網站,怎麼可能已經交互過呢
  3. 移動端添加到主屏幕或者桌面安裝 pwa,這個國內基本沒有
    那麼只剩下兩種方式
  4. 靜音播放,讓用戶手動打開音量
  5. 檢測到不能自動播放,讓用戶點擊播放

我們看看視頻網站都是怎麼做的
我哔哩哔哩值太高,所以換了個電腦來截圖展示
哔哩哔哩是靜音播放
Screenshot_20230709_193824

快手是靜音播放

image

抖音是讓用戶點擊播放

image

好,方法說到這裡,哪種方式自己選擇

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。