我爱模板网 > 建站教程 > 小程序、公众号 >  微信小程序完美解决wx.createInnerAudioContext()坑正文

微信小程序完美解决wx.createInnerAudioContext()坑

我刚开始用wx.createInnerAudioContext(),是将此方法写在了我的播放语音函数里,发现怎么暂停和取消都不好使



经过踩坑,得出结论!!!

1.将此方法声明在onLoad中,(如果声明在page外部,每次进此页面执行语言操作都会多次执行。)



2.将api方法也都声明在onLoad中(不需要一直去创建回调事件)



 3.播放语言操作
/**
* 播放音频
*/
playAudio(e) {
    const _this = this;
    wx.stopVoice()
    showToast('text', '播放中', {
        duration: 120 * 1000,
        mask: true
    })
    let audio = e.currentTarget.dataset.audio;
    let audioSave = _this.data.audioSave;
    console.log('audio:',audio.name,'  audioSave:',audioSave)
    if (audio.ext === 'mp3') { // 小程序发送的
        this.data.audioContext.src = audio.url
    } else {
        this.data.audioContext.src = audio.mp3Url
    }
    if (audio.name == audioSave) {
        console.log('播放同一个语音,将其暂停')
        this.data.audioContext.pause();
        //初始化
        this.setData({
            audioSave: ''
        })
    } else{
        //不是同一个语音 直接播放其它,将此次语音记录
        this.data.audioContext.play()
        this.setData({
            audioSave: audio.name
        })
    }
},


部分素材资源来源网站,本站提供免费下载,如有侵权请联系站长马上删除!
上一篇:微信小程序 setData 修改对象 下一篇:微信小程序中的module.exports、exports详解
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
选择头像:
最新评论

猜你喜欢