问题是这样的,当我在跳场景的时候,调用cc.audioEngine.play
播放背景音乐总是没有声音。这个问题只有Web版才有,原生版没有问题。
看了一下cc.audioEngine.play
的代码,里面调用cc.loader.load
去加载音频资源,奇怪的是总是没有回调回来。
我想了一下,觉得可能是调用cc.loader.load
加载音频的时候,同时正在加载场景的图片资源,在这种情况下音频加载出异常没有返回。
所以新建一个工程,写了下面的代码:
var src1 = cc.url.raw("resources/music_tucheng.mp3");
cc.loader.load(src1, function (error) {
if (!error) {
this.lbInfo.string = this.lbInfo.string + '加载成功:' + src1 + '\n'
}
}.bind(this));
var src2 = cc.url.raw("resources/ui1.png");
cc.loader.load(src2, function (error) {
if (!error) {
this.lbInfo.string = this.lbInfo.string + '加载成功:' + src2 + '\n'
}
}.bind(this));
在加载music_tucheng.mp3
的同时,我马上加载ui1.png
,此时: music_tucheng.mp3
加载不成功(没有回调回来),而ui1.png
加载成功了。
如果我把加载ui1.png
的那几行代码注释掉,music_tucheng.mp3
是可以正常回调回来的。
这就是为什么在加载场景的时候调用播放音频的接口不能成功的原因。
我把测试工程放上来了,麻烦引擎同学尽快修掉这些BUG,看到有另一个贴子反馈了差不多的问题,应该也是这个原因引起的:
http://forum.cocos.com/t/cc-audioengine-play-cc-audioengine-play/46921
@jare @zilongNewProject.zip (2.9 MB)