预加载视频的方法、设备、视频播放器、电子设备与流程

文档序号:11216372阅读:450来源:国知局
预加载视频的方法、设备、视频播放器、电子设备与流程

本发明涉及视频播放领域,更具体地,涉及一种预加载视频的方法、设备、视频播放器、电子设备。



背景技术:

在现有技术中,在视频播放中,为了获得更快的视频播放体验,提供预加载视频的功能,即预先下载视频列表中每个视频从开头起的一小段内容。这样,当用户点击视频进行视频播放时,无需再等待网络加载而是直接开始播放视频。

然而,用户一般不会观看视频列表里的每个视频。用户会根据自身兴趣或爱好选择性地观看视频。当用户未使用免费的wifi而是通过手机流量连接网络时,如果仍然预加载视频列表里的每个视频,这会大大增加网络流量消耗。

因此,需要一种新的预加载视频的技术方案来针对现有技术中的至少一个技术问题。



技术实现要素:

本发明的一个目的是提供一种预加载视频的新技术方案。

根据本发明的第一方面,提供了一种预加载视频的方法,包括以下步骤:监听视频列表的滚动事件;当监听到滚动停止时,将滚动停止时视频列表窗口内显示的视频加入预加载任务队列;以及预加载所述预加载任务队列中的视频。

优选地,所述滚动事件由所述视频列表的滚动控件的操作触发。

优选地,所述滚动事件包括所述滚动控件滚动和所述滚动控件滚动停止。

优选地,当所述预加载任务队列的队列长度大于队列长度阈值时,从所述预加载任务队列里移除与超出所述队列长度阈值的数量相同数量的视频。

优选地,根据视频列表窗口毎屏可显示视频数量来设定所述预加载任务队列的队列长度阈值。

优选地,所述预加载任务队列的队列长度阈值设定为预定值。

优选地,所述预加载任务队列是先进先出队列。

优选地,当所述预加载任务队列的队列长度大于所述队列长度阈值时,从所述预加载任务队列里移除先加入所述队列的视频。

优选地,所述预加载任务队列是优先级队列。

优选地,当所述预加载任务队列的队列长度大于所述队列长度阈值时,从所述预加载任务队列里移除优先级最低的视频。

根据本发明的第二方面,提供了一种预加载视频的设备,包括:用于监听视频列表的滚动事件的装置;用于当监听到滚动停止时将视频列表窗口内显示的视频加入预加载任务队列的装置;以及用于预加载所述预加载任务队列中的视频的装置。

根据本发明的第三方面,提供了一种视频播放器,包括根据实施例的预加载视频的设备,或被设计成用于执行根据实施例的预加载视频的方法中的操作。

根据本发明的第四方面,提供了一种电子设备,包括根据实施例所述的视频播放器。

根据本发明的第五方面,提供了一种电子设备,包括处理器、存储器和显示装置,其中,所述存储器用于存储指令,所述指令用于控制所述处理器进行操作以执行根据实施例的预加载视频的方法。

根据本发明的实施例,能够在获得更快的视频播放体验的同时显著减少用于预加载视频的网络流量消耗。

因此,本发明所要实现的技术任务或者所要解决的技术问题是本领域技术人员从未想到的或者没有预期到的,故本发明是一种新的技术方案。

通过以下参照附图对本发明的示例性实施例的详细描述,本发明的其它特征及其优点将会变得清楚。

附图说明

被结合在说明书中并构成说明书的一部分的附图示出了本发明的实施例,并且连同其说明一起用于解释本发明的原理。

图1是根据本发明一个实施例的预加载视频的方法的示意性流程图。

图2是根据本发明另一个实施例的预加载视频的方法的示意性流程图。

图3是根据本发明一个实施例的电子设备的示意性框图。

图4是根据本发明另一个实施例的电子设备的示意性框图。

具体实施方式

现在将参照附图来详细描述本发明的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本发明的范围。

以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。

对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。

在这里示出和讨论的所有例子中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它例子可以具有不同的值。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。

在本发明的实施例中,提出了一种预加载视频的新方式。

