欢迎来到258分享网,纯净的网络源码分享基地!

258资源分享网

全部作品
全部作品
网站源码
微信源码
素材特效
源码插件
视频教程
建站学院
热门搜索: 织梦  农业种植  农业  安全设置  官方
258资源分享 > 建站学院 > 微信开发 > 微信小程序this报错,后台音乐播放注意事项

推荐下载

HTML5响应式自适应网咯设计

2020-05-12   浏览:740

高端HTML5响应式企业通用网

2020-05-06   浏览:521

html5响应式外贸网站英文版

2020-05-08   浏览:510

HTML5自适应律师工作室类网

2020-04-04   浏览:504

HTML5影视传媒文化公司类网

2020-05-12   浏览:500

微信小程序this报错,后台音乐播放注意事项

发布时间:2020-11-27  
一:this报错

1、报错this.getUserInfo(this.setData) is not a function;at pages/index/index onShow function;at api request success callback function 
TypeError: this.getUserInfo is not a function

在回调结果里调用这个页面的函数 this.fun() 或者 this.setData 时就会报错,这时要在函数一开时的地方使用var that = this;,然后使用that调用数据。

这里的this指向的就是请求本身了如( wx.request ),而不是这个页面!!!

 

onLoad:function(options){

this.login();

},

 

login:function(){

var that = this;// 这个地方非常重要,重置data{}里数据时候setData方法的this应为以及函数的this, 如果在下方的sucess直接写this就变成了wx.request()的this了

wx.login({

success: function (res) {

if (res.code) {

//发起网络请求

wx.request({

url: 'https://applet.ech-med.com/appwx/getAppToken',

data: {

code: res.code

},

success: function (re) {

console.log(re);that.getUserInfo();

         that.setData({ });//如果在sucess直接写this就变成了wx.request()的this了.必须为getdata函数的this,不然无法重置调用函数

}

})

} else {

console.log('获取用户登录态失败!' + res.errMsg)

}

}

})

},

 

getUserInfo: function () {

console.log("获取用户信息")

},

 

二:后台音乐播放注意事项

分享者:默识,来自原文地址

wx.seekBackgroundAudio(OBJECT)

作用:控制音乐播放进度。

注意: 该事件 会触发 wx.onBackgroundAudioPlay(CALLBACK) 事件 ,也就是相当于在调整进度后,后台会自动的调用wx.playBackgroundAudio(OBJECT)函数。

使用 audio组件 制作的播放器,即使点击"显示在微信顶部",音乐依然会停止,使用 wx.playBackgroundAudio 相关API制作的播放器才不会。

wx.playBackgroundAudio(OBJECT),wx.pauseBackgroundAudio(),wx.seekBackgroundAudio(OBJECT),wx.stopBackgroundAudio()

注意:上述四个操作都是 异步操作,都可以设置OBJECT参数,都有 success , fail , complete 回调 ,参照wx.playBackgroundAudio(OBJECT) 的 OBJECT说明,OBJECT说明

后台播放音乐暂停后怎么从上次播放的地方继续播放?

使用 seekBackgroundAudio。

官网并没有相关解释,初步思路是使用 playBackgroundAudio 播放音乐后,再调用 seekBackgroundAudio 将进度调整到上次停止的地方,但是由上面的第一条所描述,这样做的结果会导致onBackgroundAudioPlay 会被触发两次,所以我们可以直接调用seekBackgroundAudio调整播放进度即可(前提是之前有播放过歌曲,就是确保歌曲地址已经被设置,不然无效),随后音乐会自动播放.

使用 playBackgroundAudio

经测试调用playBackgroundAudio,并且传入的歌曲地址参数和上次相同时,歌曲会从上次暂停的时间位置继续播放

wx.stopBackgroundAudio

注意:经测试,再调用 wx.stopBackgroundAudio 函数之后,紧接着调用 wx.playBackgroundAudio ,在pc端模拟测试时正常,后台会停止播放音乐,然后再播放新的音乐,但是,在手机上却会打断紧接着调用的 wx.playBackgroundAudio 的播放(坑啊T-T),测试真机为phone5。

回调函数的触发时机。

wx.onBackgroundAudioPlay(CALLBACK) 监听音乐播放。

wx.onBackgroundAudioPause(CALLBACK) 监听音乐暂停。

wx.onBackgroundAudioStop(CALLBACK) 监听音乐停止。

上述监听函数会在调用对应的wx.playBackgroundAudio(OBJECT),wx.pauseBackgroundAudio(),wx.stopBackgroundAudio()等函数时,会被立即触发,对应的操作可能并没有完成,比如调用 playBackgroundAudio播放音乐,只是给后台发送信息,要播放音乐,但是此时音乐并没有开始播放,可能还在加载等等,但是onBackgroundAudioPlay的回调函数会立即调用。

而wx.playBackgroundAudio(OBJECT),wx.pauseBackgroundAudio(OBJECT),wx.seekBackgroundAudio(OBJECT),wx.stopBackgroundAudio(OBJECT)中OBJECT里面的回调函数会在如下对应条件触发:

在歌曲加载完成之后,可以播放时触发

在歌曲暂停之后,没有声音之后触发

歌曲进度设置完成并且开始播放之后触发

歌曲停止之后触发