我做的时候也是slider出现过抖动,最后现在滑动的时候暂停音乐并且不设置slider的value值,抖动就咩有了
使用slider组件做歌曲进度条,滑动时出现抖动?做了一个音乐进度条的组件processbar: processbar.wxml代码如下: [图片] processbar.js代码如下: // components/processbar.js //得到背景音乐管理器 let bgMusicManager=wx.getBackgroundAudioManager() Component({ /** * 组件的属性列表 */ properties: { }, /** * 组件的初始数据 */ data: { nowTime:"00:00", totalTime:"00:00", maxValue: 0, ctTime:0 //当前进度条的值 }, //生命周期函数 lifetimes:{ //ready:加载页面时触发 ready(){ this.init() //初始化页面 } }, /** * 组件的方法列表 */ methods: { init(){ // 只有在时间更新的事件中才能得到音乐总时长 bgMusicManager.onTimeUpdate(()=>{ //得到总时长(秒数) const tlTime=bgMusicManager.duration //设置总时长 this.setData({ totalTime: this.transToMS(tlTime), maxValue: Math.floor(tlTime) }) // console.log(bgMusicManager.currentTime) //设置当前时长 const t1=Math.floor(bgMusicManager.currentTime) this.setData({ ctTime: t1, nowTime: this.transToMS(t1) }) }) }, //将秒数转换成00:00的形式 transToMS(seconds){ const m=Math.floor(seconds/60); const s=Math.floor(seconds%60); const minute=m<10?("0"+m):(""+m); const second=s<10?("0"+s):(""+s); return minute+":"+second; }, changing(e){ }, changed(e){ //跳转歌曲时间 bgMusicManager.seek(e.detail.value); }, } }) 运行截图: [图片] 现在如果滑动进度条,进度条会出现抖动,我觉得可能是因为在onTimeUpdate()中设置了当前时间,导致出现的抖动,但我不知道如何改代码,把设置当前时间的代码放在哪??求指教!!
2020-08-23