掌桥专利:专业的专利平台
掌桥专利
首页

视频播放方法、装置、设备及存储介质

文献发布时间:2024-01-17 01:26:37


视频播放方法、装置、设备及存储介质

技术领域

本申请涉及图像处理技术领域,尤其涉及一种视频播放方法、装置、设备及存储介质。

背景技术

目前,用户在使用视频类的应用程序时,在应用程序中每点击一个视频播放页面时(即创建一个视频播放页面时),会自动创建一个与该视频播放页面对应的播放器进行视频播放,若同时创建或者存在多个视频播放页面时,虽然最上层的视频播放页面只有一个播放器在执行播放,但由于在创建每个视频播放页面时都会创建相应的播放器,从而会存在多个播放器覆盖在当前播放页面的下层,导致对设备的内存和CPU造成较大的性能压力,视频在播放过程中可能出现卡顿的情况,进而影响到用户的体验,且可能导致视频应用程序崩溃的风险。

因此,如何在视频播放时节约系统资源,提高视频应用程序运行的流畅度,已成为本领域技术人员亟待解决的技术问题。

发明内容

鉴于以上内容,本申请提供一种视频播放方法、装置、设备及存储介质,其目的在于解决上述技术问题。

第一方面,本申请提供一种视频播放方法,所述方法包括:

当视频应用程序启动时,创建全局唯一的播放内核;

实时监测是否有页面访问所述播放内核;

当监测到页面访问所述播放内核时,控制所述页面获取所述播放内核中唯一的实例进行视频播放。

优选地,所述当监测到页面访问所述播放内核时,控制所述页面获取所述播放内核中唯一的实例进行视频播放,包括:

当监测到页面访问所述播放内核时,判断是否存在所述播放内核的实例;

若存在所述播放内核的实例,控制所述页面获取所述实例进行视频播放。

优选地,所述判断是否存在所述播放内核的实例,还包括:

若不存在所述播放内核的实例,创建所述播放内核的实例;

控制所述页面获取所述实例进行视频播放。

优选地,所述实时监测是否有页面访问所述播放内核,包括:

接收页面跳转请求,控制当前页面跳转至所述跳转请求对应的跳转页面;

实时监测所述跳转页面是否访问所述播放内核。

优选地,所述当监测到页面访问所述播放内核时,控制所述页面获取所述播放内核中唯一的实例进行视频播放,包括:

当监测到所述跳转页面访问所述播放内核时,判断是否存在所述播放内核的实例;

若存在所述播放内核的实例,控制所述跳转页面获取所述实例进行视频播放;

若不存在所述播放内核的实例,创建所述播放内核的实例,控制所述跳转页面获取所述实例进行视频播放。

优选地,所述实时监测是否有页面访问所述播放内核,包括:

接收页面返回请求,控制当前页面返回至所述返回请求对应的返回页面;

实时监测所述返回页面是否访问所述播放内核。

优选地,所述当监测到页面访问所述播放内核时,控制所述页面获取所述播放内核中唯一的实例进行视频播放,包括:

当监测到所述返回页面访问所述播放内核时,判断是否存在所述播放内核的实例;

若存在所述播放内核的实例,控制所述返回页面获取所述实例进行视频播放;

若不存在所述播放内核的实例,创建所述播放内核的实例,控制所述返回页面获取所述实例进行视频播放。

第二方面,本申请提供一种视频播放装置,所述装置包括:

创建模块:用于当视频应用程序启动时,创建全局唯一的播放内核;

监测模块:用于实时监测是否有页面访问所述播放内核;

播放模块:用于当监测到页面访问所述播放内核时,控制所述页面获取所述播放内核中唯一的实例进行视频播放。

第三方面,本申请提供一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;

存储器,用于存放计算机程序;

处理器,用于执行存储器上所存放的程序时,实现第一方面任一项实施例所述的视频播放方法。

第四方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面任一项实施例所述的视频播放方法。

本申请实施例提供的上述技术方案与现有技术相比具有如下优点:

