收藏
回答

wx.createWebAudioContext(),iOS无法播放声音?

const loadAudio = (url) => {
  return new Promise((resolve) => {
    wx.request({
      url,
      responseType: 'arraybuffer',
      success: res => {
        console.log('res.data', res.data)
        audioCtx.decodeAudioData(res.data, buffer => {
          resolve(buffer)
        }, err => {
          console.error('decodeAudioData fail', err)
          reject()
        })
      },
      fail: res => {
        console.error('request fail', res)
        reject()
      }
    })
  })
}

const play = () => {
  loadAudio('xxx-test.mp3').then(buffer => {
    let source = audioCtx.createBufferSource()
    source.buffer = buffer
    source.connect(audioCtx.destination)
    source.start()
  }).catch(() => {
    console.log('fail')
  })
}

play()
回答关注问题邀请回答
收藏

2 个回答

  • showms
    showms
    01-13

    确认一下音频的url域名有没有配进小程序request域名

    01-13
    有用
    回复 3
    • 神经蛙
      神经蛙
      01-13
      服务器返回的 byte[] 转bytearray 没有使用 https url
      01-13
      回复
    • showms
      showms
      01-13回复神经蛙
      要配,你自己调试模式打开看看
      01-13
      回复
    • 神经蛙
      神经蛙
      01-13
      从服务器预先获取的数据是{MP3:[,,,,,,,,,]},然后直接使用这个byte[]去播放(进入页面请求数据获取一组mp3 byte数组,然后去播放这些mp3,每个mp3大小在10k以下)。播放这一步没有request请求。现在是只有iOS系统上无法播放
      01-13
      回复
  • 智能回答 智能回答 该问答由AI生成
    01-12
    有用
登录 后发表内容