版本: 3.8.3 / 3.8.7
具体表现
在支付宝小游戏的实机测试下:
某个音效会播放失效
- 既没有关闭设备音量
- 也没有关闭游戏内的音效开关
- 其他音效依旧正常播放
举个例子:
游戏内有ABCD等若干音效
随着游戏进行, 会在各自合适的时机播放然后就会出现某个音效失效
比如A失效了, BCD还是正常播放
或者B失效了, ACD正常播放然后慢慢的, 越来越多 音效会失效
整个游戏都会变得 静悄悄
然后进入结算界面, “当当当” 的奖励声音还能正常播
相关代码
我最早是使用这份代码:
这个代码本质就是
- 每个
Clip占用1个AudioSource, 可独立调节 - 在各个平台 (web/ios/安卓/微信/抖音/快手) 上运行正常
后来改为这份代码:

这份代码有相当程度的简化:
- 仅使用1个公用的
AudioSource - 使用
playOneShot来播放音效 - 事实上业务也没有需要细微控制
使用新代码之后的情况
用了新的代码之后, 大部分的音效问题得到了改善
无论如何混播都没有出现失效的问题
但是
还有一个 特殊 的音效:
- 它是 循环音效
- 不能用
playOneShot来播放 - 于是我还是创建了一个
AudioSource来给它专用 - 因为我还需要监听它播放结束, 来暂停循环
于是情况变成
这个唯一的特殊音效
它自己播着播着, 就会没声音了
有时候能扛几关, 有时候玩1关就没声音了
然后其他的音效和bgm都是正常的
总结
- 其他平台运行正常的代码, 在支付宝小游戏上出现问题
- 虽然使用
playOneShot可以回避, 但是问题依旧存在 - 怀疑和
AudioSource相关

