91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

微信小程序怎么使用slider實現音頻進度條

發布時間:2022-06-30 14:17:50 來源:億速云 閱讀:449 作者:iii 欄目:開發技術

這篇文章主要介紹了微信小程序怎么使用slider實現音頻進度條的相關知識,內容詳細易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇微信小程序怎么使用slider實現音頻進度條文章都會有所收獲,下面我們一起來看看吧。

微信小程序的slider組件,效果如圖:

微信小程序怎么使用slider實現音頻進度條

長的跟進度條還是蠻相似的。

下面上代碼 

 slider是進度條,bindchange是slider的拖動事件,playtime 已播放時間,alltime 總時間

<view class='slider'>
    <slider bindchange='sliderChange' activeColor='red' block-size="12" value='{{audioTime}}' />
</view>
<view class='time'>
    {{playtime}} / {{alltime}}
</view>

首先要初始化一個音頻播放器,然后要獲取音頻的總時長duration,然后需要把這個時長轉換成00:00這樣的格式顯示

var _self = this;
var innerAudioContext = this.data.innerAudioContext;
innerAudioContext.onCanplay(() => {
   //初始化duration
  innerAudioContext.duration
  setTimeout(function () {
      //延時獲取音頻真正的duration
      var duration = innerAudioContext.duration;
      var min = parseInt(duration / 60);
      var sec = parseInt(duration % 60);
      if (min.toString().length == 1) {
        min = `0${min}`;
      }
      if (sec.toString().length == 1) {
        sec = `0${sec}`;
      }
      _self.setData({
         audioDuration: duration,
         alltime: `${min}:${sec}`
      });
   }, 1000)
})

下面就是開始播放的時候設置一個定時器,每一秒更新進度條的百分比,顯示當前播放的時間,停止的時候把計時器停止就可以了,這樣播放就完成了

//設置一個計步器
clearInterval(this.data.durationIntval);
    this.data.durationIntval = setInterval(function () {
      //當音頻在播放時執行
      if (_self.data.playing) {
        //獲取音頻的播放時間,進度百分比
        var seek = _self.data.audioSeek;
        var duration = innerAudioContext.duration;
        //當音頻在播放時,每隔一秒音頻播放時間+1,并計算分鐘數與秒數
        var min = parseInt((seek + 1) / 60);
        var sec = parseInt((seek + 1) % 60);
        if (min.toString().length == 1) {
          min = `0${min}`;
        }
        if (sec.toString().length == 1) {
          sec = `0${sec}`;
        }        
        //當進度條完成,停止播放,并重設播放時間和進度條        
        var time = _self.data.audioTime;
        time = parseInt(100 * seek / duration);
        if (time >= 100) {
          innerAudioContext.stop();
          _self.setData({
            audioSeek: 0,
            audioTime: 0,
            audioDuration: duration,
            playing: 0,
            playtime: `00:00`,
          });
          return false;
        } else {
          //正常播放,更改進度信息,更改播放時間信息
          _self.setData({
            audioSeek: seek + 1,
            audioTime: time,
            audioDuration: duration,
            playtime: `${min}:${sec}`
          });
        }
      }
      console.log(_self.data);
    }, 1000);

下面就是要處理進度條的拖動事件,這個就比較簡單了,就是獲取進度條的百分比,轉換成相應的播放時間,跳轉到音頻相應的時間進行播放就可以了

var _self = this;
    //獲取進度條百分比
    var value = e.detail.value;
    _self.setData({
      audioTime: value
    });
    var duration = _self.data.audioDuration;
    //根據進度條百分比及歌曲總時間,計算拖動位置的時間
    value = parseInt(value * duration / 100);
    console.log(value);
    //更改狀態
    _self.setData({
      audioSeek: value
    });
    var innerAudioContext = _self.data.innerAudioContext;
    //調用seek方法跳轉音頻時間
    innerAudioContext.seek(value);
    //播放音頻
    innerAudioContext.play();

關于“微信小程序怎么使用slider實現音頻進度條”這篇文章的內容就介紹到這里,感謝各位的閱讀!相信大家對“微信小程序怎么使用slider實現音頻進度條”知識都有一定的了解,大家如果還想學習更多知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

大化| 绥棱县| 通州市| 涿州市| 平江县| 黎平县| 河东区| 克拉玛依市| 乡宁县| 科技| 宣汉县| 田东县| 华安县| 海盐县| 孝义市| 青铜峡市| 类乌齐县| 英山县| 西城区| 蒙阴县| 沙河市| 景德镇市| 专栏| 鄂尔多斯市| 德昌县| 韩城市| 河曲县| 抚顺市| 万年县| 连江县| 耒阳市| 胶州市| 资兴市| 南靖县| 阿鲁科尔沁旗| 蓝山县| 建湖县| 怀远县| 绍兴市| 阿图什市| 甘泉县|