【1.5.1 Beta 4.2 We版】跳场景时无法播放音乐的BUG及原因

问题是这样的,当我在跳场景的时候,调用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)

@panda

我转给相关负责人。

你的案例里面的 url 文件名不对,一开始 404,我改了一下没问题诶,两个都可以成功加载

PS. 我测试了桌面 web,iOS web

真的很抱歉,上面的资源用得不对,是同时加载两个比较大的音频的时候,前面一个会加载不成功,代码如下:

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/music_denglu.mp3");
cc.loader.load(src2, function (error) {
	if (!error) {
		this.lbInfo.string = this.lbInfo.string + '加载成功:' + src2 + '\n'
	}
}.bind(this));

我的测试工程10M,有点大上传不了。。。怎么办呢?
music_tucheng.mp3 大小是5M
music_denglu.mp3 大小是3M

@panda

你加我 QQ,100362595

测试工程不包含mp3 传上来,每个 mp3 分别上传上来?

一个mp3有5M,论坛限制是3M。。。。
我是请求加@panda的QQ了,麻烦通过一下。我发工程给你。

@panda我申请加Qq ,麻烦加我一下

声音参数这里的设计简直反人类。像u3d那样传1个cc.audio多好,非要传1个诡异的路径。凭白增加了使用难度