本申请由于创建了全局唯一的播放内核,不需要对每个视频播放页面都创建对应的多个播放器,当监测到页面访问播放内核时,控制页面获取播放内核中唯一的实例进行视频播放,通过一个播放内核便可承载视频应用程序内所有页面的播放任务,极大地节约了内存和CPU的占用空间,提高视频应用程序运行流畅度,在硬件性能欠佳的设备上,节约内存的效果更为明显。也避免了播放内核的频繁创建和销毁,降低了视频应用程序崩溃事件的风险,提升用户体验,且播放内核统一管理,便于代码的复用和逻辑梳理。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本申请视频播放方法实施例的流程示意图;

图2为本申请视频播放装置较佳实施例的模块示意图;

图3为本申请电子设备较佳实施例的示意图;

本申请目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。

下文的公开提供了许多不同的实施例或例子用来实现本申请的不同结构。为了简化本申请的公开,下文中对特定例子的部件和设置进行描述。当然,它们仅仅为示例,并且目的不在于限制本申请。此外,本申请可以在不同例子中重复参考数字和/或字母。这种重复是为了简化和清楚的目的,其本身不指示所讨论各种实施例和/或设置之间的关系。

本申请提供一种视频播放方法。参照图1所示,为本申请视频播放方法的实施例的方法流程示意图。该方法可以由一个电子设备执行,该电子设备可以由软件和/或硬件实现。视频播放方法包括:

步骤S10:当视频应用程序启动时,创建全局唯一的播放内核;

步骤S20:实时监测是否有页面访问所述播放内核;

步骤S30:当监测到页面访问所述播放内核时,控制所述页面获取所述播放内核中唯一的实例进行视频播放。

用户在使用视频类的应用程序时,可以根据需求点击不同的页面,例如,视频播放页面、视频详情页面、第三方广告页面等。现有技术中用户每点击一个视频播放页面时(即创建一个视频播放页面时),会自动创建一个与该视频播放页面对应的播放器进行视频播放,若同时创建或者存在多个视频播放页面时,虽然最上层的视频播放页面只有一个播放器在执行播放,但由于在创建每个视频播放页面时都会创建相应的播放器,从而会存在多个播放器覆盖在当前播放页面的下层,导致对电子设备(例如,移动终端)的内存和CPU造成较大的性能压力,视频在播放过程中可能出现卡顿的情况,进而影响到用户的体验。

本实施例中,当用户启动视频应用程序时,例如,用户通过移动终端的人机交互界面开启视频类的应用程序时,创建全局唯一的播放内核PlayerCore,播放内核用于视频播放。可以理解的是,开启视频应用程序可以用户点击界面的快捷方式开启,也可以是由其它应用程序触发视频应用程序开启的,在此不对视频应用程序的启动方式做具体限定。

由于视频应用程序启动后,用户可以根据使用需求点击视频应用程序中的页面,例如,用户想观看某个视频时,可以点击该视频对应的视频播放页面,用户想了解某个视频的信息时,可以点击该视频对应的视频详情页面。即用户点击的可能是视频播放页面,也可能是非视频播放页面。由于非视频播放页面不需要访问播放内核,为了满足用户的播放需求,需要实时监测是否有视频播放页面需要播放视频,即实时监测是否有页面访问全局唯一的播放内核。

当监测到页面访问播放内核时,说明该页面为视频播放页面,需要进行视频播放,此时控制该页面获取播放内核中的实例进行视频播放,其中,该实例是播放内核中唯一的实例。

本申请由于创建了全局唯一的播放内核,不需要对每个视频播放页面都创建对应的多个播放器,当监测到页面访问播放内核时,控制页面获取播放内核中唯一的实例进行视频播放,通过一个播放内核便可承载视频应用程序内所有页面的播放任务,极大地节约了内存和CPU的占用空间,提高视频应用程序运行流畅度,在硬件性能欠佳的设备上,节约内存的效果更为明显。也避免了播放内核的频繁创建和销毁,降低了视频应用程序崩溃事件的风险,提升用户体验,且播放内核统一管理,便于代码的复用和逻辑梳理。

在一个实施例中,所述当监测到页面访问所述播放内核时,控制所述页面获取所述播放内核中唯一的实例进行视频播放,包括:

当监测到页面访问所述播放内核时,判断是否存在所述播放内核的实例;

若存在所述播放内核的实例,控制所述页面获取所述实例进行视频播放。

