小程序播放語音之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
      })
    }
  },

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM