Egret社区
产品 Egret Engine 版本 5.2.8
复现概率 50% 平台 Android 8.0
复现步骤 这个问题出现概率时高时低,需要测试人员耐心测多即便,就会出现加载阻塞现象。
问题描述 在微信小游戏端,同时加载2个group,第一个是图集,第二个是音频,在加载音频的时候,有很大几率阻塞,造成后面代码不执行。这个问题只出现在安卓上,我使用的是三星s8+进行测试。经过问题定位,是在assetsmanager里的setGroupProgress方法。之后把
setMaxLoadingThread设置为1,就没再出现。怀疑与并行加载有关。
错误代码 /**
* 设置组的加载进度,同时返回当前组是否加载完成
* @param groupName 组名
* @param r 加载完成的资源
*/
ResourceLoader.prototype.setGroupProgress = function (groupName, r) {
var reporter = this.reporterDic[groupName];
this.numLoadedDic[groupName]++;
var current = this.numLoadedDic[groupName];
var total = this.groupTotalDic[groupName];
if (reporter && reporter.onProgress) {
reporter.onProgress(current, total, r);
}
//有几率current < total
return current == total;
};
BUG截图

resTest.zip

1.58 MB, 下载次数: 4, 下载积分: 银子 -1

DEMO

分享到 :
0 人收藏

9 个回复

正序浏览
qiaofei  圆转纯熟 | 2019-11-7 11:58:30
我这边被困扰了好几个月,后来发现音频可以用的时候再加载
  1. let sound = new egret.Sound();
  2.                         await RES.getResAsync(name + "_mp3");
  3.                         sound = RES.getRes(name + "_mp3");
  4.                         this.soundPool[name] = sound;
  5.                         let channel = sound.play(0, 1);
复制代码
liangl258  登堂入室 | 2019-5-22 21:59:16
熊猫少女 发表于 2018-8-31 10:56
感谢你的反馈,这边复现后会反馈给开发

请问官方修复这个问题了吗?
liangl258  登堂入室 | 2019-5-22 21:58:04
请问这个问题后来是怎么避免的呀?
zhangcongrong  初学乍练 | 2018-9-13 12:25:07
本帖最后由 zhangcongrong 于 2018-9-13 12:27 编辑

这个问题确实存在,也挺严重。我这边也是在同时加载几个资源组的时候,有时候会出现。pc和手机上都有这个情况。一旦阻塞之后,所有调用loadGroup的地方都失效了。
wssznh  登堂入室 | 2018-8-31 11:04:18
在pc端有时候也会出现,pc端的问题是,有时候加载音频成功后,会接收不到加载成功的回调,导致assetsmanager的加载线程被塞满,不继续加载进去

点评

是的  发表于 2018-11-23 11:56
DanaZhuo  登堂入室 | 2018-8-31 11:01:37
熊猫少女 发表于 2018-8-31 10:56
感谢你的反馈,这边复现后会反馈给开发

恩,demo已经上传。这个问题挺严重的。已经看到有不少微信小游戏端的开发者,中招。
DanaZhuo  登堂入室 | 2018-8-31 10:59:12
恩,这个问题挺严重的。已经看到有不少微信小游戏端的开发者,中招。demo已经上传。
熊猫少女  官方团队 | 2018-8-31 10:56:17
感谢你的反馈,这边复现后会反馈给开发
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|京网文[2014]0791-191号|京ICP证150115号|Egret社区 ( 京ICP备14025619号 )

Powered by Discuz! X3.4 © 2001-2019 Comsenz Inc.

返回顶部