收藏
回答

为什么 iphone真机使用WebAudioContext无法播放mp3提示数据错误?

mp3文件使用wx.getRecorderManager()录制的,android,开发客户端可以播放,iphone7真机不行,代码片段就是《微信开放文档》WebAudioContext 提供样例,除播放地址

const audioCtx = wx.createWebAudioContext()

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('www.XXX.com/XXX/1.mp3').then(buffer => {
    const source = audioCtx.createBufferSource()
    source.buffer = buffer
    source.connect(audioCtx.destination)
    source.start()
  }).catch(() => {
    console.log('fail')
  })
}

play()


另外 请告知 WebAudioContext android 和Ios分别支持什么格式,aac m4a等等试过几个,android只有mp3能播放,iphone都不行,不知道是哪儿问题。十分感谢!

最后一次编辑于  2022-04-03
回答关注问题邀请回答
收藏

1 个回答

  • Cjiang
    Cjiang
    2022-04-07

    用 onstatechange 监听下试试

    2022-04-07
    有用
    回复
登录 后发表内容