【BUG】微信小游戏音乐播放问题

cc.loader.load({url: “http://47.111.184.119/MusicGame/xajh.mp3”, type: "mp3"},this.onProgress.bind(this), this.onComplete.bind(this));

onProgress(completedCount, totalCount){
cc.log(completedCount, totalCount);
}

onComplete(err, res){
if (err || !res){
console.log(err);
return;
}
cc.audioEngine.play(res, false, 1);
}

这个是用的官方demo中的接口。
两个问题:
1、onProgress无效,只有在结束的时候才会打印出1 1或者0 0。
2、cc.audioEngine.play(res, false, 1)在微信小游戏(苹果)上无法马上播放,需要等很久才会播放,电脑上的浏览器和微信开发者平台都能正常播放。

DEMO:MusicTest.zip (743.7 KB)

onProgress 加载如果是新加载,没有缓存就是1/1,如果从缓存加载就是0/0,目前设计如此。
微信上的声音加载比较慢,可以改用udiosource,提前加载资源,再播放。

1、音乐游戏,资源比较大,提前加载行不通,所以要放在服务器上加载。我用微信的接口直接读取服务器地址,发现要比用cc.loader.load快。。。不过微信的接口暂时没找到读取服务器文件的加载相关的接口。。。

var remoteUrl = “http://47.111.184.119/MusicGame/xajh.mp3”;
// let audio = wx.createInnerAudioContext();
// audio.src = remoteUrl;
// audio.play();
// audio.onPlay(()=>{console.log(“开始播放”)});
// audio.onError((res)=>{
// console.log(res.errMsg);
// console.log(res.errCode);
// });

2、onProgress加载读取进度条有办法实现么?微信上的《跳舞的线》有这个功能啊。。。

。。。

  1. 你可以使用微信原生的音频接口试试,但是效果应该差不多。
  2. onProgress 是资源数为单位,不是以字节数,本身就可以用来做进度条的。

1、应该不是声音加载慢的问题,声音下载到本地后,在微信苹果手机上应该又进行了一次转换才能播放出来。。。这个转换花了很长时间。。。
2、onProgress对一个.mp3文件下载的话以资源数为单位就没什么用了,有办法弄到下载的字节数的进度么?

已用微信小游戏的接口解决。

微信的音乐加载方法要比cocos的快很多很多。。。

老哥怎么解决的,能发一下代码参考一下吗