具体实施方式
下面将参照附图更详细地描述本公开的实施例。虽然附图中显示了本公开的某些实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于示例性作用,并非用于限制本公开的保护范围。
应当理解,本公开的方法实施方式中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行示出的步骤。本公开的范围在此方面不受限制。
本文使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”;术语“一些实施例”表示“至少一些实施例”。其他术语的相关定义将在下文描述中给出。
需要注意,本公开中提及的“第一”、“第二”等概念仅用于对不同的装置、模块或单元进行区分,并非用于限定这些装置、模块或单元所执行的功能的顺序或者相互依存关系。
需要注意,本公开中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。
本公开实施方式中的多个装置之间所交互的消息或者信息的名称仅用于说明性的目的,而并不是用于对这些消息或信息的范围进行限制。
本公开第一实施例提供了一种视频处理方法,其流程如图1所示,包括步骤S101至S105:
S101,检测预先加载第一视频元素的第一承载单元是否满足预定预览条件。
为了给用户呈现更多的信息,用户可以通过用户界面上每个直播间的预览窗口来预览直播间中当前的视频内容,用户界面示意可以如图2或图3所示,图中每个虚线框为一个承载单元,每个承载单元承载一个直播间的相关信息,例如直播间的封面图片、名称、视频流等,预览窗口需要通过播放器来实现预览功能,即通过播放器来播放视频流。
在IOS系统中,承载单元是可以复用的,即可以根据一个用户界面可以显示视频元素内容的多少确定创建多个承载单元,例如一页用户界面最多可以显示3个视频元素,则承载单元的数量至少3个,当然通常情况下会设置为4个或5个。
当第一承载单元已经加载了第一视频元素后,只要第一承载单元满足了预定预览条件,就可以预览第一视频元素的视频流。本领域技术人员可以为上述预定预览条件设置多种可能的情况,例如,预定预览条件是用户界面上第一个完整显示的承载单元,或者,预定预览条件是位于用户界面上预定高度范围内的承载单元。本领域技术人员可以根据用户的使用习惯进行设置,甚至预定预览条件可以是完整出现在用户界面上的承载单元。当然,本实施例后续过程以在用户界面上播放一个视频流为例。
S102,当满足预定预览条件时,通过与第一承载单元绑定的第一播放器播放第一视频元素对应的视频流。
现有技术中在播放视频流时,承载单元可以复用,但是播放器不可以复用,因此,每个承载单元在预览结束后都会将播放器释放掉,再次需要使用播放器时,在加载视频元素时再创建一个用于播放视频流的播放器。该过程需要不停的释放和创建播放器,且释放和创建播放器的过程耗时较长,占用 CPU资源,所以会造成用户界面卡顿。
本实施例为每个承载单元都绑定了一个对应的播放器。在第一承载单元满足预定预览条件时,例如,用户在界面上进行上滑操作时,就会通过绑定的第一播放器来播放第一视频元素对应的视频流,用户就可以在预览窗口看到第一视频元素对应的直播间内的画面。
S103,当不满足预定预览条件时,停止播放第一播放器中的视频流。
如果第一承载单元不再满足预定预览条件,例如,如果用户继续进行上滑操作时,则第一播放器会停止播放视频流。此时,第一承载单元虽然不满足预定预览条件,但是可能其还处在用户可以观看到的用户界面上,为了保证用户的使用体验,此时还不能释放第一承载单元中的第一视频元素以及第一播放器中的视频流。
S104,继续检测第一承载单元是否满足预定释放条件。
为了确定何时可以释放掉第一承载单元中的第一视频元素以及第一播放器中的视频流,本公开实施例设置了一个预定释放条件,例如预定释放条件可以是第一承载单元处于用户界面之外,此时用户看不到第一承载单元中的任何信息,就可以将第一承载单元释放,释放不会给用户带来任何不好的使用体验。
S105,在满足预定释放条件时,释放第一承载单元中的第一视频元素以及第一播放器中的视频流。
释放时,由于第一承载单元和第一播放器都是需要复用的,因此,不仅要释放掉第一承载单元中的第一视频元素,还要释放掉第一播放器中的视频流,这样才能够保证在第一承载单元和第一播放器被复用时都是可使用的状态。
在上述的第一承载单元被再次复用时,会重新请求在其对应的第一播放器中播放的视频流,此时被复用的第一播放器中可能会带出上一次被复用时第一播放器的播放的一帧画面,虽然显示在第一播放器中的上一次的一帧画面时间会非常短,但如果上一次被复用时的一帧画面与本次复用时的第一帧画面颜色相差较多,用户的视觉体验会非常明显,会给用户带来不好的使用体验。
因此,为了保证第一播放器内容和承载单元内容一致,在第一承载单元被释放时,不仅要把第一承载单元中的第一视频元素的内容释放(即视频流的地址释放),还要释放第一播放器中视频流的当前最后一帧图像,以保证再次复用播放器时不会出现上一次复用时的视频内容。
本公开实施例通过为每个承载单元都绑定一个播放器,承载单元在加载视频元素时,使用与其绑定的播放器播放视频元素的视频流,不需要重新创建一个播放器,在承载单元满足预定释放条件时,也只是释放视频元素和播放器中的视频流,不会释放播放器。该过程相对于现有技术减少了不断释放和创建播放器的过程,大大降低了CPU的负荷,用户界面较为流畅。
本公开第二实施例提供了一种视频处理方法,其流程如图4所示,包括步骤S401至S409:
S401,检测第一承载单元是否满足预定加载条件。如果是,则执行S402,否则继续执行S401。
预定加载条件通常是承载单元即将呈现在用户界面上,例如图5所示的承载单元4,其虽然没有处于用户界面中,但确实下一个即将呈现在用户界面中的承载单元。当然,也可以如图6所示,当具有很多个承载单元时,即将呈现在用户界面中的2个承载单元都可以进行加载,即承载单元4和承载单元5可能都满足预定加载条件,都可以进行加载。
S402,在满足预定加载条件时,通过第一承载单元加载第一视频元素。
当第一承载单元满足预定加载条件时,就可以加载第一视频元素,具体的,可以等待第一承载单元加载第一视频元素超过50%时,第一播放器再加载视频流。
S403,检测预先加载第一视频元素的第一承载单元是否满足预定预览条件。
该过程是一个持续检测的过程,随着检测时间的变化,第一承载单元很有可能由满足预定预览条件变为不满足预定预览条件。如果是,则执行S404,否则执行S405。
为了给用户呈现更多的信息,用户可以通过用户界面上每个直播间的预览窗口来预览直播间中当前的视频内容,每个承载单元承载一个直播间的相关信息,例如直播间的封面图片、名称、视频流等,预览窗口需要通过播放器来实现预览功能,即通过播放器来播放视频流。
在IOS系统中,承载单元是可以复用的,即可以根据一个用户界面可以显示视频元素内容的多少确定创建多个承载单元,例如一页用户界面最多可以显示3个视频元素,则承载单元的数量至少3个,当然通常情况下会设置为4个或5个。
当第一承载单元已经加载了第一视频元素后,只要第一承载单元满足了预定预览条件,就可以预览第一视频元素的视频流。本领域技术人员可以为上述预定预览条件设置多种可能的情况,例如,预定预览条件是用户界面上第一个完整显示的承载单元,或者,预定预览条件是位于用户界面上预定高度范围内的承载单元。本领域技术人员可以根据用户的使用习惯进行设置,甚至预定预览条件可以是完整出现在用户界面上的承载单元。当然,本实施例后续过程以在用户界面上播放一个视频流为例。
S404,当满足预定预览条件时,通过与第一承载单元绑定的第一播放器播放第一视频元素对应的视频流。
现有技术中在播放视频流时,承载单元可以复用,但是播放器不可以复用,因此,每个承载单元在预览结束后都会将播放器释放掉,再次需要使用播放器时,在加载视频元素时再创建一个用于播放视频流的播放器。该过程需要不停的释放和创建播放器,且释放和创建播放器的过程耗时较长,占用 CPU资源,所以会造成用户界面卡顿。
本实施例为每个承载单元都绑定了一个对应的播放器。在第一承载单元满足预定预览条件时,就会通过绑定的第一播放器来播放第一视频元素对应的视频流,用户就可以在预览窗口看到第一视频元素对应的直播间内的画面。
S405,当不满足预定预览条件时,停止播放第一播放器中的视频流。
如果第一承载单元不再满足预定预览条件,则第一播放器会停止播放视频流。此时,第一承载单元虽然不满足预定预览条件,但是可能其还处在用户可以观看到的用户界面上,为了保证用户的使用体验,此时还不能释放第一承载单元中的第一视频元素以及第一播放器中的视频流。
S406,继续检测第一承载单元是否满足预定释放条件。如果是,则执行 S407,否则继续执行S406。
为了确定何时可以释放掉第一承载单元中的第一视频元素以及第一播放器中的视频流,本公开实施例设置了一个预定释放条件,例如预定释放条件可以是第一承载单元处于用户界面之外,此时用户看不到第一承载单元中的任何信息,就可以将第一承载单元释放,释放不会给用户带来任何不好的使用体验。
S407,在满足预定释放条件时,释放第一承载单元中的第一视频元素以及第一播放器中的视频流。
释放时,由于第一承载单元和第一播放器都是需要复用的,因此,不仅要释放掉第一承载单元中的第一视频元素,还要释放掉第一播放器中的视频流,这样才能够保证在第一承载单元和第一播放器被复用时都是可使用的状态。
在上述的第一承载单元被再次复用时,会重新请求在其对应的第一播放器中播放的视频流,此时被复用的第一播放器中可能会带出上一次被复用时第一播放器的播放的一帧画面,虽然显示在第一播放器中的上一次的一帧画面时间会非常短,但如果上一次被复用时的一帧画面与本次复用时的第一帧画面颜色相差较多,用户的视觉体验会非常明显,会给用户带来不好的使用体验。
因此,为了保证第一播放器内容和承载单元内容一致,在第一承载单元被释放时,不仅要把第一承载单元中的第一视频元素的内容释放(即视频流的地址释放),还要释放第一播放器中视频流的当前最后一帧图像,以保证再次复用播放器时不会出现上一次复用时的视频内容。
S408,当第一承载单元重新满足预定加载条件时,通过第一承载单元加载第三视频元素。
该过程实际上是在释放第一承载单元中的第一视频元素以及第一播放器中的视频流之后,当再次执行S401的检测过程中检测到当第一承载单元重新满足预定加载条件时的后续过程,该过程与S402加载第一视频元素的过程相同。
S409,当第一承载单元重新满足预定预览条件时,通过与第一承载单元绑定的第一播放器播放第三视频元素对应的视频流。
该过程实际上是在检测预先加载第一视频元素的第一承载单元是否满足预定预览条件之后,当第一承载单元重新满足预定预览条件时的后续过程,该过程与S404播放第一视频元素对应的视频流的过程相同。
上述过程为第一承载单元的一个加载、预览及释放过程。实现过程中,其它承载单元可以执行相同的操作,例如,还可以继续检测第二承载单元是否满足预定加载条件;当满足预预定加载条件时,通过第二承载单元加载第二视频元素。上述过程可以与S401同时进行,当通过第二承载单元加载第二视频元素后,也可以按照S403至S409一样的过程执行,进而实现与第一承载单元相同的加载、预览及释放过程。
实现时,持续检测是否有承载单元满足预定加载条件,并为满足预定加载条件的承载单元加载对应的视频元素,与此同时,检测是否有承载单元满足预定预览条件,以便播放满足预定预览条件的承载单元的视频流。
例如,有5个承载单元,一个用户界面能显示3个承载单元,预定预览条件为用户界面上第一个完整显示的承载单元,预定释放条件为第一承载单元处于用户界面之外。
当第一个承载单元的部分滑出用户界面,则第一个承载单元此时已经不符合预定预览条件,与第一个承载单元相邻的第二个承载单元变为符合预定预览条件的承载单元,第一个承载单元对应的第一播放器就会暂停播放视频流,第二个承载单元对应的第二播放器就会播放其对应视频元素的视频流。
随着用户滑动用户界面,当第一个承载单元完全处于用户界面之外时,就会释放第一个承载单元的视频元素,此时,也需要将第一个承载单元对应的第一播放器的视频流进行释放。
由于一个用户界面只能完整的显示3个承载单元,因此,当第五个承载单元已经开始进入用户界面时,第四个承载单元和第三个承载单元是完全显示在用户界面中的,第二个承载单元已经有部分内容滑出用户界面。随着用户的滑动,当第二个承载单元完全滑出用户界面时,释放第二个承载单元的视频元素,并将第二个承载单元对应的第二播放器的视频流进行释放,此时,用户界面上完全显示第三个承载单元、第四个承载单元和第五个承载单元。
由于承载单元和播放器都采用了复用机制,当下一个视频元素要在用户界面上显示时,就会复用已经被释放的第一个承载单元和其对应的第一播放器。依次循环复用每个承载单元和其对应的播放器,进而减少CPU的占用率。
本公开实施例通过为每个承载单元都绑定一个播放器,承载单元在加载视频元素时,使用与其绑定的播放器播放视频元素的视频流,不需要重新创建一个播放器,在承载单元满足预定释放条件时,也只是释放视频元素和播放器中的视频流,不会释放播放器。该过程相对于现有技术减少了不断释放和创建播放器的过程,大大降低了CPU的负荷,用户界面较为流畅。
本公开第三实施例提供了一种视频处理装置,该装置的结构示意如图7 所示,包括:
第一检测模块10,用于检测预先加载第一视频元素的第一承载单元是否满足预定预览条件;第一执行模块20,与第一检测模块10耦合,用于当满足预定预览条件时,通过与第一承载单元绑定的第一播放器播放第一视频元素对应的视频流;第二执行模块30,与第一执行模块20耦合,用于当不满足预定预览条件时,停止播放第一播放器中的视频流;第二检测模块40,与第二执行模块30耦合,用于继续检测第一承载单元是否满足预定释放条件;释放模块50,与第二检测模块40耦合,用于在满足预定释放条件时,释放第一承载单元中的第一视频元素以及第一播放器中的视频流。
为了给用户呈现更多的信息,用户可以通过用户界面上每个直播间的预览窗口来预览直播间中当前的视频内容,每个承载单元承载一个直播间的相关信息,例如直播间的封面图片、名称、视频流等,预览窗口需要通过播放器来实现预览功能,即通过播放器来播放视频流。
在IOS系统中,承载单元是可以复用的,即可以根据一个用户界面可以显示视频元素内容的多少确定创建多个承载单元,例如一页用户界面最多可以显示3个视频元素,则承载单元的数量至少3个,当然通常情况下会设置为4个或5个。
当第一承载单元已经加载了第一视频元素后,只要第一承载单元满足了预定预览条件,就可以预览第一视频元素的视频流。本领域技术人员可以为上述预定预览条件设置多种可能的情况,例如,预定预览条件是用户界面上第一个完整显示的承载单元,或者,预定预览条件是位于用户界面上预定高度范围内的承载单元。本领域技术人员可以根据用户的使用习惯进行设置,甚至预定预览条件可以是完整出现在用户界面上的承载单元。当然,本实施例后续过程以在用户界面上播放一个视频流为例。
现有技术中在播放视频流时,承载单元可以复用,但是播放器不可以复用,因此,每个承载单元在预览结束后都会将播放器释放掉,再次需要使用播放器时,在加载视频元素时再创建一个用于播放视频流的播放器。该过程需要不停的释放和创建播放器,且释放和创建播放器的过程耗时较长,占用 CPU资源,所以会造成用户界面卡顿。
本实施例为每个承载单元都绑定了一个对应的播放器。在第一承载单元满足预定预览条件时,就会通过绑定的第一播放器来播放第一视频元素对应的视频流,用户就可以在预览窗口看到第一视频元素对应的直播间内的画面。
如果第一承载单元不再满足预定预览条件,则第一播放器会停止播放视频流。此时,第一承载单元虽然不满足预定预览条件,但是可能其还处在用户可以观看到的用户界面上,为了保证用户的使用体验,此时还不能释放第一承载单元中的第一视频元素以及第一播放器中的视频流。
为了确定何时可以释放掉第一承载单元中的第一视频元素以及第一播放器中的视频流,本公开实施例设置了一个预定释放条件,例如预定释放条件可以是第一承载单元处于用户界面之外,此时用户看不到第一承载单元中的任何信息,就可以将第一承载单元释放,释放不会给用户带来任何不好的使用体验。
释放时,由于第一承载单元和第一播放器都是需要复用的,因此,不仅要释放掉第一承载单元中的第一视频元素,还要释放掉第一播放器中的视频流,这样才能够保证在第一承载单元和第一播放器被复用时都是可使用的状态。
在上述的第一承载单元被再次复用时,会重新请求在其对应的第一播放器中播放的视频流,此时被复用的第一播放器中可能会带出上一次被复用时第一播放器的播放的一帧画面,虽然显示在第一播放器中的上一次的一帧画面时间会非常短,但如果上一次被复用时的一帧画面与本次复用时的第一帧画面颜色相差较多,用户的视觉体验会非常明显,会给用户带来不好的使用体验。
因此,为了保证第一播放器内容和承载单元内容一致,在第一承载单元被释放时,不仅要把第一承载单元中的第一视频元素的内容释放(即视频流的地址释放),还要释放第一播放器中视频流的当前最后一帧图像,以保证再次复用播放器时不会出现上一次复用时的视频内容。所以,释放模块具体用于:释放第一承载单元中的第一视频元素的内容,以及第一播放器中视频流的当前最后一帧图像。
上述装置还可以包括:第三检测模块,用于检测第一承载单元是否满足预定加载条件;第一加载模块,与第三检测模块和第一检测模块耦合,用于在满足预定加载条件时,通过第一承载单元加载第一视频元素。
为了第一承载单元的复用,上述装置还可以包括:第三加载模块,用于当第一承载单元重新满足预定加载条件时,通过第一承载单元加载第三视频元素;第一执行模块,还用于当第一承载单元重新满足预定预览条件时,通过与第一承载单元绑定的第一播放器播放第三视频元素对应的视频流。具体实现时,第三家在模块可以和第一记载模块设计为一个整体。
上述过程为第一承载单元的一个加载、预览及释放过程。实现过程中,其它承载单元可以执行相同的操作,例如,上述装置还可以包括:第四检测模块,用于继续检测第二承载单元是否满足预定加载条件;第二加载模块,用于当满足预预定加载条件时,通过第二承载单元加载第二视频元素。
上述第四检测模块可以与第一检测模块同时工作,第二承载单元可以与第一承载单元具有相同的加载、预览及释放过程。
本公开实施例通过为每个承载单元都绑定一个播放器,承载单元在加载视频元素时,使用与其绑定的播放器播放视频元素的视频流,不需要重新创建一个播放器,在承载单元满足预定释放条件时,也只是释放视频元素和播放器中的视频流,不会释放播放器。该过程相对于现有技术减少了不断释放和创建播放器的过程,大大降低了CPU的负荷,用户界面较为流畅。
本公开第四实施例提供了一种存储介质,该存储介质为计算机可读介质,存储有计算机程序,该计算机程序被处理器执行时实现本公开任意实施例提供的方法,包括如下步骤S11至S15:
S11,检测预先加载第一视频元素的第一承载单元是否满足预定预览条件;
S12,当满足预定预览条件时,通过与第一承载单元绑定的第一播放器播放第一视频元素对应的视频流;
S13,当不满足预定预览条件时,停止播放第一播放器中的视频流;
S14,继续检测第一承载单元是否满足预定释放条件;
S15,在满足预定释放条件时,释放第一承载单元中的第一视频元素以及第一播放器中的视频流。
计算机程序被处理器执行检测预先加载第一视频元素的第一承载单元是否满足预定预览条件的步骤之前,具体被处理器执行如下步骤:检测第一承载单元是否满足预定加载条件;在满足预定加载条件时,通过第一承载单元加载第一视频元素。
计算机程序被处理器执行通过第一承载单元加载第一视频元素的步骤之后,还被处理器执行如下步骤:继续检测第二承载单元是否满足预定加载条件;当满足预预定加载条件时,通过第二承载单元加载第二视频元素。
计算机程序被处理器执行释放第一承载单元中的第一视频元素以及第一播放器中的视频流的步骤之后,还被处理器执行如下步骤:当第一承载单元重新满足预定加载条件时,通过第一承载单元加载第三视频元素;当第一承载单元重新满足预定预览条件时,通过与第一承载单元绑定的第一播放器播放第三视频元素对应的视频流。
计算机程序被处理器执行释放第一承载单元中的第一视频元素以及第一播放器中的视频流的步骤时,具体被处理器执行如下步骤:释放第一承载单元中的第一视频元素的内容,以及第一播放器中视频流的当前最后一帧图像。
本公开实施例通过为每个承载单元都绑定一个播放器,承载单元在加载视频元素时,使用与其绑定的播放器播放视频元素的视频流,不需要重新创建一个播放器,在承载单元满足预定释放条件时,也只是释放视频元素和播放器中的视频流,不会释放播放器。该过程相对于现有技术减少了不断释放和创建播放器的过程,大大降低了CPU的负荷,用户界面较为流畅。
本公开第五实施例提供了一种电子设备,该电子设备的结构示意图可以如图8所示,至少包括存储器901和处理器902,存储器901上存储有计算机程序,处理器902在执行存储器901上的计算机程序时实现本公开任意实施例提供的方法。示例性的,电子设备计算机程序步骤如下S21至S25:
S21,检测预先加载第一视频元素的第一承载单元是否满足预定预览条件;
S22,当满足预定预览条件时,通过与第一承载单元绑定的第一播放器播放第一视频元素对应的视频流;
S23,当不满足预定预览条件时,停止播放第一播放器中的视频流;
S24,继续检测第一承载单元是否满足预定释放条件;
S25,在满足预定释放条件时,释放第一承载单元中的第一视频元素以及第一播放器中的视频流。
处理器在执行存储器上存储的检测预先加载第一视频元素的第一承载单元是否满足预定预览条件的计算机程序之前,还执行如下计算机程序:检测第一承载单元是否满足预定加载条件;在满足预定加载条件时,通过第一承载单元加载第一视频元素。
处理器在执行存储器上存储的通过第一承载单元加载第一视频元素的计算机程序之后,还执行如下计算机程序:继续检测第二承载单元是否满足预定加载条件;当满足预预定加载条件时,通过第二承载单元加载第二视频元素。
处理器在执行存储器上存储的释放第一承载单元中的第一视频元素以及第一播放器中的视频流的计算机程序之后,还执行如下计算机程序:当第一承载单元重新满足预定加载条件时,通过第一承载单元加载第三视频元素;当第一承载单元重新满足预定预览条件时,通过与第一承载单元绑定的第一播放器播放第三视频元素对应的视频流。
处理器在执行存储器上存储的释放第一承载单元中的第一视频元素以及第一播放器中的视频流的计算机程序时,具体执行如下计算机程序:释放第一承载单元中的第一视频元素的内容,以及第一播放器中视频流的当前最后一帧图像。
本公开实施例通过为每个承载单元都绑定一个播放器,承载单元在加载视频元素时,使用与其绑定的播放器播放视频元素的视频流,不需要重新创建一个播放器,在承载单元满足预定释放条件时,也只是释放视频元素和播放器中的视频流,不会释放播放器。该过程相对于现有技术减少了不断释放和创建播放器的过程,大大降低了CPU的负荷,用户界面较为流畅。
下面参考图9,其示出了适于用来实现本公开实施例的电子设备另一种的结构示意图。本公开实施例中的终端设备可以包括但不限于诸如移动电话、笔记本电脑、数字广播接收器、PDA(个人数字助理)、PAD(平板电脑)、PMP (便携式多媒体播放器)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字TV、台式计算机等等的固定终端。图9示出的电子设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图9所示,电子设备可以包括处理装置(例如中央处理器、图形处理器等)601,其可以根据存储在只读存储器(ROM)602中的程序或者从存储装置608 加载到随机访问存储器(RAM)603中的程序而执行各种适当的动作和处理。在RAM 603中,还存储有电子设备操作所需的各种程序和数据。处理装置601、ROM 602以及RAM 603通过总线604彼此相连。输入/输出(I/O)接口605也连接至总线604。
通常,以下装置可以连接至I/O接口605:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置606;包括例如液晶显示器(LCD)、扬声器、振动器等的输出装置607;包括例如磁带、硬盘等的存储装置608 ;以及通信装置609。通信装置609可以允许电子设备与其他设备进行无线或有线通信以交换数据。虽然图9示出了具有各种装置的电子设备,但是应理解的是,并不要求实施或具备所有示出的装置。可以替代地实施或具备更多或更少的装置。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在非暂态存储介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置609从网络上被下载和安装,或者从存储装置608被安装,或者从ROM 602 被安装。在该计算机程序被处理装置601执行时,执行本公开实施例的方法中限定的上述功能。
在一些实施方式中,客户端、服务器可以利用诸如HTTP(HyperText TransferProtocol,超文本传输协议)之类的任何当前已知或未来研发的网络协议进行通信,并且可以与任意形式或介质的数字数据通信(例如,通信网络)互连。通信网络的示例包括局域网(LAN)、广域网(WAN)、网际网(例如,互联网)以及端对端网络(例如,ad hoc端对端网络),以及任何当前已知或未来研发的网络。
上述存储介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。
上述存储介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备:获取至少两个网际协议地址;向节点评价设备发送包括至少两个网际协议地址的节点评价请求,其中,节点评价设备从至少两个网际协议地址中,选取网际协议地址并返回;接收节点评价设备返回的网际协议地址;其中,所获取的网际协议地址指示内容分发网络中的边缘节点。
或者,上述存储介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备:接收包括至少两个网际协议地址的节点评价请求;从至少两个网际协议地址中,选取网际协议地址;返回选取出的网际协议地址;其中,接收到的网际协议地址指示内容分发网络中的边缘节点。
可以以一种或多种程序设计语言或其组合来编写用于执行本公开的操作的计算机程序代码,上述程序设计语言包括但不限于面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
需要说明的是,本公开上述的存储介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM 或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何存储介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(射频)等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本公开实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,单元的名称在某种情况下并不构成对该单元本身的限定。
本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、片上系统(SOC)、复杂可编程逻辑设备(CPLD)等等。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
以上描述仅为本公开的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开中所涉及的公开范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述公开构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
此外,虽然采用特定次序描绘了各操作,但是这不应当理解为要求这些操作以所示出的特定次序或以顺序次序执行来执行。在一定环境下,多任务和并行处理可能是有利的。同样地,虽然在上面论述中包含了若干具体实现细节,但是这些不应当被解释为对本公开的范围的限制。在单独的实施例的上下文中描述的某些特征还可以组合地实现在单个实施例中。相反地,在单个实施例的上下文中描述的各种特征也可以单独地或以任何合适的子组合的方式实现在多个实施例中。
尽管已经采用特定于结构特征和/或方法逻辑动作的语言描述了本主题,但是应当理解所附权利要求书中所限定的主题未必局限于上面描述的特定特征或动作。相反,上面所描述的特定特征和动作仅仅是实现权利要求书的示例形式。
以上对本公开多个实施例进行了详细说明,但本公开不限于这些具体的实施例,本领域技术人员在本公开构思的基础上,能够做出多种变型和修改实施例,这些变型和修改都应落入本公开所要求保护的范围之内。