当监测到有页面访问播放内核时(即当视频播放页面需要播放视频时),会判断播放内核内部是否存在播放内核的实例(instance),若存在播放内核的实例,说明在该页面请求视频播放之前已经有页面请求播放视频,因此可以直接控制该页面获取播放内核中唯一的实例进行视频播放,可以保证全局只有唯一一个播放内核的实例,而不是新建一个视频播放页面时就新建一个实例。

进一步地,所述判断是否存在所述播放内核的实例,还包括:

若不存在所述播放内核的实例,创建所述播放内核的实例;

控制所述页面获取所述实例进行视频播放。

由于用户开启视频应用程序后,可能仅是先浏览了非视频播放页面(即用户还未点击视频播放页面),此时播放内核中不存在实例,因此,当监测到有页面访问播放内核时,若判断不存在播放内核的实例,则创建播放内核中唯一的实例,并控制该页面获取播放内核中唯一的实例进行视频播放。

在一个实施例中,所述实时监测是否有页面访问所述播放内核,包括:

接收页面跳转请求,控制当前页面跳转至所述跳转请求对应的跳转页面;

实时监测所述跳转页面是否访问所述播放内核。

视频应用程序启动后,用户可以浏览视频应用程序内的各种页面,用户在浏览页面过程中还可以切换页面(例如,发起页面跳转请求),视频应用程序接收跳转请求,控制当前页面跳转至跳转请求对应的跳转页面,实时监测跳转页面是否访问播放内核,即实时监测跳转页面是否为需要播放视频的视频播放页面。例如,用户当前浏览的页面为页面A,页面A可以是视频播放页面,也可以是非视频播放页面,跳转请求对应的跳转页面为页面B,从页面A跳转至页面B后,会监测页面B是否访问播放内核,即监测页面B是否需要播放视频。

进一步地,所述当监测到页面访问所述播放内核时,控制所述页面获取所述播放内核中唯一的实例进行视频播放,包括:

当监测到所述跳转页面访问所述播放内核时,判断是否存在所述播放内核的实例;

若存在所述播放内核的实例,控制所述跳转页面获取所述实例进行视频播放;

若不存在所述播放内核的实例,创建所述播放内核的实例,控制所述跳转页面获取所述实例进行视频播放。

当监测到跳转页面(例如,页面B)访问播放内核时,即监测到页面B需要播放视频时,判断是否存在播放内核的实例;

若存在播放内核的实例,控制页面B获取该实例进行视频播放,若跳转之前的页面A也是视频播放页面,此时页面A会失去播放内核的实例,且页面B会覆盖在页面A之上,因此页面A没有播放内核并不会影响用户的体验。

若不存在播放内核的实例,说明跳转之前的页面A不是视频播放页面,此时创建播放内核的实例,控制页面B获取该实例进行视频播放。

同理,若从页面B跳转到页面C时,若页面C也是需要播放视频的页面,页面C会获取该实例进行视频播放,页面B会失去播放内核的实例,且页面C会覆盖在页面B之上。

当页面需要播放视频时直接访问全局唯一的播放内核进行视频播放,而不用视频播放页面自己创建播放内核。当有新的页面出现时(例如,跳转到新页面),新页面依然访问全局唯一的播放内核进行视频播放,跳转之前的旧页面会失去播放内核导致没有播放画面,旧页面此时被覆盖在跳转后的新页面之下,旧页面处于用户无法看到的状态,因此不会影响用户体验,在不影响用户观看的情况下,把全局唯一的播放器放在用户可以查看的页面,多个视频播放页面依次出现的情况下,只有最上层的播放页面会给用户提供视频内容,覆盖在下方的页面不持有播放器且没有视频内容的输出,极大地节约了内存和CPU的占用空间。

在一个实施例中,所述实时监测是否有页面访问所述播放内核,包括:

接收页面返回请求,控制当前页面返回至所述返回请求对应的返回页面;

实时监测所述返回页面是否访问所述播放内核。

用户在使用视频应用程序时,可以浏览视频应用程序内的各种页面,用户在浏览页面过程中还可以返回页面(例如,发起页面返回请求),视频应用程序接收返回请求,控制当前页面返回至返回请求对应的返回页面,实时监测返回页面是否访问播放内核,即实时监测返回页面是否为需要播放视频的视频播放页面。例如,用户当前浏览的页面为页面C,页面C可以是视频播放页面,也可以是非视频播放页面,返回请求对应的返回页面为页面B,从页面C返回至页面B后,会监测页面B是否访问播放内核,即监测页面B是否需要播放视频。

进一步地,所述当监测到页面访问所述播放内核时,控制所述页面获取所述播放内核中唯一的实例进行视频播放,包括:

当监测到所述返回页面访问所述播放内核时,判断是否存在所述播放内核的实例;

若存在所述播放内核的实例,控制所述返回页面获取所述实例进行视频播放;

若不存在所述播放内核的实例,创建所述播放内核的实例,控制所述返回页面获取所述实例进行视频播放。

当监测到返回页面(例如,页面B)访问播放内核时,即监测到页面B需要播放视频时,判断是否存在播放内核的实例;

若存在播放内核的实例,控制页面B获取该实例,并利用页面B存储的播放数据来恢复页面B的视频播放,且返回之前的页面C被销毁;

若不存在播放内核的实例,说明返回之前的页面C不是视频播放页面,此时创建播放内核的实例,控制页面B获取该实例进行视频播放。

同理,若从页面B返回到页面A时,若页面A也是需要播放视频的页面,页面A获取该实例,并利用页面A存储的播放数据来恢复页面A的视频播放,且页面B被销毁。所有视频播放页面之间是相互竞争播放内核的实例的关系,获取到播放内核的实例的视频播放页面就可以播放视频,而视频应用程序的交互逻辑恰好可以保证最后获取到播放内核的实例的页面就是用户正在观看的页面。

参照图2所示,为本申请视频播放装置100的功能模块示意图。

本申请所述视频播放装置100可以安装于电子设备中。根据实现的功能,所述视频播放装置100可以包括创建模块110、监测模块120及播放模块130。本申请所述模块也可以称之为单元,是指一种能够被电子设备处理器所执行,并且能够完成固定功能的一系列计算机程序段,其存储在电子设备的存储器中。

在本实施例中,关于各模块/单元的功能如下:

创建模块110:用于当视频应用程序启动时,创建全局唯一的播放内核;

监测模块120:用于实时监测是否有页面访问所述播放内核;

播放模块130:用于当监测到页面访问所述播放内核时,控制所述页面获取所述播放内核中唯一的实例进行视频播放。

在一个实施例中,所述当监测到页面访问所述播放内核时,控制所述页面获取所述播放内核中唯一的实例进行视频播放,包括:

当监测到页面访问所述播放内核时,判断是否存在所述播放内核的实例;

若存在所述播放内核的实例,控制所述页面获取所述实例进行视频播放。

在一个实施例中,所述判断是否存在所述播放内核的实例,还包括:

若不存在所述播放内核的实例,创建所述播放内核的实例;

控制所述页面获取所述实例进行视频播放。

在一个实施例中,所述实时监测是否有页面访问所述播放内核,包括:

接收页面跳转请求,控制当前页面跳转至所述跳转请求对应的跳转页面;

实时监测所述跳转页面是否访问所述播放内核。

在一个实施例中,所述当监测到页面访问所述播放内核时,控制所述页面获取所述播放内核中唯一的实例进行视频播放,包括:

当监测到所述跳转页面访问所述播放内核时,判断是否存在所述播放内核的实例;

若存在所述播放内核的实例,控制所述跳转页面获取所述实例进行视频播放;

若不存在所述播放内核的实例,创建所述播放内核的实例,控制所述跳转页面获取所述实例进行视频播放。

在一个实施例中,所述实时监测是否有页面访问所述播放内核,包括:

接收页面返回请求,控制当前页面返回至所述返回请求对应的返回页面;

实时监测所述返回页面是否访问所述播放内核。

在一个实施例中,所述当监测到页面访问所述播放内核时,控制所述页面获取所述播放内核中唯一的实例进行视频播放,包括:

当监测到所述返回页面访问所述播放内核时,判断是否存在所述播放内核的实例;

若存在所述播放内核的实例,控制所述返回页面获取所述实例进行视频播放;

