最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

小程序視頻或音頻自定義可拖拽進(jìn)度條的示例代碼

 更新時(shí)間:2018年09月30日 09:39:45   作者:lindsaylinxi  
這篇文章主要介紹了小程序視頻或音頻自定義可拖拽進(jìn)度條的示例代碼,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧

小程序原生組件的音頻播放時(shí)并沒有進(jìn)度條的顯示,而此次項(xiàng)目中,鑒于原生的視頻進(jìn)度條樣式太丑,產(chǎn)品要求做一個(gè)可拖拽的進(jìn)度條滿足需求。
視頻和音頻提供的api大致是相似的,可以根據(jù)以下代碼修改為與音頻相關(guān)的進(jìn)度條。

wxml的結(jié)構(gòu)如下:

<video id="myVideo" src="http://wxsnsdy.tc.qq.com/105/20210/snsdyvideodownload?filekey=30280201010421301f0201690402534804102ca905ce620b1241b726bc41dcff44e00204012882540400&bizid=1023&hy=SH&fileparam=302c020101042530230204136ffd93020457e3c4ff02024ef202031e8d7f02030f42400204045a320a0201000400" enable-danmu danmu-btn controls="{{false}}" autoplay='{{true}}' bindtimeupdate="videoUpdate" objectFit="fill"></video>
<view class='process-container'>
  <image src='{{playStates ? "../../assets/image/pause_icon.png" : "../../assets/image/play_icon.png"}}' class='video-controls-icon' bindtap='videoOpreation'></image>
   <view class='slider-container'>
   <slider bindchange="sliderChange" bindchanging="sliderChanging" step="1" value="{{sliderValue}}" backgroundColor="#A8A8A8" activeColor="#FFEE83" block-color="#FFEE83"  />
  </view> 
</view>

data中初始化了sliderValue, updateState, playStates幾個(gè)變量。

 data: {
  sliderValue: 0, //控制進(jìn)度條slider的值,
  updateState: false, //防止視頻播放過程中導(dǎo)致的拖拽失效
  playStates: true //控制播放 & 暫停按鈕的顯示
 },

 onReady: function () {
  this.videoContext = wx.createVideoContext('myVideo');
  this.setData({
   updateState: true
  })
 },

videoUpdate在播放進(jìn)度變化時(shí)觸發(fā),觸發(fā)頻率 250ms 一次。event.detail = {currentTime, duration},currentTime表示當(dāng)前時(shí)間,duration表示總時(shí)長,都以秒為單位。

 videoUpdate(e) {
  if (this.data.updateState) { //判斷拖拽完成后才觸發(fā)更新,避免拖拽失效
   let sliderValue = e.detail.currentTime / e.detail.duration * 100;
   this.setData({
    sliderValue,
    duration: e.detail.duration
   })
  }
 },

進(jìn)度條可拖拽并指定視頻跳轉(zhuǎn)到相應(yīng)的位置

 sliderChanging(e) {
  this.setData({
   updateState: false //拖拽過程中,不允許更新進(jìn)度條
  })
 },
 sliderChange(e) {
  if (this.data.duration) {
   this.videoContext.seek(e.detail.value / 100 * this.data.duration); //完成拖動(dòng)后,計(jì)算對應(yīng)時(shí)間并跳轉(zhuǎn)到指定位置
   this.setData({
    sliderValue: e.detail.value,
    updateState: true //完成拖動(dòng)后允許更新滾動(dòng)條
   })
  }
 },

暫停/播放視頻

 videoOpreation() {
  this.data.playStates ? this.videoContext.pause() : this.videoContext.play();
  this.setData({
   playStates: !this.data.playStates
  })
 },

