plus.downloader下载很慢怎么解决??? 小米手机 我直接在浏览器创建的下载任务 手机任务栏网速 显示能达到 2m/s 同样的下载链接 在uniapp里 然后观察手机任务栏网速 显示400k/s 这差的也太多了吧?
现在下载大文件2m每秒的跑,在Android7、8直接卡ui界面,ui界面点击半天没响应,占用了线程吧, Android10有些低端机型也会卡界面 已使用官方demo测过,改成网速快的大文件,uni. downloadFile或者plus. downloader这两个api都会出现这问题 uni下载是否开了多线程并行,还是并发?
10 个回复
likemea4 (作者)
111111
likemea4 (作者)
1111
likemea4 (作者)
????
likemea4 (作者)
....
likemea4 (作者)
00000
8***@qq.com - Kobe
请问作者,这个问题解决了么
h***@163.com
现在下载大文件2m每秒的跑,在Android7、8直接卡ui界面,ui界面点击半天没响应,占用了线程吧,
Android10有些低端机型也会卡界面
已使用官方demo测过,改成网速快的大文件,uni. downloadFile或者plus. downloader这两个api都会出现这问题
uni下载是否开了多线程并行,还是并发?
DCloud_Android_DQQ
麻烦提供一个可复现卡顿的demo.
2020-12-18 11:35
h***@163.com
回复 DCloud_Android_DQQ:uni.downloadFile({
url: "阿里云oss存储视频链接,手机下载网速超越2M",
success: (res) => {
console.log('downloadFile success, res is', res)
},
fail: (err) => {
console.log('downloadFile fail, err is:', err)
}
})
uniapp,app端,打包使用视频模块
测试手机,android7 android8,
网速2m/s,点击界面切换(或当前界面的按钮等,点击事件,响应缓慢,触发的函数未执行(console.log未打印,隔几秒才响应
android10使用 plus.downloader创建的下载任务下载,同时下载3个以上大文件,触发的各事件也会响应缓慢
2020-12-21 18:31
道道123
同样遇到这样的问题,大家有解决么?速度很慢,顶多就2M/s,多文件下载的时候就只有300~400K/S的速度,有并发运行等方式吗?
DCloud_Android_DQQ
提供一下可以复现问题的链接地址。我试试看
2020-12-17 15:10
道道123
回复 DCloud_Android_DQQ: http://learmbucket.oss-cn-shenzhen.aliyuncs.com/mp3_CN7bff19479f8849f5a4f0e7a2f9c942c4119-19.mp3?Expires=1921819851&OSSAccessKeyId=LTAI4GAoo82zCzzqH1TTPg4K&Signature=RWgUzloKNn8N1HCahkroGWNaMXk%3D 可以用这个链接下载多次,模拟批量文件下载试试,大概我是批量下载2000多个这样的小文件,使用循环方式。
2020-12-17 15:16
DCloud_Android_DQQ
回复 道道123: 你还需要给我一下demo. 5+ api里 不同的用法,走的逻辑不一样。
2020-12-18 12:05
道道123
回复 DCloud_Android_DQQ: 方法就是:plus.downloader.createdownload 用法是:递归的形式循环一个一个的进行下载。
2020-12-19 11:27
道道123
回复 道道123: let i = 0;
downloadaudios();
async function downloadaudios(){
let retry = 0;
if(i>=allAudios.length){
booksObjectSaveLocal(appId, bookId, booksObject);
me.saveAudioLocal(allAudios, data, alreadyDownloadList);
//通知个人中心更新下载书籍列表
uni.$emit('alreadyDownloadBook_');
return;
}
godownload();
function godownload(){
console.log("下载第"+i+"个音频")
let downloadUrl = allAudios[i].fileName;
if(downloadUrl === 'noaudio'){ //无音频,直接下一个
console.log("无音频",downloadUrl);
i++;
let percent = lastPercent + parseInt(i / totalLength 100);
me.percent = percent;
downloadaudios();
return;
}
console.log("音频存在,开始下载")
let pageIdback3 = allAudios[i].pageId.slice(-3);
let filename = "_doc/b/"+bookIdback3+"/v/"+allAudios[i].type+pageIdback3+allAudios[i].num+".mp3";
uni.getSavedFileInfo({
filePath:filename,
success: (suc) => {
console.log("文件已存在跳过下载",suc);
i++;
let percent = lastPercent + parseInt(i / totalLength 100);
me.percent = percent;
downloadaudios();
},
fail: (err) => {
console.log('文件不存在,开始下载第'+i+"个音频",err);
let task = plus.downloader.createDownload(downloadUrl,{filename:filename,timeout:6,retry:3,retryInterval:3},(res,state)=>{
console.log("下载情况",state,i);
if(state == 200){
//下载成功
let filepath = plus.io.convertLocalFileSystemURL(res.filename);
allAudios[i].fileName = res.filename;
i++;
let percent = lastPercent + parseInt(i / totalLength 100);
me.percent = percent;
console.log("filepath",filepath);
downloadaudios();
}else{
i++;
plus.downloader.clear();
let percent = lastPercent + parseInt(i / totalLength 100);
me.percent = percent;
downloadaudios();
}
})
task.start();
}
})
2020-12-19 11:30
黑子
回复 道道123: 我遇到你一样的问题,我一次性创建了5000个下载。你创建了多少,问题还有吗?
2021-01-18 13:58
道道123
回复 黑子: 我比较少创建了2000个左右的下载链接,建议把这5000个下载打包压缩成一个下载,下载后进行解压吧!会快很多
2021-01-18 16:45
w***@163.com
楼主表达下载速度慢,怎么解决,全部都点不到题上,凭我们自己解决不了,浏览器下载快多了。
DCloud_Android_DQQ
用最新版本hx 试试还有没有这个问题。