微信小程序音频播放失败: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(); //加载完毕,开始播放
     },
});
相关推荐
于是我说19 小时前
稳定常用能直接在电脑上下载微博视频的方法
音视频
ACP广源盛1392462567319 小时前
GSV2006@ACP#2 进 4 出 HDMI2.0 中继器(带音频提取 / 嵌入功能)全解析
单片机·嵌入式硬件·音视频
2501_9160088921 小时前
手机抓包app大全:无需root的安卓抓包软件列表
android·ios·智能手机·小程序·uni-app·iphone·webview
低代码布道师1 天前
医疗小程序10预约挂号日历切换
低代码·小程序
一 乐1 天前
健康打卡|健康管理|基于java+vue+的学生健康打卡系统设计与实现(源码+数据库+文档)
android·java·数据库·vue.js·spring boot·微信小程序
大模型实验室Lab4AI1 天前
VideoLLaMA 3新一代前沿多模态基础模型赋能图像与视频深度理解| LLM | 计算机视觉
人工智能·计算机视觉·音视频
翼龙云_cloud1 天前
阿里云渠道商:如何在阿里云 ECS 上搭建微信小程序服务?
运维·服务器·阿里云·微信小程序·小程序·云计算
墨着染霜华1 天前
UniApp 微信小程序分享
微信小程序·uni-app
2501_915921431 天前
Windows 系统下的 IPA 加密工具实战指南,如何在非 macOS 环境完成 IPA 混淆、加固与工程化处理
android·windows·macos·ios·小程序·uni-app·iphone
EasyDSS1 天前
视频推拉流平台EasyDSS无人机视频推拉流技术助力实现工地远程监控巡检直播
音视频·无人机