下面,参照附图描述根据本发明的实施例和例子。

<方法>

实施例一

图1是根据本发明一个实施例的预加载视频的方法的示意性流程图。

在步骤s100,可以监听视频列表的滚动事件。

提供视频播放功能的计算机软件或手机应用程序可以通过视频列表显示可供用户点击播放的视频。用户可以从视频列表里选择感兴趣的视频进行播放。例如,在视频列表里可以以列表的形式显示视频的名称,或者可以以图标的形式显示视频的某一帧画面或海报。

当用户意图选择视频进行播放时,可以操作视频列表的滚动控件进行浏览,例如滑动视频列表的滚动控件,由此可以触发滚动事件。滚动事件包括滚动控件滚动、滚动控件滚动停止。滚动控件滚动可以表示滚动控件在用户操作下的滚动状态。滚动控件滚动停止可以表示滚动控件停止滚动,处于未被用户操作的空闲状态。滚动控件例如可以是视频列表的滚动条。

例如,在安卓系统中,监听视频列表的滚动事件可以通过listview控件的onscrolllistener监听器来实现。滚动控件滚动可以对应于scroll_state_touch_scroll和scroll_state_fling的事件回调。滚动控件滚动停止可以对应于scroll_state_idle的事件回调。

通过监听视频列表的滚动事件,可以获悉用户停止操作滚动控件时的视频范围,该视频范围最有可能是用户意图点击播放的视频。

在步骤s200,当监听到滚动停止时,可以将滚动停止时视频列表窗口内显示的视频加入预加载任务队列。

如上所述,当用户停止操作视频列表的滚动控件时,可以触发滚动停止的滚动事件。这意味着此时视频列表窗口里显示的视频是用户最有可能点击播放的视频。

因此,可以针对这些视频构建预加载任务队列。对预加载任务队列中的视频进行预加载,从而避免一次性预加载视频列表中的全部视频,造成网络流量的大量不必要消耗。

在步骤s300,可以预加载所述预加载任务队列中的视频。

例如,假设视频列表里的视频总数为20个,视频列表窗口每次能够显示4个视频。当用户停止操作视频列表的滚动控件时,当前视频列表窗口里显示的4个视频就是用户最有可能点击播放的视频。因此,将这4个视频加入预加载任务队列,并且预加载这4个视频。

在传统的预加载视频方法中,当视频列表里的视频总数为20个时,需要预加载全部20个视频。然而,用户最终可能只点击播放其中2个视频。这样,额外预加载18个视频可能会造成网络流量的大量不必要消耗。

根据本实施例的方法,监听视频列表的滚动事件。当监听到滚动停止时,假设如上所述视频列表窗口里显示的视频个数为4个,则只将这4个视频加入预加载任务队列并进行预加载。这样,即便用户最终只点击播放其中的2个视频,额外预加载的视频个数只有2个。这能够显著减少为了预加载视频而产生的网络流量消耗。

实施例二

图2是根据本发明另一个实施例的预加载视频的方法的示意性流程图。

在步骤s1000,与实施例一类似,可以监听视频列表的滚动事件。由于在实施例一中已对本步骤进行详细说明,在此不再赘述。

在步骤s2000,当监听到滚动停止时,可以将滚动停止时视频列表窗口内显示的视频加入预加载任务队列,并且可以管理所述预加载任务队列。

在步骤s3000,可以预加载所述预加载任务队列中的视频。

以下详细说明实施例二与实施例一的不同之处。

在一些情况下,滚动停止的滚动事件可能被多次触发,造成过多视频被加入到预加载任务队列中进行预加载,由此也可能造成过多的网络流量消耗。例如,有时候用户想先浏览视频列表里列出的全部视频的视频名称,再决定最后选择点击播放的视频。假设用户因此触发了两次滚动停止,第一次滚动停止时有4个视频加入预加载任务队列,第二次滚动停止时又有4个视频加入,则预加载任务队列中共有8个视频将被预加载。这可能造成网络流量过多消耗的问题。

为了解决这个问题,可以对预加载任务队列进行管理。

