游戏音效加速怎么做?

由于游戏有加速功能,但是音乐音效没有提供变速的接口,会导致音效和动画不搭,请问一下怎么实现音效变速啊?

@sunnylanwanjun

@EndEvil 求教啊,大佬

自顶自顶

    /**
     * !#en Set current time
     * !#zh 设置当前的音频时间。
     * @method setCurrentTime
     * @param {Number} audioID - audio id.
     * @param {Number} sec - current time.
     * @return {Boolean}
     * @example
     * cc.audioEngine.setCurrentTime(id, 2);
     */

应该可以吧

这个不行,这个只是跳到某个时间点,用这个音效会一卡一卡的

另外做个加速的音源不香么?

那所有战斗用到的音效都得双份了?这得增大多少包体,而且如果某个音效正在播放,这个时候切换了速度,也没法让这个已经播放的音效变成加速的音效。

cocos音频没有这个功能,可以考虑下其他的音频引擎

有什么音频引擎sdk推荐,可以集成到cocos吗?

其实可以先看Cocos集成的音频引擎是否支持加速,第三方库没用过不知道哪个好,刚看了一下支持加减速的音频引擎还是有不少的,关键词 audio tempo library,自己谷歌了解一下。

音频编程涉及到跨平台支持,目前小游戏平台应该是不能支持的,
web 平台可以用一些第三方库,比如 howler https://github.com/goldfire/howler.js
原生平台应该也可以外接第三方 SDK

小游戏上不支持,web平台的话,



web audio 和 dom audio 都有playbackRate 可以设置。你可以自定义引擎扩展一下

1赞

原生的我用过wwise

多谢,我研究一下

多谢,我试试

我测试了一下,AudioBufferSourceNode设置playbackRate,会让声音变调,HTMLMediaElement设置playbackRate就不会,也就是我音效都得设置成Dom模式。。。可是官网说Dom兼容不好。。。。这让我很纠结

AudioBufferSourceNode 还有非常多的设置,应该可以调整音调的,在web上使用dom audio也行的

AudioBufferSourceNode这个查过官方文档了。。。。没啥其他可以设置的了,dom audio虽然切换速度不会改变音调,但是切换的时候会卡顿一下

马克一下,感觉我们游戏后面也要用,你如果有思路了 说一下哇,谢谢大哥