微信小程序音频播放失败: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(); //加载完毕,开始播放
     },
});
相关推荐
头发还在的女程序员1 小时前
家政SaaS平台开源:从供应商入驻到分账结算,源码如何设计?
小程序·开源
AI科技摆渡2 小时前
三步极速对接 Grok-Video-3 视频生成 API
人工智能·音视频
新缸中之脑2 小时前
用Remotion构建AI生成视频
人工智能·音视频
焦糖玛奇朵婷4 小时前
解锁扭蛋机小程序的五大优势
java·大数据·服务器·前端·小程序
Likeadust7 小时前
视频高清直播点播/音视频点播/云点播/云直播EasyDSS一体化云平台重塑智慧校园数字协作生态
音视频
EasyGBS8 小时前
国标GB28181视频AI算法分析平台EasyGBS支持地址免登录!开启“绿色通道”
音视频
Never_every999 小时前
8 个高清 4K 视频素材网址!无水印可商用
大数据·前端·音视频·视频
常利兵9 小时前
从0到1,开启Android音视频开发之旅
android·音视频
web前端神器9 小时前
记录uniapp小程序的报错
小程序·uni-app·apache
南棱笑笑生9 小时前
20260423给万象奥科的开发板HD-RK3576-PI适配瑞芯微原厂的Buildroot时使用play播放mp3音频
音视频·rockchip