微信小程序音频播放失败: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(); //加载完毕,开始播放
     },
});
相关推荐
码海扬帆:前端探索之旅几秒前
小程序开发指南(四)(UI 框架整合)
ui·微信小程序·小程序
lumi.1 小时前
Swiper属性全解析:快速掌握滑块视图核心配置!(2.3补充细节,详细文档在uniapp官网)
前端·javascript·css·小程序·uni-app
花开莫与流年错_2 小时前
音频相关数学支持
数学·音视频·音频·软件
咸虾米_2 小时前
解决getLocation获取当前的地理位置,报错:getLocation:fail auth deny及方法封装
微信小程序·uniapp·用户授权api
低代码布道师2 小时前
少儿舞蹈小程序需求规格说明书
低代码·小程序·规格说明书
IceyWu3 小时前
uniapp小程序 LivePhoto(实况图片)实现详解
微信小程序·uni-app
浩星7 小时前
react+taro打包到不同小程序
react.js·小程序·taro
Jun28120 小时前
微信小程序初探之数据绑定
微信小程序
顾辰逸you20 小时前
uniapp--咸虾米壁纸(三)
前端·微信小程序
大包子1 天前
小程序分享(下载)海报随记
微信小程序