小程序項(xiàng)目中涉及到視頻功能,需求就是禁止拖動(dòng)進(jìn)度條。但是小程序video并沒有提供一個(gè)屬性用來禁止進(jìn)度條拖動(dòng)

以上是從微信官方論壇中找到的答案,就是說如果想實(shí)現(xiàn)禁止拖動(dòng)進(jìn)度條,要么就是隱藏掉,要么就是自己自定義一個(gè)進(jìn)度條。如果用show-progress=‘{{false}}’,這個(gè)屬性隱藏掉了進(jìn)度條,那video原本自帶的底部控制欄中(播放/暫停 ,進(jìn)度時(shí)間,進(jìn)度條,總時(shí)長,全屏/退出全屏),這些按鈕中,就只剩下全屏/退出全屏了。

開始,我決定自定義進(jìn)度條,但是我發(fā)現(xiàn)video里嵌套的組件,雖說官網(wǎng)給出的是可以使用view,但是只有界面效果,卻觸發(fā)不了view對(duì)應(yīng)的方法,也就是說,我用slider組件自定義了一個(gè)進(jìn)度條,并且禁用,然而不管用。
注意:就是如果你想全部隱藏掉自帶的底部控制欄,就要在video里設(shè)置屬性:controls='{{false}}'。但設(shè)置了這個(gè)屬性,你想設(shè)置視頻封面的圖片的屬性就無效了。

于是乎,幾經(jīng)波折,來回調(diào)試,最終還是決定用video自帶的控制欄,通過在進(jìn)度條位置,設(shè)置一個(gè)遮罩層,再設(shè)置一下透明度,這樣,光標(biāo)點(diǎn)不到進(jìn)度條,就拖動(dòng)不了了。當(dāng)然,這個(gè)遮罩層也是要用<cover-view>
在設(shè)置遮罩層時(shí),還遇到了問題,就是position: relative; opacity:0;無效?。?!
改成這樣::position: absolute;opacity:0;模擬器,安卓手機(jī)上都沒問題,iOS真機(jī)上無效?。?!
但是我發(fā)現(xiàn),將透明度改大一點(diǎn),大于0,iOS上就可以了。
所以,我用

wx.getSystemInfo,來判斷設(shè)備,如果是iOS,那就設(shè)置透明度為0.1,如果是安卓,就為0.
其實(shí)到這里,問題基本解決了,但是還有一點(diǎn)點(diǎn)瑕疵,就是因?yàn)楸A袅吮旧淼目刂茩?,那全?退出全屏的按鈕功能要保留,所以遮罩層不能罩到要用的按鈕,不然就都點(diǎn)擊不了,所以在使用的按鈕上我用view,設(shè)置了一個(gè)跟遮罩層一樣顏色一樣透明度的還補(bǔ)全,這樣從視覺效果上才算是過關(guān)。