微信小程序 播放音效卡爆

   有一个图标的飞行动画,飞行到目的地之后会播放一个音效, 很卡。 屏蔽音效的播放之后就不卡了判断出事音效的播放问题。
    //方式1
    // cc.audioEngine.playEffect(this.soundflycomplete, false);

    //方式二
    var url = "https://www.carrygameh5.com/"+this.soundflycomplete;
    trace(url);
    if (cc.loader.md5Pipe) 
    {
        url = cc.loader.md5Pipe.transformURL(url);
    }
    trace(url);
    const innerAudioContext = wx.createInnerAudioContext()
    innerAudioContext.autoplay = true
    innerAudioContext.src = url;
    innerAudioContext.onPlay();

测试之后发现, 第一种方式卡爆了, 第二种微信原生的方式帧频稳定, 请教第一种cocoscreator这个自带的方法使用有什么问题吗, 还是我的方式有问题

自顶一下, 有大佬指点一下吗

你好 请问你是用的creator版本是多少 能否提供下相应demo或者导出相关资源

版本是1.9.3,在微信开发工具或者真机上都能实验出来, 本机chrome浏览器调试声音正常,微信这边明显卡顿, 声音顿挫, 如果在游戏里面配合动画基本卡一两秒

soundTest.rar (692.3 KB)

大佬, 已经上传了, 求指点, 不行的话我也只能去 试试2.0版本有没有这个问题了

2.0.2音效播放完之后会卡顿

你好 这其实是个常识性问题了 你在btn中绑定了一个循环的定时器,然后让这个定时器播放音效。

这样的做法,在不同性能的平台上所表现的效果是不同的。
具体表现可以观察每次调用play函数花费了多少时间可知。
web PC的数据(调用间距非常短):

weChat 开发者工具(间距变大,安卓平台同理):

这就是造成你所理解的卡爆。

还有恳请不要做标题党。

2赞

不是标题党, 实际情况就是这样啊, 我是想解决这个问题。 同样的定时器调用, 我肯定知道是这个play的函数耗时长短导致的卡, 我只想弄明白为什么用引擎的playEffect接口就很卡, 用微信官方提供的api就不卡, 另外你试了用微信的api播放吗, 我又写了个demo, 两个按钮, 在微信工具里面分别点两个按钮, 听声音, 卡顿对比很明显。

soundTest.rar (695.6 KB)

好的:slightly_smiling:

我们在性能较差的平台上确实发现1.9.3执行上述循环播放,会有偶发的卡顿现象。
不过我们的creator2.0以上版本对这方面加载做了许多优化,在我的测试下,2.0.4版本的性能优化,应该能满足你的需求。

感谢, 我试试升级一下这个版本!!!

大佬, 我升级了2.0.4, 发现我的zlib.min的插件脚本, 在浏览器里面用正常, 发布成微信小游戏之后, 在微信工具就提示Cannot use ‘in’ operator to search for ‘Zlib’ in undefined, 找不到的错误, 怎么解决, 插件脚本的使用在新版本有区别吗

你先吧微信开发者工具里面的 ES6转ES5关掉

感谢, 关掉就好了

关掉ES6转ES5你会发现,ios 10以下的版本进不去游戏了~

额~~~那要怎么解决啊

这是一个无止境的大坑。哈哈

大佬, 还有报错啊, 预加载一个prefab, 然后显示, 报错, 浏览器上没问题, 只在微信工具上报错
VM143:1 gameThirdScriptError
h is not a constructor;at setTimeout callback function
TypeError: h is not a constructor
at Object._createGraphics (http://127.0.0.1:24512/game/cocos2d-js-min.e2ff2.js:1:207969)
at Object.onLoad (

应该是 use strict 导致匿名函数的 this undefined 的问题,这个是由于微信小游戏的内部处理导致的,暂时只能由开发者自己修改第三方库来规避下问题,特地用微信原生做了个demo测试。require-es6.zip (1.8 KB)

你的帖子已经被社区标记并被临时隐藏。