若不存在所述播放内核的实例,创建所述播放内核的实例,控制所述返回页面获取所述实例进行视频播放。

参照图3所示,为本申请电子设备较佳实施例的示意图。

该电子设备包括处理器111、通信接口112、存储器113和通信总线114,其中,处理器111,通信接口112,存储器113通过通信总线114完成相互间的通信;

存储器113,用于存放计算机程序,例如,视频播放程序;

其中,处理器111在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器111通常用于控制所述电子设备的总体操作,例如执行数据交互或者通信相关的控制和处理等。本实施例中,所述处理器111用于运行所述存储器113中存储的程序代码或者处理数据,例如运行视频播放程序的程序代码等。

通信接口112可选地可以包括标准的有线接口、无线接口(如WI-FI接口),该通信接口112还可以用于在所述电子设备与其它电子设备之间建立通信连接。

存储器113至少包括一种类型的可读存储介质,可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,所述存储器113可以是所述电子设备的内部存储单元,例如该电子设备的硬盘或内存。在另一些实施例中,所述存储器113也可以是所述电子设备的外部存储设备,例如该电子设备配备的插接式硬盘,智能存储卡(Smart Media Card,,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。当然,所述存储器113还可以既包括所述电子设备的内部存储单元也包括其外部存储设备。本实施例中,存储器11通常用于存储安装于所述电子设备的操作系统和各类计算机程序,例如视频播放程序的程序代码等。此外,存储器113还可以用于暂时地存储已经输出或者将要输出的各类数据。

图3仅示出了具有组件111-114的电子设备,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。

在本申请一个实施例中,处理器111,用于执行存储器113上所存放的程序时,实现前述任意一个方法实施例提供的视频播放方法,包括:

当视频应用程序启动时,创建全局唯一的播放内核;

实时监测是否有页面访问所述播放内核;

当监测到页面访问所述播放内核时,控制所述页面获取所述播放内核中唯一的实例进行视频播放。

关于上述步骤的详细介绍,请参照上述图2关于视频播放装置100实施例的功能模块图以及图1关于视频播放方法实施例的流程图的说明。

此外,本申请实施例还提出一种计算机可读存储介质,所述计算机可读存储介质可以是非易失性的,也可以是易失性的。计算机可读存储介质中包括存储数据区和存储程序区,存储程序区存储有视频播放程序,所述视频播放程序被处理器执行时实现如下操作:

当视频应用程序启动时,创建全局唯一的播放内核;

实时监测是否有页面访问所述播放内核;

当监测到页面访问所述播放内核时,控制所述页面获取所述播放内核中唯一的实例进行视频播放。

本申请之计算机可读存储介质的具体实施方式与上述视频播放方法的具体实施方式大致相同,在此不再赘述。

以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。

需要说明的是,在本申请中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本申请要求的保护范围之内。

应理解的是,文中使用的术语仅出于描述特定示例实施方式的目的,而无意于进行限制。除非上下文另外明确地指出,否则如文中使用的单数形式“一”、“一个”以及“所述”也可以表示包括复数形式。术语“包括”、“包含”、“含有”以及“具有”是包含性的,并且因此指明所陈述的特征、步骤、操作、元件和/或部件的存在,但并不排除存在或者添加一个或多个其它特征、步骤、操作、元件、部件、和/或它们的组合。文中描述的方法步骤、过程、以及操作不解释为必须要求它们以所描述或说明的特定顺序执行,除非明确指出执行顺序。还应当理解,可以使用另外或者替代的步骤。

以上所述仅是本申请的具体实施方式,使本领域技术人员能够理解或实现本申请。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。

相关技术
  • 视频播放方法、视频传输方法、装置、设备及存储介质
  • 一种虚拟形象视频播放方法、装置、电子设备及存储介质
  • 视频播放方法、装置及系统、电子设备以及存储介质
  • 视频生成、视频播放方法、装置、电子设备及存储介质
  • 控制视频播放的方法、装置、可读存储介质及电子设备
  • 用于视频播放的方法、装置、视频播放设备及存储介质
  • 视频播放方法、视频播放装置、电子设备和可读存储介质
技术分类

06120116215628