likemea4
likemea4
  • 发布:2019-12-23 10:08
  • 更新:2022-02-07 10:55
  • 阅读:1788

plus.downloader下载很慢怎么解决???

分类:uni-app

plus.downloader下载很慢怎么解决???

小米手机 我直接在浏览器创建的下载任务 手机任务栏网速 显示能达到 2m/s
同样的下载链接 在uniapp里 然后观察手机任务栏网速 显示400k/s
这差的也太多了吧?

2019-12-23 10:08 负责人:无 分享
已邀请:
likemea4

likemea4 (作者)

111111

likemea4

likemea4 (作者)

1111

likemea4

likemea4 (作者)

????

likemea4

likemea4 (作者)

....

likemea4

likemea4 (作者)

00000

8***@qq.com

8***@qq.com - Kobe

请问作者,这个问题解决了么

h***@163.com

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

道道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

w***@163.com

楼主表达下载速度慢,怎么解决,全部都点不到题上,凭我们自己解决不了,浏览器下载快多了。

DCloud_Android_DQQ

DCloud_Android_DQQ

用最新版本hx 试试还有没有这个问题。

该问题目前已经被锁定, 无法添加新回复