最近我在做一個小程序項目,需要在單個頁面里展示大量的視頻列表,但有個頭疼的限制:小程序官方規定,同一個頁面上最多只能放5個 video
組件,超出這個數量,視頻就會加載失敗,根本無法播放。
這個需求可把我難住了。頁面上足足有幾十個視頻,如果真放幾十個 video
標簽,不僅會觸發生效的限制,性能也會卡得沒法看,用戶肯定得吐槽。
我在網上搜了好久,終于看到一位大佬的文章,提到了一個“曲線救國”的妙招——用視頻封面的靜態圖片來代替 video
組件本身。原理其實很簡單,既然小程序限制的是 video
標簽的數量,那我們就不用它來展示,改用 image
組件來顯示視頻的第一幀畫面,用戶點擊某個封面的時候,再動態創建一個 video
組件來播放。
具體怎么做?其實特別簡單,如果你用的也是阿里云OSS(對象存儲)的話,只需要在視頻地址后面拼接上一段處理參數就行了:
?x-oss-process=video/snapshot,t_0,f_jpg
比如你原來的視頻鏈接是:
https://your-bucket.oss-cn-hangzhou.aliyuncs.com/videos/demo.mp4
處理后用作封面的鏈接就是:
https://your-bucket.../demo.mp4?x-oss-process=video/snapshot,t_0,f_jpg