微信小程序音频播放失败: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(); //加载完毕,开始播放
     },
});
相关推荐
speedoooo2 小时前
在现有App里嵌入一个AI协作者
前端·ui·小程序·前端框架·web app
Android系统攻城狮5 小时前
Android16音频之获取音频时间戳AudioTrack.getTimestamp:用法实例(一百三十九)
音视频·android16·音频进阶
简鹿视频9 小时前
视频转mp4格式具体作步骤
ffmpeg·php·音视频·实时音视频
Yutengii9 小时前
如何下载b站视频到本地(b站视频本地化指南)
音视频
万岳科技系统开发10 小时前
私域直播小程序源码的整体架构设计与实现思路
学习·小程序
ee82ee10 小时前
uniapp小程序底部键盘唤起问题处理,包含间隙处理,动画处理
微信小程序
qq_124987075311 小时前
基于springboot健康养老APP的设计与实现(源码+论文+部署+安装)
java·spring boot·后端·mysql·微信小程序·毕业设计
汤姆yu11 小时前
基于微信小程序的驾校预约与学习系统
学习·小程序·驾校预约
夏源11 小时前
【微信小程序】实现引入 Echarts 并实现更新数据
微信小程序
speedoooo12 小时前
未来的App不再需要菜单栏?
前端·ui·容器·小程序·web app