微信小程序填坑 視頻篇

寫了一年小程序,每天接受數萬付費用戶的考驗,踩過小程序的坑數不勝數。先寫一下視頻篇,寫一些會影響到用戶正常看視頻功能和影響業務主體流程的坑。

1.一些低端設備無法播放高清視頻 1080p

需要接入轉碼,提供2種分辨率的視頻。如果檢測到播放高清視頻報錯,自動切入低清視頻。也有可能高清視頻播放不出來,也檢測不到報錯,所以還需要一個按鈕來手動切換標清視頻。問題現象是在有些設備直接播不出來,在有些設備上是有聲音但黑屏無圖像,可能會報一些類似MEDIA_ERR_DECODE(-4003,-1)這樣的報錯。

2.同層渲染問題

小程序video已經支持同層渲染,但是在某些版本微信某些設備上,比如某些三星設備,同層渲染可能失效,導致在視頻上面的按鈕看不到。所以對於一些重要的按鈕功能。可以做一些彩蛋式的操作:比如連續點5下屏幕,觸發切換標清的邏輯。避免按鈕沒顯示出來用戶播放不了視頻也切換不了標清。

3.視頻播放到一半直接調用ended事件

可以加一個檢測,如果調用ended事件的時候,最大播放進度離視頻長度還有一段距離。可以嘗試觸發切換標清的邏輯接着播放。

4.iOS視頻播放黑屏

iOS用戶偶現播放視頻的時候會出現播放不了黑屏,可能會報MEDIA_ERR_NETWORK。這個時候把視頻的鏈接給用戶,直接在微信中播放大概率也播放不了。 這個問題很大程度跟用戶網絡有關係,可以切換網絡或者還原網絡試一下,有時候會生效。比如國外播放我們國內的視頻,就有很多用戶會出現問題。

5.iOS播放結束自動重播不調用ended事件

iOS用戶偶現播放到結束的時候不會調用ended事件,而是會回到開頭,重新播放。對於視頻播放結束之後需要做一些操作的程序,就要做一些特殊的檢測,比如當前的最大進度已經到了視頻長度後,進度又突然變到了0。就可以手動結束視頻播放,調用結束回調函數。

6.視頻卡在最後幾秒鐘

部分Android用戶視頻快結束的時候會一直卡在最後幾秒鐘過不去。針對這種情況,在播放快要結束的時候增加一個定時器。到定時器觸發的時候,視頻還沒有調用ended回調,就手動去調用一下。

7.其他報錯

用戶設備存儲空間剩的很少的時候,視頻播放也有可能會有問題,可能會有MEDIA_ERR_DECODE(-4999,-1)這樣的錯誤,經常出現在一些華爲的機器上。實際上在設備存儲空間很少的時候,小程序的其他很多功能都會受到影響,包括網絡請求,資源下載等。
還有某些時候視頻沒有聲音之類的,可以用重啓大法。

結語

實際填坑的時候根據業務場景可能要考慮的更多,比如拖動進度條之類的會造成的影響之類。
後續還會更新微信小程序其他方面的坑,原則還是隻提供大概思路。

github地址:微信小程序填坑 視頻篇

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章