微信小程序音频播放失败: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(); //加载完毕,开始播放
     },
});
相关推荐
俊哥工具9 分钟前
解决文件正在使用无法删除,顽固文件清理工具超好用
智能手机·电脑·word·音视频·媒体
Digitally2 小时前
7 种方法将三星S26/S25/S24/S23手机视频传电脑
智能手机·电脑·音视频
阿拉斯攀登4 小时前
音视频采集:getUserMedia 与设备管理
音视频·webrtc·实时音视频·视频编解码
hnxaoli4 小时前
统信小程序(十六)xls转xlsx
开发语言·python·小程序
卓怡学长5 小时前
w272基于springboot便民医疗服务小程序
java·spring boot·spring·小程序·intellij-idea
数据法师5 小时前
musicDownload :多平台音频资源聚合与本地化存储
音视频
小鹿软件办公5 小时前
通过调整编码参数使用 VLC 媒体播放器无损压缩视频方法
运维·网络·音视频
音乐宝贝家6 小时前
从合板到面单:麦杰克AC系列声学结构拆解与选购决策
新媒体运营·音视频·社交电子·业界资讯·媒体·用户运营·零售
AI服务老曹6 小时前
摄像机安装AI视频分析参数配置说明:POC现场交付全流程指南
人工智能·音视频
myenjoy_16 小时前
I2S 音频与数字音频接口详解
macos·音视频·xcode