一种文件下载方法及装置
技术领域
本申请涉及计算机技术领域,尤其涉及一种文件下载方法及装置。
背景技术
随着移动互联网技术的不断发展,越来越多的用户习惯于在移动终端上播放文件,从而可随时随地分享文件资源。例如,用户往往通过移动终端播放音频、视频、图像等媒体文件,或者播放文本文件等。
通常的,终端会通过离线方式播放文件。终端在离线播放文件之前,会预先将存储于服务器上的文件下载到终端本地,然后根据播放请求,离线播放终端本地存储的文件。尤其是在需要离线播放属于同一文件集合的文件(也称为系列文件)时,终端需要预先将文件集合中的待播放文件下载到本地。
在现有技术中,终端将存储于服务器上的文件下载到终端本地之前,需要用户在下载页面上输入下载指令,终端只有在收到该下载指令时,才执行相应的下载任务。
例如,假设电视连续剧中的所有剧集(如,第1集~第10集)构成一个文件集合。用户通过终端下载该文件集合中的第1集~第10集时,需要在下载页面上手动点击各剧集对应的下载按钮,来输入下载指令。终端在接收到各剧集对应的下载指令时,开始执行相应的下载任务。
由此可见,用户需要通过终端下载每一个剧集时,终端只有在接收到用户手动输入的下载指令时,才开始执行相应的下载任务,显然,用户操作的便利性较低。
发明内容
本申请实施例提供的文件下载方法及装置,用以解决现有技术在下载文件时,需要用户手动输入下载指令,导致用户操作的便利性较低的问题。
本申请实施例提供的一种文件下载方法,包括:
确定当前文件;其中所述当前文件包括:当前被操作的文件或已下载的文件;
确定所述当前文件所属的文件集合;
下载所述文件集合中的其他文件。
本申请实施例提供的另一种文件下载方法,包括:
确定预设存储区域的可用存储空间大于预设阈值;
确定与当前正在播放的视频文件关联的下一个视频文件;
自动下载所述下一个视频文件到所述预设存储区域。
本申请实施例提供的一种文件下载装置,包括:
第一确定模块,用于确定当前文件;其中,所述当前文件包括:当前被操作的文件或已下载的文件;
第二确定模块,用于确定所述当前文件所属的文件集合;
下载模块,用于下载所述文件集合中的其他文件。
本申请实施例提供的另一种文件下载装置,包括:
第一确定模块,用于确定预设存储区域的可用存储空间大于预设阈值;
第二确定模块,用于确定与当前正在播放的视频文件关联的下一个视频文件;
下载模块,用于自动下载所述下一个视频文件到所述预设存储区域。
本申请实施例提供的一种文件下载方法及装置,该方法终端确定当前文件,该当前文件包括:当前被操作的文件或已下载的文件,并确定该当前文件所属的文件集合,下载该文件集合中的其他文件。显然,该方法在下载文件之前,不需要用户手动输入下载指令,而是在确定文件所属的文件集合之后,就执行相应的下载任务,这样就可有效提高用户操作的便利性。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本申请实施例提供的一种文件下载方法流程示意图;
图2为本申请实施例提供的一种文件下载装置结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,以下将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
以下将结合附图具体说明本申请实施例提供的文件下载方法及装置。
参见图1,为本申请实施例提供的文件下载方法,包括以下步骤:
S101、确定当前文件。
在本申请实施例中,所述的当前文件包括但不限于是音频、视频、图片等媒体文件,或者也可以是Txt、PDF等格式的文本文件等。
所述的当前文件可能是文件集合中的某一个文件。例如,所述的当前文件可能是电视连续剧、系列电影、系列小说等文件集合中的一个剧集、一部电影、一部小说等文件。
本申请实施例中所述的当前文件至少包括:终端确定的当前被操作的文件,或者当前已下载的文件(以下称已下载文件)。
其中,当前被操作的文件包括但不限于:终端确定的当前被删除的文件、当前被播放的文件,或当前被下载的文件等;其中,当前被删除的文件是指当前正在被删除的文件,当前被下载的文件是指当前正在被下载的文件。当前已下载的文件包括但不限于:终端的内存或缓存等存储区域中当前存储的已下载文件。
例如,在实际应用场景中,用户往往会通过终端上的播放应用(Application,APP)播放电视连续剧或系列电影等媒体文件,或者播放Txt、PDF等格式的文本文件。
当播放APP启动后,终端则可确定当前文件。
具体的,当播放APP启动后,终端可开始监测终端的存储区域中是否存储有已下载文件,若是,终端可确定该已下载文件为当前文件。
或者,终端还可监测已下载文件中,是否存在当前被删除的文件,若是,则终端可确定该当前被删除的文件为当前文件。
或者,终端还可监测是否存在当前被播放的文件或当前被下载的文件,若是,则终端可确定该当前被播放的文件或当前被下载的文件为当前文件。
当然,本申请实施例所述的当前被操作的文件,还可以包括当前被分享的文件或当前被点赞的文件等。
需要说明的是,终端在监测当前被操作的文件或已下载文件时,可实时监测文件或可每间隔设定的时间监测文件,这里不做具体限制。
S102、确定当前文件所属的文件集合。
考虑到在实际应用场景中,文件集合的集合名和文件名通常具有相同的关键词。
则在本申请实施例中,当终端需要确定当前文件所属的文件集合时,可根据当前文件的文件名,确定当前文件所属的文件集合。
具体的,当终端确定当前文件之后,根据该当前文件的文件名确定该文件名中的指定关键词,将包含有该指定关键词的集合名对应的文件集合,确定为当前文件所属的文件集合;其中,所述的指定关键词为文件名中除序号之外的关键词。
例如,假设电视连续剧A(即文件集合)包括十个剧集(文件),如包括第1集~第10集。其中,电视连续剧A对应的集合名为A,剧集对应的文件名可以为“Ax”,其中,x为1~10的正整数;则“Ax”中的“x”为文件名中的序号。
假设终端中的播放APP正在在线播放电视连续剧A中的第3集,该第3集对应的文件名为“A3”。
终端可监测到该当前被播放的剧集(第3集),将该剧集确定为当前剧集(即当前文件)。终端在确定当前剧集所属的电视连续剧时,可首先确定该当前剧集的文件名为“A3”,然后确定文件名中除序号“3”之外的指定关键词为“A”,确定包含有该指定关键词“A”的集合名对应的电视连续剧A(文件集合)为当前剧集(第3集)所属的文件集合。
S103、下载文件集合中的其他文件。
沿用上例,当终端确定当前剧集(第3集)所属的文件集合为电视连续剧A时,则直接自动下载电视连续剧A中的其他剧集。例如,可自动下载电视连续剧A中,序号大于当前剧集的序号对应的全部剧集(第4集~第10集),或部分剧集(如,第4集~第6集)。
上述图1所示的文件下载方法,终端首先确定当前文件,以及该当前文件所属的文件集合,然后自动下载该文件集合中的其他文件。显然,终端在下载文件之前,不需要用户手动输入下载指令,而是在确定当前文件以及该当前文件所属的文件集合后,可自动下载该文件集合中的其他文件,从而可有效提高用户操作的便利性。
在本申请实施例中,通过步骤S101确定的当前文件为当前被操作的未下载文件时,则上述图1所示的方法还包括:下载当前文件。进一步的,将下载的当前文件保存在终端的存储区域中。
具体的,考虑到在实际应用场景中,当终端确定的当前文件为当前被播放的文件时,如果该被播放的文件为终端未下载文件时,则通过步骤S103下载其他文件时,还需要下载该当前文件。但是,如果该被播放的文件为终端已下载文件时,则没必要下载当前文件。
此外,若终端确定的当前文件为当前被删除的文件或当前被下载的文件时,该当前被删除的文件已经在终端本地,且正在被从本地删除,没必要下载该当前文件;当前被下载的文件,正在被下载,也没必要下载该当前文件。
在本申请实施例中,考虑到实际应用场景中,属于同一个文件集合的已下载文件和当前被操作的文件可能包括多个。
则在步骤S101中,终端在确定当前文件时,可确定各已下载文件和当前被操作的文件中最大序号对应的文件为当前文件。
例如,假设终端的存储区域存储有已下载的电视连续剧A中的第1集、第3集,并假设终端当前监测到正在删除第1集、正在播放未下载的第2集,以及监测到存储区域存储有第3集。
则,终端可确定已下载第3集、正在被操作(被删除和被播放)的第1集和第2集对应的序号,分别为3、1、2,在序号3、1、2中确定最大序号3对应的剧集(第3集)为当前文件。
由此可见,在本申请实施例中,当监测到的文件为已下载文件和/或当前被操作的文件时,终端确定的当前文件的序号为:已下载文件和当前被操作的文件对应的各序号中的最大序号。
在本申请实施例中,可在终端中预设下载文件的规则,则在步骤S103中,终端在下载文件集合中的其他文件时,可按照该预设规则,确定需要下载的文件,并下载该确定的需要下载的文件。
由于终端确定的当前文件的序号为已下载文件和当前被操作的文件对应的各序号中的最大序号,因此,可以设置预设规则包括下述的规则一。
规则一:当前需要下载的文件的序号大于当前文件的序号。
当通过规则一确定需要下载的文件的数量较多时,可能存在因终端存储区域的可用存储空间有限,而导致下载失败的问题。则可以设置预设规则还包括下述的规则二。
规则二:当前需要下载的文件的数量不超过M,其中,M≤N,N为文件集合中的所有文件的总数量,M和N为正整数。
则在步骤S103中,终端按照上述规则一,确定需要下载的文件,具体包括:
确定当前文件的序号,根据文件集合中其他文件的序号,确定大于当前文件对应序号的其他序号,将该确定的其他序号对应的文件确定为需要下载的文件。
或者终端按照上述规则一和规则二的结合,确定需要下载的文件,具体包括:
确定当前文件的序号,根据文件集合中其他文件的序号,确定大于当前文件对应序号的其他序号,在该其他序号中,确定数量不超过M的序号对应的文件为需要下载的文件。
例如,假设预设规则包括规则一和规则二,规则二中的M=3。
则当终端监测到缓存中存储有电视连续剧A(包括第1集~第10集)中的第1集和第3集,且确定当前文件为第3集。
则终端在按照预设规则,确定需要下载的电视连续剧A中的其他剧集时,具体的:
确定当前剧集(第3集)的序号为3,在其他文件(第4集~第10集)对应的序号(4~10)中,确定序号大于3的序号4~10,在序号4~10中确定三个序号对应的三个剧集为当前需要下载的剧集,例如,可确定序号4、6、7对应的第4集、第6集和第7集为当前需要下载的剧集。
考虑到在实际应用场景中,用户通过终端播放完当前已下载文件之后,习惯于通过终端播放与该已下载文件的序号相连,且大于该序号的序号对应的已下载文件。例如,用户观看完第3集之后,习惯于依次观看第4集、第5集、第6集,如果终端确定当前文件为第3集,且确定需要下载的文件为第4集、第6集和第7集时,就会漏掉对第5集的下载,用户就不会通过离线方式观看到第5集。则可以设置预设规则还可包括下述的规则三。
规则三:按照文件集合中的各文件序号从小到大的顺序,从第一个大于当前文件序号的文件开始,依次选择M个文件,作为当前需要下载的文件。
沿用上例,当终端确定当前文件为第3集时,确定当前需要下载的文件,具体为:确定电视连续剧A中未下载的其他文件第2集、第4集~第10集分别对应的序号为2、4~10,则按照电视连续剧A中各剧集的序号1~10从小到大的顺序,从第一个大于第3集(当前文件)的序号4的剧集(文件)开始,即从第4集开始,依次选择三(M为三)个剧集,这三个剧集为第4集~第6集,将第4集~第6集作为当前需要下载的剧集。
考虑到在实际应用场景中,终端当前需要下载的文件的所需要存储空间可能会大于本地可用存储空间,导致下载失败。
则在本申请实施例中,终端在下载文件集合中的其他文件时,可首先确定本地可用存储空间,根据可用存储空间下载文件集合中的其他文件。
具体的,可确定本地可用存储空间,以及当前需要下载的文件需要存储空间,判断可用存储空间是否大于需要存储空间,若是,则下载当前需要下载的文件,否则,重新确定当前需要下载的文件,直到可用存储空间大于需要存储空间时,下载重新确定的当前需要下载的文件。
其中,终端在重新确定当前需要下载的文件时,具体可在当前需要下载的文件对应的序号中,去掉最大的一个序号,将剩余序号分别对应的文件确定为重新确定的当前需要下载的文件。
例如,假设本地可用存储空间为700MB,如果终端确定需要下载的剧集为电视连续剧A中的第4集~第6集,若第4集~第6集各剧集实际占用存储空间为250MB,则终端确定第4集~第6集需要存储空间为750MB,经过判断,确定可用存储空间700MB小于需要存储空间750MB,则需要重新确定当前需要下载的剧集。
终端在重新确定当前需要下载的剧集时,可在当前需要下载的各剧集(第4集~第6集)对应的序号4~6中,去掉最大序号6,将剩余序号4和5分别对应的剧集(第4集和第5集),确定为重新确定的当前需要下载的剧集。
在上例中,若第4集~第6集,每一个剧集实际占用存储空间均为200MB,则终端确定第4集~第6集对应需要存储空间为600MB,经过判断,确定可用存储空间700MB大于需要存储空间600MB,则直接下载第4集~第6集。
上述的根据可用存储空间下载文件集合中的其他文件,还可以通过如下方式确定:
确定本地可用存储空间,根据该可用存储空间和平均一个文件的需要存储空间,预测当前需要下载的文件的数量,根据该数量确定当前需要下载的文件,然后直接下载确定的当前需要下载的文件。
当预测出的当前需要下载的文件的数量较大,且可用存储空间较小而不够存储时,重新预测当前需要下载的文件的数量,具体的,可将当前需要下载的文件的数量减小设定数值,将减小后的数量作为重新预测出的当前需要下载的文件的数量。
例如,假设本地可用存储空间为700MB,电视连续剧中的平均一个剧集占用存储空间预测为200MB。
根据可用存储空间700MB与预测的占用存储空间200MB之间的比值3.5的整数部分3,确定该整数部分3为预测当前需要下载的文件的数量,即需要下载三个剧集。
若当前每一个剧集实际占用存储空间为300MB,下载三个剧集需要占用900MB的存储空间,则终端确定700MB的可用空间不够存储需要下载的三个剧集。终端可将预测的当前需要下载的文件的数量3减去设定数值(如,设定数值为1),即确定3减1的结果为2,则确定重新预测的当前需要下载的文件的数量为2。
在本申请实施例中,在下载文件集合中的其他文件时,还可以根据本地可用存储空间以及上述的预设规则,下载文件集合中的其他文件。
当根据可用存储空间预测到需要下载的文件的数量后,则该数量可以作为属于预设规则的规则二中M的取值。
在本申请实施例步骤S103中,终端在下载文件集合中的其他文件时,可通过离线缓存方式下载该文件集合中的其他文件,也可以直接下载在线文件,该在线文件为需要下载的文件集合中的其他文件。
例如,假设距离终端最近的服务器为第一服务器,需要下载的文件存储在第二服务器上。
通过离线缓存方式下载文件具体可以为:终端通过播放APP向第一服务器发送下载请求,以使得第一服务器下载需要下载的文件,则该第一服务器在接收到下载请求之后,可以从第二服务器下载文件,并将下载的文件保存在第一服务器,供终端直接从第一服务器下载。终端在向第一服务器发送下载请求后,用户可以关闭播放APP,或者直接关闭终端。终端需要下载文件时,从该第一服务器上直接下载预先保存的文件,从而可有效节约终端的带宽,并省去终端的挂机时间。
直接下载在线文件时,具体为:终端通过该播放APP首先向第一服务器发送下载请求,第一服务器然后再从第二服务器中获取需要下载的文件,将下载的文件发送给终端。在文件下载的过程中,需要播放APP一直保持开启状态(即一直挂机),并且下载效率也较低。
在本申请实施例中,优选通过离线缓存方式下载文件,但是也不限于上述两种下载方式,这里不做具体限制。
本申请实施例还提供另一种文件下载方法,包括以下步骤:
步骤一:确定预设存储区域的可用存储空间大于预设阈值。
所述的预设存储区域可以是用于缓存视频文件的存储区域,所述的预设阈值可以为平均一个视频文件的所需存储空间。
步骤二:确定与当前正在播放的视频文件关联的下一个视频文件。
考虑到在实际应用场景中,由于属于同一个视频文件集合的各视频文件(即系列性视频文件)相互之间在剧情上具有关联性(即具有连续性),也就是说,各视频文件存在先后播放顺序。
因此,本申请所述的下一个视频文件为:播放顺序位于当前播放的视频文件之后,且剧情与当前播放的视频文件相连续的视频文件。
若剧情与当前播放的视频文件相连续的视频文件已经下载时,本申请所述的下一个视频文件为:播放顺序位于该已经下载的视频文件之后,且剧情与该已经下载的视频文件相连续的视频文件。
步骤三:自动下载步骤二中确定的下一个视频文件到预设存储区域。
自动下载视频文件,即不需要用户输入任何指令,就可直接下载视频文件。
其中,步骤一和步骤二的先后顺序可以互换。
可选的,当确定预设存储区域中存储的视频文件正在被删除时,自动下载下一个视频文件到预设存储区域。即自动下载下一个视频文件可以由正在删除一个视频文件这一动作来触发。
以上为本申请实施例提供的文件下载方法,基于同样的思路,本申请实施例还提供了文件下载装置,如图2所示。
参见图2,为本申请实施例提供的文件下载装置,该装置包括:
第一确定模块21,用于确定当前文件,所述当前文件包括:当前被操作的文件或已下载的文件;
第二确定模块22,用于确定所述当前文件所属的文件集合;
下载模块23,用于下载所述文件集合中的其他文件。
可选的,所述当前被操作的文件包括:当前被删除的文件、当前被播放的文件,或当前被下载的文件。
可选的,所述下载模块23具体用于:按照预设规则,确定需要下载的文件,下载所述需要下载的文件。
可选的,所述下载模块23具体用于:根据所述文件集合中其他文件的序号,确定大于当前文件对应序号的其他序号,将所述确定的其他序号对应的文件确定为需要下载的文件。
可选的,所述下载模块23具体用于:按照序号从小到大的顺序,下载所述需要下载的文件。
可选的,所述下载模块23具体用于:确定本地可用存储空间;根据所述可用存储空间下载所述文件集合中的其他文件。
可选的,所述下载模块23具体用于:通过离线缓存方式下载所述文件集合中的其他文件。
本申请实施例还提供另一种文件下载装置,包括:
第一确定模块,用于确定预设存储区域的可用存储空间大于预设阈值;
第二确定模块,用于确定与当前正在播放的视频文件关联的下一个视频文件;
下载模块,用于自动下载所述下一个视频文件到所述预设存储区域。
可选的,所述下载模块具体用于,当确定所述预设存储区域中存储的视频文件正在被删除时,自动下载所述下一个视频文件到所述预设存储区域。
综上所述,本申请实施例提供的文件下载方法,终端首先确定当前文件,以及该当前文件所属的文件集合,然后直接(即自动)下载该文件集合中的其他文件;其中,当前被操作的文件或已下载的文件。显然,该方法终端在下载文件之前,不需要用户手动输入下载指令,而是在确定当前文件当前被操作时或已经被下载时,可直接下载该当前文件所属的文件集合中的其他文件,从而可有效提高用户操作的便利性。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。