小程序安卓端播放不了音频解决方法wx.createInnerAudioContext()

时间:2021-03-18 14:09:45   收藏:0   阅读:0

在小程序播放音频时,使用组件wx.createInnerAudioContext(),安卓端无法播放音频。

我的情况:播放服务器上传来的音频,格式为mp3。首先查看你的格式是否符合文档要求

技术图片

在安卓端进行测试,有些mp3可播放(极少),大部分是不可以播放的。

所以选择了先将服务器端传来的mp3音频下载到本地临时地址,再进行播放。

第一步:对你的服务器域名设置在downloadFile合法域名中

技术图片
对downloadFile进行域名设置

第二步:设置点击播放时,传入服务器地址进行下载到本地,播放

技术图片
url为你的音频地址

此时测试,安卓端已经可以进行播放。

问题来了:此时ios端不可以播放(裂开)

解决方法:播放前判断用户手机系统为IOS还是android

技术图片

测试真机,ios和android都可以进行音频播放了!!

上源码:


/* -------------- 播放指定音频 -------------- */

   onReady(e) {

      // 使用 wx.createAudioContext 获取 audio 上下文 context

      this.audioCtx = wx.createInnerAudioContext()

   },

   audioPlay(e) {

      let that = this

      const res = wx.getSystemInfoSync()

      let syt = res.system.replace(/[^a-z]+/ig, ‘‘)

      console.log(syt)

      if (syt == ‘iOS‘) {

         that.audioCtx.src = e.currentTarget.dataset[‘src‘]

         that.audioCtx.play()

      } else {

         wx.downloadFile({

            url: e.currentTarget.dataset[‘src‘], 

            success(res) {

               console.log(res)

               if (res.statusCode === 200) {

                  that.audioCtx.src = res.tempFilePath

                  that.audioCtx.play()

               }

            }

         })

      }

   },

 

  


若有不对的地方,请谅解!!新手!!

 

评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2
迷上了代码!