微信小程序音频播放失败: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 小时前
如何使用codex进行UI重构,让AI开发的前端页面不再千篇一律
前端·后端·微信小程序
东方佑3 小时前
观测的连续性:从波粒二象性诠释生成式 AI 中音视频与图像的表征范式
人工智能·音视频
reasonsummer5 小时前
【教学类-160-30】20260513 AI视频培训-练习030“豆包AI视频《春江花月夜》+豆包图片风格:风景
音视频·豆包
ZC跨境爬虫5 小时前
跟着 MDN 学 HTML day_58:(构建行星数据表——HTML表格高级实战指南)
前端·javascript·ui·html·音视频
reasonsummer5 小时前
【教学类-160-34】20260517 AI视频培训-练习034“豆包AI视频《国旗国旗我爱你》(演唱:04ZXY)+豆包图片风格:港风动漫
音视频·豆包图片
打瞌睡的朱尤6 小时前
微信小程序126~160
微信小程序·小程序
腾讯云云开发6 小时前
小程序成长计划正式接入Hy3 preview
微信小程序
DogDaoDao7 小时前
Android MediaCodec 全面详解:从入门到精通
android·音视频·实时音视频·视频编解码·短视频·视频直播·mediacodec
bruce541107 小时前
讲讲 RTMate (WebSocket as A Service)中的消息的发布订阅机制
后端·微信小程序
小小测试开发8 小时前
NVIDIA SANA-WM:2.6B 开源世界模型,单卡 H100 生成 1 分钟 720p 视频
c++·音视频·mfc