缓存视频数据的方法、装置、计算机设备和存储介质与流程

文档序号:24813762发布日期:2021-04-27 13:30阅读:125来源:国知局
缓存视频数据的方法、装置、计算机设备和存储介质与流程

1.本申请涉及计算机技术领域,尤其涉及一种缓存视频数据的方法、装置、计算机设备和存储介质。


背景技术:

2.观看视频时,若未提前缓存视频内容,用户想要观看对应的视频时,影响开播速率,从而影响观看体验。为避免影响用户的观看体验,目前主要通过缓存固定数目视频信息来解决该问题。但缓存固定数量的视频数据时,若缓存的视频数据过多,则会浪费系统资源,影响系统性能,若缓存的视频数据过少,则同样影响用户体验,无法有效的平衡用户体验和系统资源被浪费的问题。


技术实现要素:

3.为了解决上述技术问题,本申请提供了一种用于保证了用户观看体验的同时平衡产品性能的缓存视频数据的方法、装置、计算机设备和存储介质。
4.第一方面,本申请提供了一种缓存视频数据的方法,包括:
5.获取信息流页面的页面信息,所述信息流页面包括所述当前展示区域和待展示区域,所述当前展示区域为所述信息流页面在终端上显示的区域,所述页面信息包括视频展示区域、所述视频展示区域的位置信息和所述视频展示区域对应视频数据的视频标识,所述待展示区域包括第一视频展示区域;
6.获取缓存池中包含的视频数据的视频数据标识集合;
7.获取所述缓存池中视频数据的待缓存总时长;
8.根据所述当前展示区域的位置信息、所述第一视频展示区域的位置信息的位置差,计算所述第一视频展示区域被展示的预估时长;
9.当所述预估时长小于所述待缓存总时长,且所述视频数据标识集合中未包含所述第一视频展示区域对应的第一视频标识,将所述第一视频标识加入所述视频数据标识集合,以通过所述缓存池缓存所述视频数据标识集合中各个视频标识对应的视频数据。
10.第二方面,本申请提供了一种缓存视频数据的装置,包括:
11.信息获取页面,用于获取信息流页面的页面信息,所述信息流页面包括所述当前展示区域和待展示区域,所述当前展示区域为所述信息流页面在终端上显示的区域,所述页面信息包括视频展示区域、所述视频展示区域的位置信息和所述视频展示区域对应视频数据的视频标识,所述待展示区域包括第一视频展示区域;
12.数据标识获取页面,用于获取缓存池中包含的视频数据的视频数据标识集合;
13.待缓存总时长获取模块,用于获取所述缓存池中视频数据的待缓存总时长;
14.预估时长计算模块,用于根据所述当前展示区域的位置信息、所述第一视频展示区域的位置信息的位置差,计算所述第一视频展示区域被展示的预估时长;
15.缓存模块,用于当所述预估时长小于所述待缓存总时长,且所述视频数据标识集
合中未包含所述第一视频展示区域对应的第一视频标识,将所述第一视频标识加入所述视频数据标识集合,以通过所述缓存池缓存所述视频数据标识集合中各个视频标识对应的视频数据。
16.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述缓存视频数据的方法。
17.一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述缓存视频数据的方法。
18.上述缓存视频数据的方法、装置、计算机设备和存储介质,所述方法包括:获取信息流页面的页面信息,信息流页面包括当前展示区域和待展示区域,当前展示区域为信息流页面在终端上显示的区域,页面信息包括视频展示区域、视频展示区域的位置信息和视频展示区域对应视频数据的视频标识,待展示区域包括第一视频展示区域;获取缓存池中包含的视频数据的视频数据标识集合;获取缓存池中视频数据的待缓存总时长;根据当前展示区域的位置信息、第一视频展示区域的位置信息的位置差,计算第一视频展示区域被展示的预估时长;当预估时长小于待缓存总时长,且视频数据标识集合中未包含第一视频展示区域对应的第一视频标识,将第一视频标识加入视频数据标识集合,以通过缓存池缓存视频数据标识集合中各个视频标识对应的视频数据。进入信息流页面,缓存可见区域内的所有视频信息,不可见的视频信息通过滑动缓存策略进行缓存,即通过滑动时长是否大于缓存时长确定是否缓存不可见区域的视频数据,避免了采用固定缓存策略时缓存数据不足或缓存数据过多的问题,保证了用户观看体验的同时平衡产品性能。
附图说明
19.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
20.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
21.图1为一个实施例中缓存视频数据的方法的流程示意图;
22.图2为一个具体地实施例中缓存视频数据的方法的流程示意图;
23.图3为一个实施例中信息流页面的示意图;
24.图4为一个实施例中缓存视频数据的装置的结构框图;
25.图5为一个实施例中计算机设备的内部结构图。
具体实施方式
26.为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
27.如图1所示,在一个实施例中,提供了一种缓存视频数据的方法。参照图1,该缓存视频数据的方法具体包括如下步骤:
28.步骤s201,获取信息流页面的页面信息。
29.在本具体实施例中,信息流页面包括当前展示区域和待展示区域,当前展示区域为信息流页面在终端上显示的区域,页面信息包括视频展示区域、视频展示区域的位置信息和视频展示区域对应视频数据的视频标识,待展示区域包括第一视频展示区域。
30.具体地,信息流页面是用于承载信息的页面。当前展示区域是指当前时刻信息流页面中任意一个在终端上显示的区域。其中终端包括但不限于移动终端和台式终端等。待展示区域是指信息流页面中当前时刻未在终端上显示的区域,待展示区域可以通过滑动信息流页面进行展示。其中待展示区域是指沿信息流页面在预设方向滑动后可以被展示的区域。预设方向是指使得信息流页面的滑动距离增大的方向。页面信息可以包括各种形式内容的展示区域、各个展示区域对应的位置信息和各个展示区域对应的展示内容等。如信息流页面中包含视频展示区域、文字展示区域和图片展示区域等。视频展示区域用于展示视频内容,图片展示区域用于展示图片,文字展示区域用于展示文字信息。信息流页面的每个类型的展示区域包含对应的数据标识,如每个视频展示区域存在对应的视频数据标识。视频标识用于唯一标识视频数据。第一视频展示区域是指待展示区域中用于展示视频数据的区域。待展示区域对应的视频展示区域可以包括一个或多个,其中第一视频展示区域可以是指与当前展示区域距离最近的一个或多个视频展示区域。距离可以是指信息流页面的高度方向或宽度方向的距离,高度方向的距离是指待展示区域位于当前展示区域的下方/上方,宽度方向的距离是指待展示区域位于当前展示区域的左边/右边。其中信息流页面的高度和宽度与终端的高度和宽度并未完全一致,如终端显示屏的高度可能为信息流页面的宽度,同理终端显示屏的宽度可能为信息流页面的高度。
31.步骤s202,获取缓存池中包含的视频数据的视频数据标识集合。
32.具体地,缓存池是指用于缓存视频数据的数据缓存区。若缓存池中包含视频数据时,获取缓存池中包含的视频数据对应的视频数据标识,得到视频标识集合。若缓存池中不存在视频数据,则视频标识集合中不包含视频标识。每个视频展示区域对应一个视频数据,一个视频数据可以是指一集电视剧、一部电影、电影片段和电视剧片段等。
33.步骤s203,获取缓存池中视频数据的待缓存总时长。
34.具体地,待缓存总时长是指缓存完成缓存池中未完成缓存的视频数据所需的时长。该时长可以根据缓存池中包含的未完成缓存的视频数据的所占的内存大小以及缓存速率确定。其中,缓存速率可以根据当前时刻的网络下载速率确定,也可以根据已完成缓存的视频数据的下载速率确定。根据已缓存的视频数据的下载速率时,可以是根据已完成缓存的视频数据的内存大小和总共耗费的缓存时长,计算得到的平均缓存速率预估得到缓存速率。也可以是从单个已完成缓存视频数据的缓存速率中筛选得到,如选取其中的最小缓存速率。若缓存池中不存在未完成缓存的视频数据,则待缓存总时长为预先配置的时长,该时长的大小可以根据终端显示屏幕的大小和信息流页面的最大滑动速度等计算得到,也可以人为设置。
35.步骤s204,根据当前展示区域的位置信息、第一视频展示区域的位置信息的位置差,计算第一视频展示区域被展示的预估时长。
36.具体地,第一视频展示区域属于不可见区域,根据当前展示区域和第一视频展示区域的之间位置差,确定第一视频展示区域可能被展示的时间。第一视频展示区域距离当
前展示区域的越远,则预估时长越长,反之越短。该预估时长可以人为定义,也可以是根据信息流页面的最大滑动速度和位置差确定,还可以统计用户的历史滑动速度,根据用户的历史滑动速度确定。如选择用户使用过程中最快的滑动速度和位置差计算预估时长。
37.步骤s205,当预估时长小于待缓存总时长,且视频数据标识集合中未包含第一视频展示区域对应的第一视频标识,将第一视频标识加入视频数据标识集合,以通过缓存池缓存视频数据标识集合中各个视频标识对应的视频数据。
38.具体地,预估时长小于待缓存总时长,表示用户可能在预估时长内滑动到第一视频展示区域,此时若第一视频展示区域对应的视频数据未缓存,影响视频播放速率,从而影响用户的观看体验。故预估时长小于待缓存总时长的情况下,且缓存池中也未缓存第一视频展示区域对应的视频数据,即视频标识集合中未查找到第一视频标识,则将第一视频标识加入视频标识集合,以通过缓存池缓存视频标识集合中的各个视频标识对应的视频数据。若在视频标识集合中查找到了第一视频标识,则表示该视频标识对应的视频数据已经加入缓存池,无需重复加入。
39.在一个实施例中,缓存池中每个视频数据被缓存的内存大小一致。即每个视频数据都缓存相同大小数据。可以有效控制数据缓存的内存,若缓存整个视频数据,在视频数据内存较大时,所需的缓存时间长,且缓存所占的内容较大,浪费资源。
40.上述缓存视频数据的方法,对不可见区域的视频数据根据该视频数据被看见的时长是否小于缓存池中数据所需的缓存总时长确定是否缓存,避免了采用固定缓存策略时缓存数据不足或缓存数据过多的问题,保证了用户观看体验的同时平衡产品性能。
41.在一个实施例中,当前展示区域包括第二视频展示区域,获取缓存池中的视频数据的待缓存总时长之前,还包括:当视频数据标识集合中未包含第二视频展示区域对应的第二视频标识时,将第二视频标识加入视频数据标识集合。
42.具体地,第二视频展示区域是指位于当前展示区域用于展示视频数据的区域。当前展示区域包括的视频展示区域包括一个或多个,即第二视频展示区域可能为一个或多个,若存在多个第二视频展示区域时,将每个第二视频展示区域对应的视频标识与视频标识集合进行匹配,若任意一个第二视频展示区域对应的视频标识,存在于视频标识集合中,表示该第二视频展示区域对应的视频数据都已经加入缓存池,无需再次加入。若任意一个第二视频展示区域对应的视频标识,未存在于视频标识集合中,表示该第二视频展示区域对应的视频数据都未加入缓存池,将该第二视频展示区域对应的视频标识加入视频标识集合,并通过缓存池该视频标识对应的视频数据。
43.若可见区域存在视频展示区域,且视频展示区域对应的视频数据还未加入缓存池,则将可见区域中未加入缓存池的中的所有视频数据加入缓存池,可见区域的视频展示区域对应的视频的播放可能较大,故,如可见区域还存在未缓存的视频数据,需及时缓存该视频数据。
44.在一个实施例中,获取缓存池中的视频数据的待缓存总时长,包括:若缓存池中存在未完成缓存的视频数据,计算缓存池中每个未完成缓存的视频数据的待缓存时长的和,得到待缓存总时长。
45.具体地,未完成缓存的视频数据包括完全未缓存和部分缓存。其中视频数据的缓存可以通过缓存状态表示,缓存状态可以自定义,定义缓存状态包括待缓存、缓存中和已缓
存三种,则待缓存用于表示视频数据完全未缓存,缓存中用于表示视频数据已部分缓存,已缓存用于表示视频数据已完成缓存。获取缓存池中每个未完成缓存的视频数据所需的缓存时长,计算每个未完成缓存的视频数据所需的缓存时长的和,得到待缓存总时长。每个未完成缓存视频数据所需的缓存时长为估计时长。该估计时长可以根据已完成缓存的视频数据的缓存时长进行估计,也可以根据当前的网络下载速度进行估计。
46.在一个实施例中,获取缓存池中的视频数据的待缓存总时长,包括:若缓存池中存在未完成缓存的视频数据,计算缓存池中每个未完成缓存的视频数据的待缓存时长,以及第一预设时长的和,得到待缓存总时长。
47.具体地,第一预设时长为预先配置的时长,待缓存总时长等于预估完成所有未完成缓存的视频数据所需的缓存时长,与第一预设时长的和。设置第一预设时长是因为网络环境随时变化,在增加一个预设时长,预留更多的时间缓存数据。
48.在一个实施例中,获取缓存池中的视频数据的待缓存总时长,包括:若缓存池中的视频数据都已完成缓存,将第二预设时长作为待缓存总时长。
49.具体地,若缓存池中不存在未缓存的视频数据,即都已经完成缓存,或不存在视频数据,则将预先设置的第二预设时长作为待缓存总时长。第二预设时长可以根据用户的之前的滑动速度和终端的显示屏高度确定,可以为预先定义,还可以根据信息流流页面的最大滑动速度和终端的显示屏高度/宽度确定,也可以根据已完成缓存的视频数据所需的时长确定。如第二预设时长等于显示屏高度/宽度与最大滑动速度比值,也可以等于所有已完成缓存的视频数据中的最大缓存时长。
50.在一个实施例中,当缓存池中存在已完成缓存的视频数据时,统计已完成缓存的视频数据的内存大小,统计总的缓存时长,计算内存大小与缓存时长的比值,得到缓存速率,根据缓存速率计算未完成缓存数据的所需的缓存时长,得到待缓存总时长。
51.在一个实施例中,当缓存池中存在已完成缓存的视频数据时,获取缓存池中的视频数据的待缓存总时长之前,还包括:获取每个已完成缓存的视频数据的内存大小和缓存时长;根据每个已完成缓存的视频数据的内存大小与缓存时长,计算缓存速率;根据最小缓存速率和缓存池中未完成缓存的视频数据的内存大小,计算得到待缓存总时长。
52.具体地,计算每个已经完成缓存的视频数据的缓存速率,即根据每个已经完成缓存的视频数据的内存大小和对应的缓存时长,计算得到该视频数据对应的缓存效率,从已完成缓存的视频数据的缓存效率中,选择最小缓存效率。采用最小缓存效率预估未完成缓存的视频数据所需的缓存时长。即根据未完成缓存的视频数据的内存大小比上最小缓存效率,得到待缓存总时长。采用最小缓存速率是因为最小缓存速率代表了已经完成缓存的视频数据的所需的最大缓存时长。
53.在一个实施例中,缓存池中各个视频数据的待缓存内存大小相同,当缓存池中存在已完成缓存的视频数据时,获取缓存池中的视频数据的待缓存总时长之前,还包括:获取每个已完成缓存的视频数据中的最大缓存时长;根据待缓存内存和最大缓存时长计算缓存速率;根据缓存速率和缓存池中未完成缓存视频的内存大小,计算得到待缓存总时长。
54.具体地,由于每个已经完成缓存的视频数据的内存大小相同。待缓存内存是指每个视频数据的缓存内存大小,该内存大小可以根据需求设置,在不同的情景在可以设置不同的大小。如在视频展示区域间隔大,且视频展示区域少对应的待缓存内存的值可以小于
视频展示区域多,且相距较小对应的待缓存内存的值。待缓存内存固定的情况下,缓存时长越大,则表示缓存速率越小,故选择已完成缓存的视频数据中的最大缓存时长,根据待缓存内存与最大缓存时长的比值,计算得到缓存速率,并根据该缓存速率计算缓存池中未完成的缓存视频所需的缓存时长,得到待缓存总时长。即统计缓存池中未完成缓存的视频数据的内存大小,该内存大小比上缓存速率得到待缓存总时长。
55.在一个实施例中,缓存池中各个视频数据的待缓存内存大小相同,当缓存池中存在已完成缓存的视频数据,且缓存池中的视频数据都已完成缓存,获取缓存池中的视频数据的待缓存总时长,包括:获取每个已完成缓存的视频数据中的最大缓存时长;将最大缓存时长作为待缓存总时长。
56.具体地,若缓存池中不存在未完成的缓存视频数据,且存在已经完成缓存的视频数据,则从已完成缓存的视频数据对应的缓存时长中选择最大缓存时长,将该最大缓存时长作为待缓存总时长。选择该最大缓存时长作为待缓存总时长是因为若需要缓存第一视频标识对应的视频数据时,预估完成该视频数据所需的时长为最大缓存时长。若第一视频展示区域被展示的预估时长,小于需要完成第一视频展示区域对应的视频数据时(最大缓存时长),可以将该视频数据加入缓存池,提前缓存该视频数据。
57.在一个实施例中,当前展示区域的位置信息包括当前展示区域在信息流页面的高度信息,第一视频展示区域的位置信息包括第一视频展示区域在信息流页面的高度信息;根据当前展示区域的位置信息、第一视频展示区域的位置信息之间的位置差,计算第一视频展示区域被展示的预估时长,包括:获取终端显示屏幕的屏幕高度;根据当前展示区域在信息流页面的高度信息、屏幕高度和第一视频展示区域在信息流页面的高度信息,计算得到第一滑动距离;根据第一滑动距离和预设滑动速度计算得到预估时长。
58.具体地,信息流页面的高度信息是指信息流页面可移动的方向对应的边的高度,如信息流页面可以上下滑动,则高度信息为信息流页面的上下边之间的距离,如信息流页面可以左右滑动,则高度信息为信息流页面的左右边之间的距离。屏幕高度是指与信息流的高度方向平行的边对应的高度。若当前展示区域的高度信息为信息流页面的已滑动距离,计算已滑动距离与屏幕高度的和,并采用第一视频展示区域的高度信息减去和,得到第一滑动距离。若当前展示区域的高度信息包括已滑动距离与屏幕高度的和,则直接采用第一视频展示区域的高度信息减去当前展示区域的高度信息,得到第一滑动距离。根据第一滑动距离和预设滑动速度计算得到预估时长。其中预设滑动速度可以自定义,如定义为信息流页面的最大滑动速度。该最大滑动速度为预先测试得到的极限滑动速度。预设滑动速度还可以是对用户的历史滑动速度进行统计分析得到的。采用最大滑动速度计算得到预估时长最短。预估时长最短,表示第一视频展示区域被展示的最快时间。即可以在第一视频展示区域被展示之前缓存第一视频展示区域对应的视频数据。
59.在一个实施例中,当检测到针对信息流页面的滑动操作时,获取滑动操作对应的第二滑动距离和滑动方向;当第二滑动距离大于预设距离阈值,且滑动方向与第一方向一致时,根据第二滑动距离和滑动方向更新当前展示区域,将更新后的当前展示区域作为当前展示区域,执行获取缓存池中包含的视频数据的视频数据标识集合,其中,第一方向为指向信息流展示页面第一边的方向。
60.在本实施例中,当第二滑动距离大于预设距离阈值,且滑动方向与第二方向一致
时,根据第二滑动距离和滑动方向更新当前展示区域,将更新后的当前展示区域作为当前展示区域,其中,第二方向为指向信息流展示页面第二边的方向,第一边与第二边对立。
61.具体地,针对信息流页面的滑动操作,是指该滑动操作用于滑动信息流页面。根据滑动操作确定信息流页面的滑动距离,得到第二滑动距离。判断该滑动距离是否大于预设距离阈值,若大于预设距离阈值,表示滑动操作有效,更新当前展示区域。检测滑动操作的滑动方向,滑动方向为指向信息流页面的第一边或第二边的方向,其中第一边和第二边为对立的边,以上下左右四边为了,第一边可以为任意一遍,第二边为与第一边对立的边,即第一边为左边则第二边为右边。当滑动方向为指向第一边的方向时,表示信息流页面的滑动距离增加,反之,若滑动方向为第二边时,表示信息流页面的滑动距离减小。
62.为了便于说明,以第一边为左边,第二边为右边为例。当第二滑动距离大于预设距离阈值,且滑动方向为指向左边的方向(向左滑动)时,根据第二滑动距离和滑动方向更新当前展示页面,得到更新后的当前展示区域,确定更新后的当前展示区域对应的待展示区域是否包含视频展示区域,若包含视频展示区域,根据缓存池中包含的视频数据的待缓存总时长和新的待展示区域包含的视频展示区域的预估时长,确定是否将新的待展示区域包含的视频展示区域对应的视频数据加入缓存池。若第二滑动距离大于预设距离阈值,且滑动方向为指向右边的方向(向右滑动)时,根据第二滑动距离和滑动方向更新当前展示页面,得到更新后的当前展示区域。只有向左滑动时,即滑动之后增加了信息流页面的已滑动距离时,才对待展示区域的视频展示区域对应的视频数据进行缓存判断,减小信息流页面的已滑动距离时不执行待展示区域的视频展示区域对应的视频数据进行缓存判断,是因为一般情况下,减小已滑动距离,后续的视频数据被缓存了的可能性较大。
63.在一个实施例中,上述缓存视频数据的方法,包括:
64.步骤s301,进入信息流页面,定义每条信息中包含的特征有唯一标识、坐标点、是否为视频信息以及是否已缓存,定义最大缓存时间,最大缓存时长的默认值为当前网络条件缓存固定内存大小数据信息的缓存时间,创建视频缓存池。
65.步骤s302,是否存在视频展示区域。即判断信息流页面是否存在视频展示区域,若是,则进入步骤s303,反之则结束。
66.步骤s303,遍历信息流页面的页面信息。根据遍历结果对视频展示区域进行划分。将终端显示屏幕上可见区域(当前展示区域)中包含的视频展示区域对应的视频数据,且未缓存的视频数据的视频标识添加到第一数组,将不可见区域(待展示区域)中包含的视频展示区域对应的视频数据,且未缓存的视频数据的视频标识添加到第二数组。
67.在本实施例中,步骤s303,包括:
68.步骤s3031,取出第一信息。第一信息为信息流页面中的任一条信息。
69.步骤s3032,第一信息是否为空。为空则结束,反之则进入步骤s3033。
70.步骤s3033,是否包含视频展示区域,是,则进入步骤s3034,反之则返回步骤s3031。
71.步骤s3034,判断是否未缓存。判断第一信息中包含的视频展示区域对应的视频数据是否缓存,若未缓存则,则进入步骤s3035,反之则返回步骤s3031。
72.步骤s3035,是否为屏幕内可见。判断第一信息中包含的视频展示区域是否为屏幕内可见(当前展示区域),是,则进入步骤s3036,反之则进入步骤s3037。
73.步骤s3036,加入第一数组。将屏幕内可见的视频展示区域对应的视频标识加入第一数组。
74.步骤s3037,加入第二数组。将屏幕内不可见的视频展示区域对应的视频标识加入第二数组。
75.步骤s304,加入缓存池。将第一数组中的视频数据标识对应的视频数据加入缓存池。
76.步骤s305,计算待缓存总时长。获取缓存池中未完成缓存的视频数据所需的缓存时长,得到待缓存总时长。
77.步骤s306,获取第二数组。
78.在本实施例中,步骤s306,包括:
79.步骤s3061,取出第二信息。第二信息为第二数组中的任一条信息。
80.步骤s3062,第二信息是否为空。是则结束,反之则进入步骤s3063。
81.步骤s3063,预估时长是否小于待缓存总时长与最大缓存时长的和。若是,则进入步骤s3064,反之则结束。其中预估时长是指取出的第二信息被展示的估计时长,最大缓存时长是指缓存池中已完成缓存的视频数据中的最长的缓存时长。其中缓存池中的各个视频数据的缓存的内存大小相同。
82.步骤s3064,加入第三数组。将第二数组中的视频数据标识对应的视频展示区域中的预估时长,小于待缓存总时长与最大缓存时长的和的视频数据标识加入第三数组。
83.步骤s3065,待缓存总时长累加最大缓存时长。若第二数组中还包括信息,则获取并进入步骤3061。
84.步骤s307,获取第三数组。
85.步骤s308,加入缓存池。将第三数组中的视频标识对应的视频数据加入缓存池。
86.在本实施例中,步骤s308,包括:
87.步骤s3081,根据视频标识去重。根据定义的视频标识对缓存池中的视频与第一数组和第三数组的视频数据的标识进行去重,若缓存池中存在该视频,则不再重复加入,反之则加入该视频数据,并将该视频数据的缓存状态标记为待缓存。
88.步骤s3082,加载缓存池中的视频数据。
89.步骤s3083,缓存标记。将加载完成的视频数据修改为已缓存。
90.步骤s3084,更新最大缓存时长。根据已加载完成的视频数据的缓存时长更新最大缓存时长,即将已加载完成的视频数据的缓存时长的最大值,作为最大缓存时长。即根据缓存池内已缓存视频数据的缓存时间,找出一个缓存时间的最大值,并赋值给最大缓存时间。
91.步骤s3085,更新待缓存总时长。根据缓存池中未完成缓存的视频数据计算待缓存总时长。
92.步骤s309,离开信息流页面。
93.步骤s310,清除并销毁缓存池。离开信息流页面时将会清空缓存池并销毁,做到无痕使用,有效降低了app运行内存的增加。
94.在一个具体的实施例中,上述缓存视频数据的方法,包括:
95.定义信息流内每条信息都包含特征字段唯一标识itemid、坐标点p(x,y)、是否为视频信息isvideoinfo以及是否已缓存iscached;定义最大缓存时长cachetime

