IOS使用wx.playBackgroundAudio无法播放兼容性问题解决, 安卓和微信开发者工具可以播放(小程序音频播放问题)

363 阅读1分钟

老项目维护,遇到小程序播放音频兼容性问题

安卓mp3音频可以正常播放,开发者工具也可以,IOS音频不能播放,但是也没有报错,

本来以为是http协议问题,排查后发现不是

dataUrl:音频地址里面包含空格,导致IOS出现兼容性问题,需要对播放地址进行转码

(也不明白返回为什么要有空格)

image.png

wx.playBackgroundAudio({
  dataUrl: encodeURI(res.currentTarget.dataset.url),
  // dataUrl: 'https://www.w3school.com.cn/blue bird.mp3',
  // dataUrl: 'https://www.w3school.com.cn/i/song.mp3',
  coverImgUrl: '',
  playTime: 0,
  title:  res.currentTarget.dataset.name,
  TimeString: gettime(res.currentTarget.dataset.seek),
  success: function () {
    console.log('success')
  },
  fail: function(res){
    console.log(res)
  }
})

// 监听音乐播放。
wx.onBackgroundAudioPlay(() => {
  console.log("监听开始播放")
})
// 监听音乐暂停。
wx.onBackgroundAudioPause(() => {
  console.log("监听暂停")

})
// 监听音乐停止。
wx.onBackgroundAudioStop(() => {
  console.log("监听停止")

})