微信小程序 ios 只能播放一次音频,第二次没有播放

需求:小程序有两段音频,在不同时间段进行播放。
在真机调试和开发工具都是可以的,但是到预览,ios 只能播放一次,第二次就不能播放了, 求大佬给个解决方案呀!

function playAudio(src){
  const myaudio = wx.createInnerAudioContext();
  myaudio.obeyMuteSwitch = false;
  myaudio.src = src;

  myaudio.play();

  myaudio.onPlay(() => {
    console.log('开始播放');
  })
  myaudio.onStop(() => {
    myaudio.stop();
    //播放停止,销毁该实例
    myaudio.destroy();
  })

  myaudio.onEnded(() => {
    console.log('播放结束');
    //播放结束,销毁该实例
    myaudio.destroy();
  })

  myaudio.onError((res) => {
    console.log(res.errMsg);
    console.log(res.errCode);
    //播放错误,销毁该实例
    myaudio.destroy();
  })
}

degug 查看了一下 第二次播放不能走 play() 方法。

阅读 5.4k
3 个回答

const myaudio = wx.createInnerAudioContext();
const myaudio2 = wx.createInnerAudioContext();
直接创建两个 然后分别给src地址,主要需要控制的是两段音频的播放先后顺序,你这单个创建是有点问题吧

修改一下写法吧 其实小程序本身audio也不该这么写 试试这样

  const myaudio = wx.createInnerAudioContext();
  myaudio.obeyMuteSwitch = false;

  myaudio.onPlay(() => {
    console.log('开始播放');
  })
  myaudio.onStop(() => {
    myaudio.stop();
  })

  myaudio.onEnded(() => {
    console.log('播放结束');
  })

  myaudio.onError((res) => {
    console.log(res.errMsg);
    console.log(res.errCode);
  })


function playAudio(src){
  myaudio.src = src;
  myaudio.play();
}
推荐问题