max;定义
总缓存时长totalcachetime;定义第一数组array1、第二数组array2和第三数组array3;创建缓存池cachepool。
96.遍历信息流,参照图3,图3为信息流页面的示意图。根据竖向坐标点p.y可知是否在可见区域内,并定义用布尔值isvisibleinfo标识,将isvisibleinfo和isvideoinfo值为yes,iscached为no的信息添加到array1,将isvisibleinfo和iscached为no,isvideoinfo值为yes的信息添加到array2。
97.定义缓存池内已缓存的视频信息都包含特征字段唯一标识itemid、信息流信息infoitem、是否已缓存iscached以及缓存时长cachetime;将array1内的信息与缓存池内的信息根据itemid对比去重后,添加到缓存池进行缓存,已缓存的信息iscached置为yes,更新已缓存的信息cachetime;totalcachetime为未缓存信息的cachetime之和,缓存池信息iscached都为yes时,totalcachetime为零。
98.根据cachepool内已缓存视频信息的cachetime,找出一个缓存时长的最大值,并赋值给cachetime

max。
99.已知设备的已滑动高度为scrolledheight、屏幕高度为screenheight;已知设备的极限滑动速度maxscrollspeed。
100.遍历array2,定义h为一条信息距离可见区域的高度,定义滑动到信息所用时长为scrolltime;得出h等于p.y减去scrolledheight再减去screenheight;scrolltime等于h除以maxscrollspeed,如果scrolltime小于totalcachetime加cachetime

