概述
之前寫過h5内聯視訊,總結了一下當時做微信視訊類h5的心得,随着工作中越來越多的接觸h5,我有了更多的心得與經驗,記下來供以後開發時參考,相信對其他人也有用。
内聯視訊的播放
内聯視訊需要使用者主動觸發才能播放,最常見的是在loading界面之後會有一個按鈕來觸發内聯視訊播放。(網上說的WeixinJSBridgeReady試過了并不管用,因為這個是舊的jssdk,又查到可以用wx.ready()方法,沒有試過。)
白名單機制
微信有一個白名單機制,(付費)加入白名單的域名能夠享有這個特權:安卓端的内聯視訊不需用X5浏覽器渲染就能自動内聯,而且和ios端一模一樣。
是以加入白名單的域名下的h5中的内聯視訊需要删去下面2條屬性:
x5-video-player-type="h5" x5-video-player-fullscreen="true"
另外,XXX.qq.com即qq域名自動無條件加入白名單。
内聯與全屏
雖然說是内聯視訊,但是在安卓X5浏覽器中播放的時候會自動全屏!但是在ios浏覽器中播放的時候不是全屏(會有頂條)。如何去除頂條?方法是在ios浏覽器中啟用全屏,即去掉playsinline屬性使内聯視訊變成全屏視訊(缺點是會有視訊控制條)。
另外,由于在安卓X5浏覽器中播放的時候會自動全屏(加入白名單的域名除外),是以一般H5中的内聯視訊都是全屏并不是“内聯”的,然後在全屏視訊上覆寫一層html元素即可。
多個内聯視訊
在安卓端X5浏覽器中,不支援多個内聯形式的video标簽,一旦有一個内聯形式的video标簽,其它内聯形式的video标簽會自動變成非内聯,甚至會把第一個video标簽變成非内聯。
内聯與音頻
在安卓端X5浏覽器中,如果在播放内聯視訊的同時播放音頻,會自動停止内聯視訊!!!
總結
視訊類H5在安卓端坑太多,使用的時候需謹慎,目前想到如下解決方法:
- 付費進入白名單。
- 使用canvas。
- 使用圖檔和視差模拟簡單視訊。