当前位置: 首页 > article >正文

微信小程序音频播放失败: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},把它去掉。
//需要播放暂停音频功能时,需要将这两个变量放在 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(); //加载完毕,开始播放
     },
});

http://www.kler.cn/a/37466.html

相关文章:

  • Django入门
  • 分布式ELK日志文件分析系统(曾经沧海难为水,除却巫山不是云)
  • Helm 安装prometheus-stack 使用local pv持久化存储数据
  • 阿里云无影云电脑价格_企业办公型1元_云桌面入口
  • 微软MFC技术中的消息队列及消息处理(上)
  • python 运行前端
  • 跨系统传输请求程序
  • MySQL索引、事务与存储引擎
  • “深入理解Redis:高性能缓存和数据存储技术解析“
  • C++ 变量类型
  • Flink web UI配置账号密码,权限控制
  • 什么是大数据测试?
  • 实战攻防之积极防御体系建设 | 中睿天下受邀参与诸子云沙龙
  • 七、VPN技术之隧道技术原理与VPN技术原理(PPTP协议、L2TP协议、MPLS VPN、Web VPN)
  • Flink 系列三 Flink 实战
  • 05 Docker 安装常用软件 (mongoDB)
  • MySQL数据库中的存储过程以及存储函数练习
  • 诚迈科技子公司智达诚远精耕智能驾驶,为商用落地注入创新力量
  • Loadrunner
  • 五种不同自动化测试模型的基本介绍