max时,说明scrolltime内不足以缓存此信息,则将此信息加入到array3,totalcachetime累加cachetime

max;否则停止遍历。
101.将array3内的信息与cachepool内的信息根据itemid对比去重后,添加到cachepool进行缓存,已缓存的信息iscached置为yes,更新已缓存信息的cachetime;totalcachetime为未缓存信息的cachetime之和,cachepool内信息iscached都为yes时,totalcachetime为零。
102.当开始滑动信息流列表时,监听系统滑动通知,当向上滑动列表,滑动一定距离scrolldistance后,重新确定新的展示区域,并执行缓存策略,从新划分第一数组、第二数组和第三数组直至确定各数组中对应的视频数据是否加入缓存池;当向下滑动列表时不执行缓存策略;同时scrolledheight累加scrolldistance。
103.当信息流列表内的所有视频信息iscached都为yes时,不在执行缓存策略流程。
104.当离开信息流列表页面时,清空并销毁cachepool。
105.上述缓存视频数据的方法封装在管理类中,适用于所有信息流列表页面,增加了复用性和可移植性,开发效率也得到了提升。缓存视频数据的方法使用滑动速度和缓存时长来选择性缓存视频,降低了缓存数量,提升了产品性能,又保证了用户观看的视频都已缓存,无需等待就可直接开始播放缓存视频。将缓存数据保存在运行内存中,不会保存在本地磁盘,有效降低了app使用后包大小体积,并且在离开信息流页面时将会清空缓存池并销毁,做到无痕使用,有效降低了app运行内存的增加。
106.图1为一个实施例中缓存视频数据的方法的流程示意图。应该理解的是,虽然图1的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些
步骤可以以其它的顺序执行。而且,图1中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
107.在一个实施例中,如图4所示,提供了一种缓存视频数据的装置200,包括:
108.信息获取页面201,用于获取信息流页面的页面信息,信息流页面包括当前展示区域和待展示区域,当前展示区域为信息流页面在终端上显示的区域,页面信息包括视频展示区域、视频展示区域的位置信息和视频展示区域对应视频数据的视频标识,待展示区域包括第一视频展示区域;
109.数据标识获取模块202,用于获取缓存池中包含的视频数据的视频数据标识集合;
110.待缓存总时长获取模块203,用于获取缓存池中视频数据的待缓存总时长;
111.预估时长计算模块204,用于根据当前展示区域的位置信息、第一视频展示区域的位置信息的位置差,计算第一视频展示区域被展示的预估时长;
112.缓存模块205,用于当预估时长小于待缓存总时长,且视频数据标识集合中未包含第一视频展示区域对应的第一视频标识,将第一视频标识加入视频数据标识集合,以通过缓存池缓存视频数据标识集合中各个视频标识对应的视频数据。
113.在一个实施例中,当前展示区域包括第二视频展示区域,
114.上述缓存模块205,还用于当视频数据标识集合中未包含第二视频展示区域对应的第二视频标识时,将第二视频标识加入视频数据标识集合。
115.在一个实施例中,待缓存总时长获取模块203,具体用于若缓存池中存在未完成缓存的视频数据,计算缓存池中每个未完成缓存的视频数据的待缓存时长的和,得到待缓存总时长。
116.在一个实施例中,待缓存总时长获取模块203,具体用于若缓存池中存在未完成缓存的视频数据,计算缓存池中每个未完成缓存的视频数据的待缓存时长,以及第一预设时长的和,得到待缓存总时长。
117.在一个实施例中,待缓存总时长获取模块203,具体用于若缓存池中的视频数据都已完成缓存,将第二预设时长作为待缓存总时长。
118.在一个实施例中,待缓存总时长获取模块203还用于当缓存池中存在已完成缓存的视频数据时,获取每个已完成缓存的视频数据的内存大小和缓存时长;根据每个已完成缓存的视频数据的内存大小与缓存时长,计算缓存速率;根据最小缓存速率和缓存池中未完成缓存的视频数据的内存大小,计算得到待缓存总时长。
119.在一个实施例中,缓存池中各个视频数据的待缓存内存大小相同,
120.待缓存总时长获取模块203还用于当缓存池中存在已完成缓存的视频数据时,获取每个已完成缓存的视频数据中的最大缓存时长;根据待缓存内存和最大缓存时长计算缓存速率;根据缓存速率和缓存池中未完成缓存视频的内存大小,计算得到待缓存总时长。
121.在一个实施例中,缓存池中各个视频数据的待缓存内存大小相同,当缓存池中存在已完成缓存的视频数据,且缓存池中的视频数据都已完成缓存,待缓存总时长获取模块203还用于获取每个已完成缓存的视频数据中的最大缓存时长;将最大缓存时长作为待缓存总时长。
122.在一个实施例中,预估时长计算模块204,用于当前展示区域的位置信息包括当前展示区域在信息流页面的高度信息,第一视频展示区域的位置信息包括第一视频展示区域在信息流页面的高度信息;获取终端显示屏幕的屏幕高度;根据当前展示区域在信息流页面的高度信息、屏幕高度和第一视频展示区域在信息流页面的高度信息,计算得到第一滑动距离;根据第一滑动距离和预设滑动速度计算得到预估时长。
123.在一个实施例中,上述缓存视频数据的装置200,还包括:
124.滑动操作检测模块,用于当检测到针对信息流页面的滑动操作时,获取滑动操作对应的第二滑动距离和滑动方向;
125.页面更新模块,用于当第二滑动距离大于预设距离阈值,且滑动方向与第一方向一致时,根据第二滑动距离和滑动方向更新当前展示区域,将更新后的当前展示区域作为当前展示区域,执行获取缓存池中包含的视频数据的视频数据标识集合,其中,第一方向为指向信息流展示页面第一边的方向;
126.页面更新模块,还用于当第二滑动距离大于预设距离阈值,且滑动方向与第二方向一致时,根据第二滑动距离和滑动方向更新当前展示区域,将更新后的当前展示区域作为当前展示区域,其中,第二方向为指向信息流展示页面第二边的方向,第一边与第二边对立。
127.在一个实施例中,上述缓存视频数据的装置200,还包括:
128.缓存池创建模块,用于当检测到进入信息流页面的进入操作,且信息流页面包含视频展示区域时,创建缓存池。
129.在一个实施例中,上述缓存视频数据的装置200,还包括:
130.缓存销毁模块,用于当检测到信息流页面关闭时,清空并销毁缓存池。
131.图5示出了一个实施例中计算机设备的内部结构图。如图5所示,该计算机设备通过系统总线连接的处理器、存储器、网络接口、输入装置和显示屏。其中,存储器包括非易失性存储介质和内存储器。该计算机设备的非易失性存储介质存储有操作系统,还可存储有计算机程序,该计算机程序被处理器执行时,可使得处理器实现缓存视频数据的方法。该内存储器中也可储存有计算机程序,该计算机程序被处理器执行时,可使得处理器执行缓存视频数据的方法。计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
132.本领域技术人员可以理解,图5中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
133.在一个实施例中,本申请提供的缓存视频数据的装置可以实现为一种计算机程序的形式,计算机程序可在如图5所示的计算机设备上运行。计算机设备的存储器中可存储组成该缓存视频数据的装置的各个程序模块,比如,图4所示的信息获取页面201、数据标识获取模块202、待缓存总时长获取模块203、预估时长计算模块204和缓存模块205。各个程序模块构成的计算机程序使得处理器执行本说明书中描述的本申请各个实施例的缓存视频数据的方法中的步骤。
134.例如,图5所示的计算机设备可以通过如图4所示的缓存视频数据的装置中的信息
获取页面201执行获取信息流页面的页面信息,信息流页面包括当前展示区域和待展示区域,当前展示区域为信息流页面在终端上显示的区域,页面信息包括视频展示区域、视频展示区域的位置信息和视频展示区域对应视频数据的视频标识,待展示区域包括第一视频展示区域。计算机设备可以通过数据标识获取模块202执行获取缓存池中包含的视频数据的视频数据标识集合,缓存池用于缓存视频数据标识集合中各个视频标识对应的视频数据。计算机设备可以通过待缓存总时长获取模块203执行获取缓存池中视频数据的待缓存总时长。计算机设备可以通过预估时长计算模块204执行根据当前展示区域的位置信息、第一视频展示区域的位置信息的位置差,计算第一视频展示区域被展示的预估时长。计算机设备可以通过缓存模块205执行当预估时长小于待缓存总时长,且视频数据标识集合中未包含第一视频展示区域对应的第一视频标识,将第一视频标识加入视频数据标识集合,以通过缓存池缓存视频数据标识集合中各个视频标识对应的视频数据。
135.在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述缓存视频数据的方法中任一实施例中的步骤。
136.在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述缓存视频数据的方法中任一实施例中的步骤。
137.本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一非易失性计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。
138.需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
139.以上所述仅是本发明的具体实施方式,使本领域技术人员能够理解或实现本发明。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1