cc.audioEngine.play 播放同一个音效 24次之后,再播放就没声音了,仅在微信小游戏上能重现,web 都正常

  • Creator 版本:1.9.2 正式版

  • 目标平台: 微信小游戏

  • 详细报错信息,包含调用堆栈:无任何报错信息

  • 重现方式:
    点击一个按钮来播放一个音效,连续点 24 次(快速或者一下一下点都可以)之后,继续点就没声音了

测试了 1.9.1 正式版,没有这个问题。应该是 1.9.2 新引入的。希望官方能看一下。

我也遇到了,1.9.2

同样遇到,这种bug太奇怪了

1.9.1 没有问题

这种重大bug,而且与微信小程序相关的,难道引擎测试组都没测出来?

这个bug我当初在发开小程序的时候遇到过 是微信的机制不完整 如果你是微信小程序 我这里有一套以前封装好的代码 可以解决这个问题

var _audioInstance;
function init() {
  if (_audioInstance == null) _audioInstance = new _osAudio();
  return _audioInstance;
}


var audioUrl = "../../";
var audioBtn = true;
var audioCtx = null;
var audioList = {
  fail: '网络路径/fail.mp3',
  succ: '网络路径//succ.mp3',
}

function _osAudio() {
  this.playAudio = function (audioName) {
    if (!audioBtn) return;
    if (audioCtx) {
      audioCtx.destroy();
      audioCtx = null;
    }
    if (!audioCtx) {
      audioCtx = wx.createInnerAudioContext();
      audioCtx.autoplay = true;
    }
    if (audioCtx && audioList[audioName]) {
      audioCtx.src = audioList[audioName];
      audioCtx.onPlay(() => {
        // console.log('播放成功 ' + audioName);
      })
      audioCtx.onError((res) => {
        console.log(res.errMsg)
        console.log(res.errCode)
      })
    }
  }

  this.change = function () {
    if (audioCtx) {
      audioCtx.destroy();
      audioCtx = null;
    }
    audioBtn = !audioBtn;
  };

  this.getType = function () {
    return audioBtn;
  };

};

module.exports = {
  os: init()
};

将近4个月前的代码了 没写注释

1.9.3测试版解决了这个问题,我现在就是直接用1.9.3测试版的

问题是1.9.3还没稳定,不敢用