优选地,可以为预加载任务队列设定队列长度阈值,并且以所述阈值的数量来加载队列中的视频,由此避免因为多次滚动停止而加入队列中的每个视频都被预加载。当所述预加载任务队列的队列长度大于队列长度阈值时,从所述预加载任务队列里移除与超出所述队列长度阈值的数量相同数量的视频。

预加载任务队列的队列长度阈值可以根据视频列表窗口每屏可显示视频数量来设定。

例如,假设视频列表里的视频总数为20个,视频列表窗口毎屏可显示4个视频,则预加载任务队列的队列长度阈值可以设定为4。

本领域技术人员可以理解,视频列表窗口毎屏可显示视频数量取决于视频列表本身的属性,因此可以根据视频列表的不同设计而具有不同的值。例如,对于在视频列表上可直接播放视频的情形,考虑到观看体验,一般会将视频播放区域调整得相对较大,这样毎屏可显示视频数量例如仅为3个或4个。在此情况下,预加载任务队列的队列长度阈值可以根据视频列表窗口毎屏可显示视频数量而设定为3或4。

另外,预加载任务队列的队列长度阈值可以设定为预定值。

例如,假设视频列表窗口每屏可显示视频数量为10个。如果按照以上方法将预加载任务队列的队列长度阈值也设定为10,则将会对这10个视频全部进行预加载,由此可能造成过多的流量消耗。在此情况下,可以采用将队列长度阈值设定为预定值,例如5个,以减少预加载视频的数量,节省网络流量消耗。例如,可以选择位于视频列表窗口上部的视频加入到预加载任务队列,以提高预加载的命中率。

优选地,可以设定预加载任务队列的队列形式。

预加载任务队列可以是先进先出队列。采用先进先出队列,有利于根据视频进入队列的先后顺序对队列中的视频进行管理,保证预加载的视频是用户当前意图选择的视频范围。

当预加载任务队列的队列长度大于队列长度阈值时,可以从预加载任务队列里移除先加入队列的、与超出队列长度阈值的数量相同数量的视频。

例如,假设因为用户的操作连续触发了两次滚动停止。第一次滚动停止时加入预加载任务队列的视频数量为4个,第二次滚动停止时又加入4个视频,使得预加载任务队列的队列长度为8。在此情况下,不是预加载这8个视频,而是首先从预加载任务队列里移除先加入队列的4个视频,即第一次滚动停止时加入队列的4个视频。由此,预加载任务队列里仅保留第二次滚动停止时加入的4个视频,并预加载这4个视频。

预加载任务队列可以是优先级队列。这在预加载任务队列的队列长度阈值设定为预定值的情况下是有利的。当视频列表窗口每屏可显示视频数量大于队列长度阈值时,根据所述队列长度阈值的数量来预加载视频,能够减少网络流量消耗。

在此情况下,可以从预加载任务队列里移除优先级最低的、与超出队列长度阈值的数量相同数量的视频。

例如,假设视频列表窗口毎屏可显示视频数量为10个,当监听到滚动停止时,这10个视频被加入预加载任务队列中。当队列长度阈值设定为4时,首先从这10个视频中移除优先级最低的6个视频,在队列中保留4个视频,最后预加载这4个视频,由此减少网络流量消耗。

优选地,优先级可以根据视频热度和/或视频是否命中用户往常喜爱视频类型来设定。

根据本实施例的方法,通过为预加载任务队列设定队列长度阈值以及设定队列形式,有利于对预加载任务队列进行管理。因此,即使在滚动停止的滚动事件被多次触发的情况下,也可以确保预加载的视频是用户当前意图选择的视频范围,并且能够减少为了预加载视频而产生的网络流量消耗。

<设备>

本领域技术人员应当理解,在电子技术领域中,可以通过软件、硬件以及软件和硬件结合的方式,将上述方法体现在产品中。本领域技术人员很容易基于上面公开的方法,产生一种预加载视频的设备。该设备可以包括用于实现前面所述的预加载视频的方法中的各个操作的装置。例如,该设备可以包括:用于监听视频列表的滚动事件的装置;用于当监听到滚动停止时将视频列表窗口内显示的视频加入预加载任务队列的装置;以及用于预加载所述预加载任务队列中的视频的装置。