總結(jié):slider的最大值為100, step的值最小為1,這會導(dǎo)致視頻或音頻播放時(shí)間過長的時(shí)候,slider滑塊移動(dòng)速度很慢,拖拽移動(dòng)的時(shí)間間隔較大,用戶體驗(yàn)差。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 分享Typescript的13個(gè)基礎(chǔ)語法

    分享Typescript的13個(gè)基礎(chǔ)語法

    這篇文章主要分享了Typescript的14個(gè)基礎(chǔ)語法,Typescript可以說是JavaScript的超集,在JS的基礎(chǔ)上新增了許多語法特性,使得類型不再可以隨意轉(zhuǎn)換,能大大減少開發(fā)階段的錯(cuò)誤。
    2021-12-12
  • JavaScript學(xué)習(xí)筆記之DOM操作實(shí)例分析

    JavaScript學(xué)習(xí)筆記之DOM操作實(shí)例分析

    這篇文章主要介紹了JavaScript學(xué)習(xí)筆記之DOM操作,結(jié)合實(shí)例形式分析了javascript針對dom元素的獲取、設(shè)置相關(guān)操作常用函數(shù)使用技巧,需要的朋友可以參考下
    2019-01-01
  • textarea不能通過maxlength屬性來限制字?jǐn)?shù)的解決方法

    textarea不能通過maxlength屬性來限制字?jǐn)?shù)的解決方法

    textarea稱文本域,又稱文本區(qū),其不能通過maxlength屬性來限制字?jǐn)?shù),為此必須尋求其他方法來加以限制以達(dá)到預(yù)設(shè)的需求
    2014-09-09
  • JavaScript中高階函數(shù)的巧妙運(yùn)用

    JavaScript中高階函數(shù)的巧妙運(yùn)用

    JavaScript中的高階函數(shù)是指可以接受其他函數(shù)作為參數(shù)或者返回一個(gè)函數(shù)作為結(jié)果的函數(shù),本文介紹了JS中一些高階函數(shù)的妙用,希望對大家有所幫助
    2023-05-05
  • 微信小程序?qū)崿F(xiàn)星級評價(jià)效果

    微信小程序?qū)崿F(xiàn)星級評價(jià)效果

    這篇文章主要為大家詳細(xì)介紹了微信小程序?qū)崿F(xiàn)星級評價(jià)效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-12-12
  • js 控制圖片大小核心講解

    js 控制圖片大小核心講解

    控制圖片大小的方法有很多,在本文將為大家詳細(xì)介紹下使用js實(shí)現(xiàn)縮放圖片,核心代碼如下,感興趣的朋友可以參考下
    2013-10-10
  • 深入理解 TypeScript Reflect Metadata

    深入理解 TypeScript Reflect Metadata

    這篇文章主要介紹了深入理解 TypeScript Reflect Metadata,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-12-12
  • uniapp監(jiān)聽頁面滾動(dòng)2種常用方法

    uniapp監(jiān)聽頁面滾動(dòng)2種常用方法

    在uni-app中,監(jiān)聽頁面滾動(dòng)可以使用onPageScroll生命周期函數(shù)或@scroll事件監(jiān)聽器,onPageScroll適用于監(jiān)聽整個(gè)頁面的滾動(dòng)事件,而@scroll事件監(jiān)聽器適用于監(jiān)聽特定組件如scroll-view的滾動(dòng),這兩種方法的選擇取決于監(jiān)聽需求的不同,需要的朋友可以參考下
    2024-09-09
  • 基于原生JavaScript實(shí)現(xiàn)SPA單頁應(yīng)用

    基于原生JavaScript實(shí)現(xiàn)SPA單頁應(yīng)用

    單頁Web應(yīng)用?(single?page?web?application,SPA)?,就是只有一張Web頁面的應(yīng)用,是加載單個(gè)HTML?頁面并在用戶與應(yīng)用程序交互時(shí)動(dòng)態(tài)更新該頁面的Web應(yīng)用程序。本文將利用原生JS實(shí)現(xiàn)SPA單頁應(yīng)用,需要的可以參考一下
    2023-03-03
  • js無刷新操作table的行和列

    js無刷新操作table的行和列

    這篇文章主要介紹了js操作table的行和列,無刷新實(shí)現(xiàn),需要的朋友可以參考下
    2014-03-03

最新評論

南城县| 拉孜县| 射洪县| 自贡市| 尚志市| 郑州市| 玉门市| 进贤县| 平罗县| 佛学| 盘锦市| 北海市| 德庆县| 香格里拉县| 尉犁县| 永年县| 普定县| 靖安县| 故城县| 吉隆县| 襄樊市| 邯郸市| 雷山县| 中宁县| 阿城市| 山丹县| 田阳县| 彭山县| 望都县| 开远市| 云霄县| 玉溪市| 哈尔滨市| 怀来县| 肇东市| 青州市| 秭归县| 自治县| 专栏| 郑州市| 临沧市|