微信小程序 > 微信公开课 > 小程序InnerAudioContext实例触发stop函数,订阅者没有及时响应
微信小程序,微信公开课,小程序InnerAudioContext实例触发stop函数,订阅者没有及时响应

小程序InnerAudioContext实例触发stop函数,订阅者没有及时响应

2019-03-15 18:14:06

微信公开课小程序热门讨论关于「小程序InnerAudioContext实例触发stop函数,订阅者没有及时响应」的小程序开发问题
补充:小程序InnerAudioContext实例触发stop函数,订阅者没有及时响应
展开:当前Bug的表现流程:demo中使用全局innerAudioContext实例,每次点击播放按钮都会触发点击事件函数play,play函数中,会首先判断当前innerAudioContext实例下是否有正在播放的音频,如果有,则调用innerAudioContextstop()函数停止播放,然后再替换新的音频地址后重新播放bug:点击播放按钮后,如果新的音频地址与旧的音频地址相同,stop事件的订阅能正常触发但是如果新的音频地址与旧的音频地址不同,stop事件的订阅要等到新音频播放完毕后才触发点击多轮播放按钮,中间偶尔会触发stop事件的订阅预期表现复现路径提供一个最简复现Demowxml:<view<viewwx:for={{musicArr}}wx:key={{index}}<viewclass=musicitem<text{{itemname}}<text<text{{itemisPlaying?播放中:停止}}<text<buttoncatchtap=playdataitem={{item}}播放<button<view<view<viewjs:constinnerAudioContext=wxcreateInnerAudioContext()Page({***页面的初始数据*data:{musicArr:[{id:1,name:僕らの戦場live,path:assetsmusic僕らの戦場livemp3,isPlaying:false},{id:2,name:YouSayRun,path:assetsmusicYouSayRunmp3,isPlaying:false},{id:3,name:BRAVER,path:assetsmusicBRAVERmp3,isPlaying:false}]},***生命周期函数监听页面加载*onLoad:function(options){事件订阅innerAudioContextonPlay(()={consolelog(onPlay)});innerAudioContextonStop(()={consolelog(onStop)thisupdateStopStatus()});innerAudioContextonEnded(()={consolelog(onEnded)thisupdateStopStatus()});},***播放*play(e){如果有播放中的音频,则停止if(!innerAudioContextpaused){innerAudioContextstop()由于stop订阅无法正常触发,故写在此thisupdateStopStatus()}innerAudioContextautoplay=trueinnerAudioContextsrc=ecurrentTargetdatasetitem[path]letindex;thisdatamusicArrforEach((item,i)={if(itemid===ecurrentTargetdatasetitem[id]){index=i}})constup=musicArr[+index+]isPlayingthissetData({[up]:true})innerAudioContextplay()},** *将所有音频状态更新为停止 *updateStopStatus(){constmusicArr=thisdatamusicArrmusicArrforEach((item,i)={itemisPlaying=false})thissetData({musicArr})},})即速小程序:为什么没有官方人员应答呢,问题我阐述得很清楚了,demo也是给了的,到底是小程序的问题,还是我代码实现的问题,总该给给说法吧
更多有关「小程序InnerAudioContext实例触发stop函数,订阅者没有及时响应」的讨论可以前往微信公开课小程序参与互动哦!
标签:微信公开课,小程序
微信小程序,微信公开课,小程序InnerAudioContext实例触发stop函数,订阅者没有及时响应

「小程序InnerAudioContext实例触发stop函数,订阅者没有及时响应」热门讨论订阅

方法1:微信扫描微信公开课小程序码即可订阅热门讨论「小程序InnerAudioContext实例触发stop函数,订阅者没有及时响应」

方法2:微信搜索微信公开课小程序名称进入,即可订阅热门讨论「小程序InnerAudioContext实例触发stop函数,订阅者没有及时响应」

方法3:微信网页访问即速商店,长按识别微信公开课小程序码即可订阅热门讨论「小程序InnerAudioContext实例触发stop函数,订阅者没有及时响应」

微信公开课小程序热门讨论「小程序InnerAudioContext实例触发stop函数,订阅者没有及时响应」由微信公开课原创摘录于微信小程序商店shop.jisuapp.cn,转载请注明出处。

微信公开课热门讨论「小程序InnerAudioContext实例触发stop函数,订阅者没有及时响应」由微信公开课开发者向微信用户提供,并对本服务内容、数据资料及其运营行为等真实性、合法性及有效性承担全部责任。