微信小程序音频播放失败:TypeError: Cannot read property ‘duration‘ of undefined

报错截图

最下面这个this.setData()报错可不用理会,是this取值的问题

解决

  1. 需要播放和暂停功能时,需要把audio以及他的src放在Page外面。
  2. 不能缺少 audioCtx.onPlay() 和 audioCtx.onError()两个方法,且需要放在play()方法之前
  3. 如果在wx.createInnerAudioContext()添加了 {useWebAudioImplement:true},把它去掉。
javascript 复制代码
//需要播放暂停音频功能时,需要将这两个变量放在 Page()上面
let audioCtx=wx.createInnerAudioContext()
audioCtx.src='http://ws.stream.qqmusic.qq.com/M500001VfvsJ21xFqb.mp3' //填入你自己的音频链接
Page({
     data: {
          isPlay: false,
     },
     playMusic(){
          audioCtx.onPlay(()=>{
               console.log("开始播放");
          })
           audioCtx.onError((res)=>{
             wx.showToast({
                title: '音乐播放错误',
                icon: 'error',
                duration: 3000
              })
           })
           let isPlay = !this.data.isPlay //控制播放和暂停的变量
           this.setData({
                isPlay:isPlay
               })
          if(isPlay){
               audioCtx.play()
               audioCtx.loop = true;
          }else{
               audioCtx.pause()
          }
     },
     },
     onLoad() {
          this.playMusic(); //加载完毕,开始播放
     },
});
相关推荐
杰建云1671 天前
微信小程序自制全流程实测与避坑指南
微信小程序·小程序
小羊Yveesss1 天前
2026年商城小程序需要多少成本?
小程序
CWM-183125336391 天前
东芝TDS5B212MX/TDS5C212MX最高支持64G的高速切换开关芯片DP2.0/PCIE6.0/USB4等接口二切一
音视频
ZC跨境爬虫1 天前
跟着 MDN 学 HTML day_27:(深入理解 HTML 属性反射机制)
前端·javascript·ui·html·音视频·媒体
EasyDSS1 天前
视频直播点播/高清点播/音视频点播/云点播/云直播EasyDSS构建社交娱乐全链路视频解决方案
音视频·娱乐
fengfuyao9851 天前
STM32 ADC音频采样与FFT频谱分析实现
stm32·嵌入式硬件·音视频
智慧景区与市集主理人1 天前
巨有科技市集小程序精准匹配摊主与业态,解锁市集增收新可能
科技·小程序
kyh10033811201 天前
微信小程序 聚合摇骰喝酒工具 完整实现(含源码)
微信小程序·小程序·摇骰子小游戏
wsoz1 天前
音视频控制传输协议(AVCTP)
音视频
博客zhu虎康1 天前
小程序按钮实现先表单校验再走手机号获取功能
android·javascript·小程序