<视频播放器>

上面描述的预加载视频的设备可以是一个独立的设备(例如,客户端中的应用),也可以被集成在视频播放器中,成为视频播放器的一部分。在这种情况下,所述视频播放器能够提供一种预加载视频的新方式。

本领域技术人员应当理解,随着技术的发展,视频播放器可以是一个单独的应用程序,例如暴风影音、qq影音等,或者也可以指的是集成了视频播放器功能的应用程序,例如pp助手、91助手等。

另一方面,本领域技术人员公知的是,随着诸如大规模集成电路技术的电子信息技术的发展和软件硬件化的趋势,要明确划分计算机系统软、硬件界限已经显得比较困难了。因为,任何操作可以软件来实现,也可以硬件来实现。任何指令的执行可以由硬件完成,同样也可以由软件来完成。对于某一机器功能采用硬件实现方案还是软件实现方案,取决于价格、速度、可靠性、存储容量、变更周期等非技术性因素。因此,对于电子信息技术领域的普通技术人员来说,更为直接和清楚地描述一个技术方案的方式是描述该方案中的各个操作。在知道所要执行的操作的情况下,本领域技术人员可以基于对所述非技术性因素的考虑直接设计出期望的产品。从这个方面来说,在本发明的实施例中,还提供了一种视频播放器,该视频播放器被设计成用于执行根据本发明实施例所述的预加载视频的方法中的操作。

<电子设备>

可以在电子设备中实现根据本发明的各个实施例。所述电子设备例如是笔记本电脑、智能手机、平板电脑等。例如,所示电子设备包括前面所示的视频播放器。

图3是根据本发明一个实施例的电子设备的示意性框图。如图3所述,电子设备3000包括视频播放器3010。视频播放器3010例如是前面所述的视频播放器中的任何一个。

图4是根据本发明另一个实施例的电子设备的示意性框图。

如图4所示,电子设备4000可以包括处理器4010、存储器4020、接口装置4030、通信装置4040、显示装置4050、输入装置4060、扬声器4070、麦克风4080,等等。

处理器4010例如可以是中央处理器cpu、微处理器mcu等。

存储器4020例如包括rom(只读存储器)、ram(随机存取存储器)、诸如硬盘的非易失性存储器等。

接口装置4030例如包括usb接口、耳机接口等。

通信装置4040例如能够进行有有线或无线通信。

显示装置4050例如是液晶显示屏、触摸显示屏等。

输入装置4060例如可以包括触摸屏、键盘等。

用户可以通过扬声器4070和麦克风4080输入/输出语音信息。

图4所示的电子设备仅是解释性的,并且决不是为了要限制本发明、其应用或用途。

在这个实施例中,所述存储器4020用于存储指令,所述指令用于控制所述处理器4010进行操作以执行前面参照图1所述的预加载视频的方法。本领域技术人员应当理解,尽管在图4中示出了多个装置,但是,本发明可以仅涉及其中的部分装置,例如,处理器4010和存储装置4020等。技术人员可以根据本发明所公开方案设计指令。指令如何控制处理器进行操作,这是本领域公知,故在此不再详细描述。

本发明可以是设备、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本发明的各个方面的计算机可读程序指令。

计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、静态随机存取存储器(sram)、便携式压缩盘只读存储器(cd-rom)、数字多功能盘(dvd)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。

这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。

用于执行本发明操作的计算机程序指令可以是汇编指令、指令集架构(isa)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如smalltalk、c++等,以及常规的过程式编程语言—诸如“c”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(lan)或广域网(wan)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(fpga)或可编程逻辑阵列(pla),该电子电路可以执行计算机可读程序指令,从而实现本发明的各个方面。

这里参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本发明的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。

这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。

也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。

附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。对于本领域技术人员来说公知的是,通过硬件方式实现、通过软件方式实现以及通过软件和硬件结合的方式实现都是等价的。

以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。本发明的范围由所附权利要求来限定。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1