Aliplayer的各種坑


第一大坑 —— 在安卓微信瀏覽器中同層播放是最大的一個坑
 
目標:在安卓的微信瀏覽器上實現這樣的效果
     上面是官方文檔,具體用法我就是贅述了。
     由於我之前是從老版本一直用過來的,之前不支持同層播放。也沒有相關的考慮,現在支持了,我就想着要更新一下現在視頻站點中的插件
於我我一邊開着官方文檔一邊開着我的代碼,先是腳本替換,然后 按要求加入 x5_type, x5_video_position 屬性。
還有css代碼:object-fit: contain !important;    object-position
 
然后愉快的開始測試,結果是黑屏一塊!!!為什么呢?於是我開啟了瘋狂模式,各種屬性各種調發現都不行!!
 
api看了一遍又一遍,下面是阿里給出的同層播放的建議我反正是真心不懂。。。

 
 
我很郁悶。。。但是阿里官網的體驗站在我手機上又是好的。
於是我想辦法把他們代碼下載下來在我本地試,結果也是可以的,后來我按着他們的方式做了一個demo,竟然也可以,於是我開始懷疑dom結果,我的dom結構層次很復雜,然后我在demo中模擬的我dom結果,結果果然不行。。。。總算找到問題了,然后我開始改造,(下面我只記錄比較坑的地方,大家也別太在意細節)
 
1.J_prismPlayer節點的上層div必須包含當前頁上的所有內容。萬萬沒想到不要在視頻區域外是這么個意思。。。。
 
 
但是竟然還是沒完。。。效果是下面這樣的,x5_video_position:'top'  根本沒有什么用一樣,還是在中間
 
然后我開始改樣式了。。。
 
2.樣式方面的問題
根據官方api我把video的樣式改成這樣,結果還是不行,然后又是一頓搗鼓發現還得設置一個高度
於是加了這一行,然后再看,發現竟然達到了預期的效果,然后繼續搗鼓,發現很多東西都不需要
x5_video_position:'top' 去掉   object-fit: contain !important;也可以去掉,當然也是不是完全就沒有用,只是我這里用不着,其它的布局模式還是有可能要用到的。
 
 
第二大坑——ios中需要點擊兩次才能開播的坑

效果就是ios中要點兩下,但是安卓卻正常,給我的感覺點第一下獲取焦點,點第二下才生效一樣,但是阿里的demo又是可以的,當時也是百思不得其解,然后又開始從線上把腳本代理下來搗鼓。。。
還是用的很傻的法子,將配制文件和阿里的改成一模一樣,試了一下竟然是ok的,好這下就好辦了,還原成我自己的,一行一行的刪然后看效果。。。
最終我發現元凶竟然是  showBarTime  這個參數。。。去掉就好了,放上去就不行。。。這下憂傷了總不能干掉吧!需求是要求放一段時間要隱藏進度條的呢!!!去掉就變成一直顯示了。。。
又是一陣的搗鼓,后來發現 controlBarVisibility這個屬性加上改成 always也是可以的,但是showBarTime的屬性就失效了。。。也是一直不顯示,然后查api看這個有哪些屬性一個個的試,
發現改成 click竟然可以!!!
坑爹呀!~又是潛規則。。。
總結:showBarTime 無法單獨使用,因為controlBarVisibility默認是hover,在ios手機上就需要點兩下,要用的時候一定要和controlBarVisibility:"click",一起用,否則就有各種問題。
 
第三大坑——在和app嵌入時點擊播放短暫出現默認封面圖(超low的感覺)

注:這個圖不是alipayer做出來的,是video直接做的,沒有設置 poster封面屬性就這樣了
這個問題在除了app里嵌入webview來做h5開發時會出現以外,其它瀏覽器中都是正常的,不過會有一段時間的黑屏
 
用阿里的播放器做的時候就算你設置了cover這個東西還是會在你點播放的時候出來一會兒(就是上圖這種大大的黑色圈圈中間一個箭頭的圖標)
隨然不影響正常使用但是看起來真的很low
而且我發現阿里的官方demo竟然也是這樣。。。
 
后來我F12查看了一下,阿里在渲染video標簽的時候並沒有把cover屬性里的值帶入到poster中去,所以點開播后到視頻還沒有加載出來這段時間就會出現這種圖標
於是后來我在Aliplayer初始化好了以后直接加了下面這一句就好了
 

這完全可以說是阿里了開發人員在設計的時候把這塊兒漏掉了。。。心塞呀!!!

 目前就想到這三個比較大的坑,先記着,后期發現在再補上來吧!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM