背景
公司做网页H5,需要接入微信网页sdk,然后在wx.ready回调里自动播放背景音乐。不过升了3.3.2后不能自动播放了,2.x依然可以。
原因
3.3.2的player-web.ts默认判定audiocontext.state不是running就等待点击。(runContext函数)
因为微信ready后state依然是suspended,不过可以播放。
所以就只能改动源码进行处理。
解决步骤
- 找到源码文件–player-web.ts

- 修改runContext函数,添加微信环境判定,并直接返回resolve
- 重新编译引擎
- 等待编译完成开始使用yeah
另
我在场景中放了一个audio-source节点。然后在启动后的主代码start函数里调用微信config和ready然后播放这个audio节点,并不成功。是因为该节点还未完全加载,即_isLoaded是false。并且没有找到相关的加载完成回调钩子函数。所以顺便把audio-source.ts的源码也加了1行加载完成回调。
使用的话:
如果谁有更好的解决办法,希望可以留言共同学习。yeah yeah


