起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

楼主: 开发者001

[处理中3] 关于视频下载的问题

[复制链接]

69

主题

320

帖子

658

积分

高级会员

Rank: 4

积分
658
QQ
 楼主| 发表于 2017-8-8 18:40:46 | 显示全部楼层
liangyongfei 发表于 2017-8-8 17:42
进度条需要自己一直渲染的!渲染进度条的代码还执行吗??
你可以打印日志调试下!

我在list 的 onAfterRender 里面进行了渲染进度条。但是我应该怎么调取当前视频下载的进度呢。仿佛只有在第一次点下载的时候会显示下载进度。
回复 支持 反对

使用道具 举报

发表于 2017-8-9 09:32:29 | 显示全部楼层
开发者001 发表于 2017-8-8 18:40
我在list 的 onAfterRender 里面进行了渲染进度条。但是我应该怎么调取当前视频下载的进度呢。仿佛只有在 ...

list是绑定data组件的!所以进度的数值也应该存储在data组件字段中(可以添加一个计算列,表示当前进度)
每次更新进度都记录在当前行data组件中!
渲染的时候,通过获取当前行的字段!获取进度进行渲染!

进度条的增长可以参考案例
http://docs.wex5.com/wex5-ui-question-list-2148/
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

69

主题

320

帖子

658

积分

高级会员

Rank: 4

积分
658
QQ
 楼主| 发表于 2017-8-9 13:26:14 | 显示全部楼层
liangyongfei 发表于 2017-8-9 09:32
list是绑定data组件的!所以进度的数值也应该存储在data组件字段中(可以添加一个计算列,表示当前进度) ...

我看了也试了。如果我不退出当前页面进度条是没有问题的。如果我退出了。再进来的时候进度条就停在我关闭页面的那个进度不动了。如果下载的多了就什么都出不来了
回复 支持 反对

使用道具 举报

发表于 2017-8-9 14:34:31 | 显示全部楼层
开发者001 发表于 2017-8-9 13:26
我看了也试了。如果我不退出当前页面进度条是没有问题的。如果我退出了。再进来的时候进度条就停在我关闭 ...

首先,请问你是怎么渲染进度条的??是自定义了一个js方法实现的吗?? 比如setInterval 方法
离开页面后,这个js方法还是否一直执行呢??
重新进入后 setInterval  方法还在执行吗??

如果js代码是执行的,或者动态绑定的值是一直变化的!那么进度条就可以
如果js停止执行了,当然页面就没变化了!!

另外不建议多个进度条同时渲染!除非你不要搞混了!!! 是多个setInterval   同时渲染多个进度条吗??

你是怎么做的??
重新进入页面后, onActive 事件中调用 this.comp('list').refresh()  是否可以?? 重新渲染试试!

qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

69

主题

320

帖子

658

积分

高级会员

Rank: 4

积分
658
QQ
 楼主| 发表于 2017-8-10 09:46:13 | 显示全部楼层
liangyongfei 发表于 2017-8-9 14:34
首先,请问你是怎么渲染进度条的??是自定义了一个js方法实现的吗?? 比如setInterval 方法
离开页面后 ...

1 我参考 http://bbs.wex5.com/forum.php?mod=viewthread&tid=88234  做了一个视频下载功能。第一次点击下载的时候可以获取到下载的进度。所以是没有没问题的
2 这是我下载的页面。在用户退出这个页面  再次进入的时候我应该怎么获取每个下载对应的进度。
3 用户退出这个页面,视频还是在下载的,但是我应该怎么才能知道如果用户退出了  进度是否还在统计
微信图片_20170810094328.jpg
回复 支持 反对

使用道具 举报

发表于 2017-8-10 11:52:43 | 显示全部楼层
开发者001 发表于 2017-8-10 09:46
1 我参考 http://bbs.wex5.com/forum.php?mod=viewthread&tid=88234  做了一个视频下载功能。第一次点击 ...

2. 首先请问你是 是按照那个案例,通过 代码进行渲染的吗??
downLoadFile   方法吗??

data组件中应该有一个字段,用于记录 进度的值!  重现打开这个页面的时候!从 data组件中 获取进度即可!
你可以使用
console.log()  打印一下!下载的回调函数  fileTransfer.onprogress  是否还在一直执行呢??

如果这个代码还在执行就应该可以进行渲染的!

如果 获取最新进度的方法停止运行了,那就是获取不到了!!你需要调试跟一下!找到原因!

2.需要调试代码!打印日志,判断代码是否还在执行,判断进度是否还在统计!
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

69

主题

320

帖子

658

积分

高级会员

Rank: 4

积分
658
QQ
 楼主| 发表于 2017-8-10 14:04:18 | 显示全部楼层
liangyongfei 发表于 2017-8-10 11:52
2. 首先请问你是 是按照那个案例,通过 代码进行渲染的吗??
downLoadFile   方法吗??

请问这个要怎么打印日志调试呢。我不太懂这个。
回复 支持 反对

使用道具 举报

发表于 2017-8-10 18:03:20 | 显示全部楼层
开发者001 发表于 2017-8-10 14:04
请问这个要怎么打印日志调试呢。我不太懂这个。

最简单的!你可以alert() 如果一直可以弹出alert ,那就说明代码一直在执行!

console.log()   在控制台可以看到打印的日志!  可以上网搜下!
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

69

主题

320

帖子

658

积分

高级会员

Rank: 4

积分
658
QQ
 楼主| 发表于 2017-8-16 10:59:03 | 显示全部楼层
liangyongfei 发表于 2017-8-10 18:03
最简单的!你可以alert() 如果一直可以弹出alert ,那就说明代码一直在执行!

console.log()   在控制台 ...

请问我要暂停下载,我在插件里看到了这个方法
/**
        @name cordova-plugin-file-transfer.abort
        @function
        @returns {void}
        @description 终止文件传输
*/


private void abort(String objectId) {
                final RequestContext context;
                synchronized (activeRequests) {
                        context = activeRequests.remove(objectId);
                }
                if (context != null) {
                        // Closing the streams can block, so execute on a background thread.
                        cordova.getThreadPool().execute(new Runnable() {
                                public void run() {
                                        synchronized (context) {
                                                File file = context.targetFile;
                                                if (file != null) {
                                                        file.delete();
                                                }
                                                // Trigger the abort callback immediately to minimize
                                                // latency between it and abort() being called.
                                                JSONObject error = createFileTransferError(ABORTED_ERR, context.source, context.target, null, -1, null);
                                                context.sendPluginResult(new PluginResult(PluginResult.Status.ERROR, error));
                                                context.aborted = true;
                                                if (context.connection != null) {
                                                        try {
                                                                context.connection.disconnect();
                                                        } catch (Exception e) {
                                                                Log.e(LOG_TAG, "CB-8431 Catch workaround for fatal exception", e);
                                                        }
                                                }
                                        }
                                }
                        });
                }
        }


我想知道暂停方法的那个参数我该传什么过去。
回复 支持 反对

使用道具 举报

发表于 2017-8-16 15:43:00 | 显示全部楼层
开发者001 发表于 2017-8-16 10:59
请问我要暂停下载,我在插件里看到了这个方法
/**
        @name cordova-plugin-file-transfer.abort

不需要传递参数!  这个js对象会自己记录id的
看js代码
/Native/plugins/cordova-plugin-file-transfer/www/FileTransfer.js
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2025-7-8 13:21 , Processed in 0.058754 second(s), 24 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表