Egret社区
1银子
白鹭引擎5.1.11,项目里需要加载一些mp3,在安卓手机下,H5浏览器方式加载没问题,转到微信小游戏里,从远程加载mp3有25%几率会卡死,如果把 MP3放到本地加载方式没问题,这个官方有办法解决不?

分享到 :
6 人收藏

7 个回复

倒序浏览
yung  初学乍练 | 2018-6-4 13:40:52
卡死是什么状态?
有错误提示吗?
alexhy  登堂入室 | 2018-6-4 16:22:09
sound = new egret.Sound();
                         let url = getURL(resource);
                                console.log("下载Sound URL="+url);                             
                                sound.load(url);   
就是经常会卡在这一步,url是本地不会卡,是https远程的会卡,在微信运行环境下。
快刀小子  登堂入室 | 2018-6-4 16:43:13
你用的是腾讯云服务器吗?如果是阿里云,就有可能可会出现资源加载失败的问题。之前我也资源加载失败,换了腾讯云就好了
alexhy  登堂入室 | 2018-6-4 19:23:51
尝试用new egret.URLLoader();异步下载,问题依旧,想是不是下载没间隔时间造成,经过反复测试,间隔20毫秒可以解决URLLoader方式下载的问题,希望官方在assetsmanager.js里的下面这段里面加个sleep功能

processor_1.SoundProcessor = {
            onLoadStart: function (host, resource) {
                return __awaiter(this, void 0, void 0, function () {
                    var sound;
                    return __generator(this, function (_a) {
                        switch (_a.label) {
                            case 0:
                                sound = new egret.Sound();
                                let url = getURL(resource);
                                console.log("下载Sound URL="+url);   
                                sleep(20);                        
                                sound.load(url);   
                                console.log("下载完成");                                 
                                return [4 /*yield*/, promisify(sound, resource)];
                            case 1:
                                _a.sent();
                                return [2 /*return*/, sound];
                        }
                    });
                });
            },
            onRemoveStart: function (host, resource) {
                return Promise.resolve();
            }
        };
alexhy  登堂入室 | 2018-6-4 20:08:08
刚发现processor_1.SoundProcessor里不加sleep的话,可以在进游戏时调用一下接口限制下加载线程数到1,也可以解决安卓机下载mp3卡死的问题。
RES.setMaxLoadingThread(1);
alexhy  登堂入室 | 2018-6-5 09:40:58
貌似就是多线程加载mp3会出问题,本地加载也会,只是概率小点,官方能否在加载mp3时强制使用一个线程?
alexhy  登堂入室 | 2018-6-5 10:50:13
目前只能通过分开下载,在先mp3的资源组时调用RES.setMaxLoadingThread(1);,下其他资源时用RES.setMaxLoadingThread(2)解决;
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

返回顶部