微信小程序音频播放失败: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(); //加载完毕,开始播放
     },
});
相关推荐
Brave & Real1 小时前
小程序 const 在js中以及与同类的var和let之间的差异
javascript·微信小程序·小程序
做萤石二次开发的哈哈2 小时前
ERTC-产品介绍-应用场景
音视频·实时音视频
Joolun商城源码_Java3 小时前
JooLun Pro旗舰版SaaS多租户商城:商城小程序与店铺小程序的功能区别详解
小程序
0的0次方3 小时前
从0到1:如何运营一款支付宝证件照小程序(含避坑指南)
小程序·新媒体运营
小郑加油5 小时前
第16天:综合训练——数据去重
小程序
Hommy886 小时前
【剪映小助手】视频处理接口
开源·github·音视频·视频剪辑自动化·剪映api
ai产品老杨6 小时前
解耦异构算力与多协议接入:基于 Docker 与 GB28181 的企业级 AI 视频管理平台架构演进与源码交付实践
人工智能·docker·音视频
Gary Studio8 小时前
芯片界的“缝合怪”:拆解既管供电又管音频的 Rockchip RK809
音视频
ZFSS8 小时前
Pika 视频生成 API 集成教程
java·数据库·人工智能·ai·音视频
海兰8 小时前
【小程序】 贪吃蛇(Next.js+WebSocket+SQLite + Prisma ORM)
javascript·websocket·小程序