微信小程序音频播放失败: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(); //加载完毕,开始播放
     },
});
相关推荐
CHU729035几秒前
指尖践行环保——旧衣服回收小程序前端功能玩法详解
前端·小程序
my小新2 分钟前
微信小程序引用echarts做统计图
微信小程序·小程序·echarts
xmRao3 分钟前
Qt+FFmpeg 实现摄像头采集并录制 YUV 格式视频
qt·ffmpeg·音视频
吴声子夜歌4 分钟前
小程序——图片
小程序
鱼是一只鱼啊10 分钟前
实战 | uni-app (Vue2) HBuilderX 项目改造为 CLI 项目,实现多客户多平台命令行自动化发布
微信小程序·vue·claude·vue-cli·.net8·自动化发布
kisshuan1239621 分钟前
[特殊字符] RollingDepth:单目视频深度估计算法解析
算法·音视频
学术 学术 Fun22 分钟前
图生视频还带声音?我把LTX 2.3塞进了自己的显卡里
音视频
杰建云16727 分钟前
门店小程序是否有必要做
小程序·小程序搭建
Greg_Zhong28 分钟前
小程序中页面和组件的区别
小程序
小马_xiaoen29 分钟前
常规优化已用尽?小程序体积深层次优化实战!!!
前端·小程序·uniapp