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

Mr_hyc
  • 60

需求:小程序有两段音频,在不同时间段进行播放。
在真机调试和开发工具都是可以的,但是到预览,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() 方法。

回复
阅读 2.3k
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();
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