微信小程序音频播放失败: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(); //加载完毕,开始播放
     },
});
相关推荐
潇凝子潇3 小时前
chrome插件-给音视频添加倍速播放控制功能
音视频·chrome devtools
sweetone4 小时前
SONY老式磁带随身听wm-fx193 之摩机过程(提升重低音音效,改耳放)
经验分享·音视频
上海观智网络4 小时前
上海小程序定制开发合同怎么签?需要注意什么?
经验分享·笔记·小程序
数据法师4 小时前
视频文件重复检测工具:基于哈希与视频指纹的三级筛选机制
算法·音视频·哈希算法
AI创界者5 小时前
告别云端限制!Sulphur 2 本地文生视频/图生视频整合包,本地部署,解压即用,保姆级部署与工作流实战
人工智能·python·aigc·音视频
南山有乔木7896 小时前
NCM格式在线转换MP3怎么操作?解决ncm打不开和无法导入问题
音视频
wuxia21189 小时前
在5种环境中编写点击元素改变内容和颜色的JavaScript程序
javascript·微信小程序·vue·jquery·react
小鹿研究点东西9 小时前
AI直播系统怎么搭?
人工智能·ffmpeg·自动化·音视频·语音识别
byte轻骑兵10 小时前
【AVRCP】规范精讲[29]:多播放器切换全流程,蓝牙音频控制如何精准选歌台
智能手机·音视频·avrcp·音视频控制·车机蓝牙
南山有乔木78910 小时前
喜马拉雅XM转MP3怎么操作?xm转换成MP3后播放更方便
音视频