59人加入学习
(0人评价)
微信小程序入门与实战--仿网易云音乐

制作完成于2019-09-04,基于微信开发者工具 1.02.1908222

价格 ¥ 420.00
该课程属于 微信小程序 - A计划(永久有效期) 请加入后再学习

在拖动过程中同时改变进度时间以及拖动后无法更新的解决代码

//slider拖动
  change(e) {
    var that = this
    console.log(e)
    var val = e.detail.value
    audioContext.seek(val)
    var current = audioContext.currentTime;//当前时长
    var startTime = this.turnTime(current)
    this.setData({
      val: val,
      start:startTime,
      isControl: true
    })
    setTimeout(() => {
      audioContext.pause()
      audioContext.play()
    }, 10);
  },
  changing(e) {
    var val = e.detail.value
    var startTime = this.turnTime(val)
    this.setData({
      isControl: false,
      start:startTime
    })
  }

 

[展开全文]

课时68,跟着老师敲的代码,检查无误,但是,结果,当拖动过后,左边的开始时间,停在了拖动开始的时候,之后,就没有变化,

用console.log()去输出检查,发现是当change(e)执行之后,手放开的一瞬间,onTimeUpdate()事件就停止了,

然后,发现如果去点一下图片,暂停一下,然后再点一下,播放,onTimeUpdate()会恢复执行,即是先调用一下,pause方法,然后再调用一下,play()方法

因此,尝试在拖动条的触发方法中,seek()方法的后面直接调用两次这个开关方法,结果没有用,

考虑是否调用过快导致,因此,在这个两次调用的外面包裹一个setTimeout()延时,设定延时10毫秒.

然后,问题就解决了.

之后,有在百度搜资料,得到另一个解决方法

在seek()方法后面,来一个setTimeout(),延时设定为10毫秒,然后里面console.log(audio.paused)打印输出这个值就可以了,

根据百度查出来的说法是,wx开发本身的bug所至

[展开全文]

授课教师

SiKi学院老师

课程特色

下载资料(1)
视频(140)

学员动态