视频播放方法及装置
技术领域
本发明涉及计算机技术领域,尤其涉及一种视频播放方法及装置。
背景技术
在支持在线播放的视频网站或者视频客户端中,正片与广告通常属于两个不同的片源。目前,在通过一个播放窗口加载并播放广告后,再通过另一个播放窗口加载并播放正片。这种方式容易在开始播放正片时造成卡顿现象,且在广告与正片之间容易产生黑屏等明显的切换痕迹,影响用户的观看体验。
发明内容
技术问题
有鉴于此,本发明要解决的技术问题是,现有的视频播放技术容易在开始播放正片时造成卡顿现象,且在广告与正片之间容易产生明显的切换痕迹。
解决方案
为了解决上述技术问题,根据本发明的一实施例,提供了一种视频播放方法,包括:
在接收到播放视频的请求的情况下,创建播放窗口;
在所述视频包含正片视频和正片视频之前的广告视频的情况下,加载广告视频数据和正片视频数据;
通过所述播放窗口播放已加载的广告视频数据,并在播放所述已加载的广告视频数据的过程中,暂停播放所述正片视频数据,并将所述正片视频置为隐藏状态;
在满足预设条件的情况下,通过所述播放窗口播放已加载的正片视频数据。
对于上述方法,在一种可能的实现方式中,在所述视频包含正片视频和正片视频之前的广告视频的情况下,加载广告视频数据和正片视频数据,包括:
在所述视频包含正片视频和正片视频之前的广告视频的情况下,创建广告进程和正片进程;
通过所述广告进程加载广告视频数据,并通过所述正片进程加载正片视频数据。
对于上述方法,在一种可能的实现方式中,在满足预设条件的情况下,通过所述播放窗口播放已加载的正片视频数据,包括:
在满足预设条件的情况下,销毁所述广告进程;
将所述正片视频置为显示状态,并通过所述播放窗口播放已加载的正片视频数据。
对于上述方法,在一种可能的实现方式中,满足预设条件,包括:
所述广告视频播放完毕。
对于上述方法,在一种可能的实现方式中,满足预设条件,包括:
所述广告视频播放出错。
对于上述方法,在一种可能的实现方式中,所述方法还包括:
在所述视频包含正片视频,且不包含正片视频之前的广告视频的情况下,加载正片视频数据;
通过所述播放窗口播放已加载的正片视频数据。
为了解决上述技术问题,根据本发明的另一实施例,提供了一种视频播放装置,包括:
播放窗口创建模块,用于在接收到播放视频的请求的情况下,创建播放窗口;
第一加载模块,用于在所述视频包含正片视频和正片视频之前的广告视频的情况下,加载广告视频数据和正片视频数据;
第一播放控制模块,用于通过所述播放窗口播放已加载的广告视频数据,并在播放所述已加载的广告视频数据的过程中,暂停播放所述正片视频数据,并将所述正片视频置为隐藏状态;
第二播放控制模块,用于在满足预设条件的情况下,通过所述播放窗口播放已加载的正片视频数据。
对于上述装置,在一种可能的实现方式中,所述第一加载模块包括:
进程创建子模块,用于在所述视频包含正片视频和正片视频之前的广告视频的情况下,创建广告进程和正片进程;
加载子模块,用于通过所述广告进程加载广告视频数据,并通过所述正片进程加载正片视频数据。
对于上述装置,在一种可能的实现方式中,所述第二播放控制模块包括:
进程销毁子模块,用于在满足预设条件的情况下,销毁所述广告进程;
播放控制子模块,用于将所述正片视频置为显示状态,并通过所述播放窗口播放已加载的正片视频数据。
对于上述装置,在一种可能的实现方式中,满足预设条件,包括:
所述广告视频播放完毕。
对于上述装置,在一种可能的实现方式中,满足预设条件,包括:
所述广告视频播放出错。
对于上述装置,在一种可能的实现方式中,所述装置还包括:
第二加载模块,用于在所述视频包含正片视频,且不包含正片视频之前的广告视频的情况下,加载正片视频数据;
第三播放控制模块,用于通过所述播放窗口播放已加载的正片视频数据。
有益效果
通过在视频包含正片视频和正片视频之前的广告视频的情况下,同时加载广告视频数据和正片视频数据,并通过同一个播放窗口播放广告视频和正片视频,根据本发明实施例的视频播放方法及装置能够在正片视频之前存在广告视频的情况下,降低在广告视频播放完毕并开始播放正片视频时产生卡顿现象的可能性,并在广告视频与正片视频之间无黑屏等明显的切换痕迹,从而能够提高视频播放的流畅性,提高用户的观看体验。
根据下面参考附图对示例性实施例的详细说明,本发明的其它特征及方面将变得清楚。
附图说明
包含在说明书中并且构成说明书的一部分的附图与说明书一起示出了本发明的示例性实施例、特征和方面,并且用于解释本发明的原理。
图1示出根据本发明一实施例的视频播放方法的实现流程图;
图2示出根据本发明一实施例的视频播放方法步骤S102的一示例性的实现流程图;
图3示出根据本发明一实施例的视频播放方法步骤S104的一示例性的实现流程图;
图4示出根据本发明一实施例的视频播放方法的一示例性的实现流程图;
图5示出根据本发明另一实施例的视频播放装置的结构框图;
图6示出根据本发明另一实施例的视频播放装置的一示例性的结构框图;
图7示出了本发明的另一个实施例的一种视频播放设备的结构框图。
具体实施方式
以下将参考附图详细说明本发明的各种示例性实施例、特征和方面。附图中相同的附图标记表示功能相同或相似的元件。尽管在附图中示出了实施例的各种方面,但是除非特别指出,不必按比例绘制附图。
在这里专用的词“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。
另外,为了更好的说明本发明,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员应当理解,没有某些具体细节,本发明同样可以实施。在一些实例中,对于本领域技术人员熟知的方法、手段、元件和电路未作详细描述,以便于凸显本发明的主旨。
实施例1
图1示出根据本发明一实施例的视频播放方法的实现流程图。本实施例的执行主体可以为PC(Personal Computer,个人电脑),也可以为手机或者平板电脑等移动终端,还可以为其他视频播放装置,在此不作限定。本实施例提供的视频播放方法可以应用于各种视频客户端或者视频网站中,在此不作限定。如图1所示,该方法主要包括:
在步骤S101中,在接收到播放视频的请求的情况下,创建播放窗口。
作为本发明实施例的一个示例,对于接收的每一个播放视频的请求,可以仅创建一个播放窗口(句柄)。在该视频包含正片视频和正片视频之前的广告视频的情况下,通过该播放窗口播放正片视频和广告视频。在该视频包含正片视频,且不包含正片视频之前的广告视频的情况下,通过该播放窗口播放正片视频。
在步骤S102中,在该视频包含正片视频和正片视频之前的广告视频的情况下,加载广告视频数据和正片视频数据。
其中,正片视频可以指用户请求播放的视频中的主要内容。例如,用户想要观看电影A1,并请求播放电影A1对应的视频A,视频A包括电影A1和电影前的广告A2,则视频A中的正片视频为电影A1,视频A中的广告视频为广告A2。
其中,正片视频之前的广告视频也可以称为该正片视频的前贴广告视频。
作为本发明实施例的一个示例,在该视频包含正片视频和正片视频之前的广告视频的情况下,同时加载广告视频数据和正片视频数据。
在步骤S103中,通过播放窗口播放已加载的广告视频数据,并在播放已加载的广告视频数据的过程中,暂停播放正片视频数据,并将正片视频置为隐藏状态。其中,在播放已加载的广告视频数据的过程中,仍继续加载正片视频数据。
在步骤S104中,在满足预设条件的情况下,通过播放窗口播放已加载的正片视频数据。
在一种可能的实现方式中,满足预设条件,包括:广告视频播放完毕。在该实现方式中,在检测到广告视频播放完毕的情况下,通过播放窗口播放已加载的视频数据。
在另一种可能的实现方式中,满足预设条件,包括:广告视频播放出错。在该实现方式中,在检测到广告视频播放出错的情况下,通过播放窗口播放已加载的视频数据,由此避免广告视频播放出错影响正片视频的播放,从而能够提高用户的观看体验,并能够提高该视频的观看量和观看时长。
在本发明实施例中,通过在接收到播放视频的请求且该视频包含正片视频和正片视频之前的广告视频的情况下,同时加载广告视频和正片视频,能够降低在广告视频播放完毕并开始播放正片视频时产生卡顿现象的可能性,使用户在广告视频播放完毕并开始播放正片视频时无需等待加载正片视频数据,从而能够提高观看体验。此外,在广告视频播放完毕并开始播放正片视频时,若用户拖动视频的进度条,也可以较为快速地响应用户需求,降低在广告视频播放完毕并开始播放正片视频时用户拖动进度条产生卡顿现象的可能性,从而能够提高观看体验。同时,通过同一个播放窗口播放广告视频和正片视频,能够避免广告视频与正片视频之间出现黑屏等明显的切换痕迹,由此使广告视频与正片视频之间的衔接更流畅、平滑,从而能够进一步提高观看体验。
图2示出根据本发明一实施例的视频播放方法步骤S102的一示例性的实现流程图。如图2所示,在该视频包含正片视频和正片视频之前的广告视频的情况下,加载广告视频数据和正片视频数据,包括:
在步骤S201中,在该视频包含正片视频和正片视频之前的广告视频的情况下,创建广告进程和正片进程。
作为本发明实施例的一个示例,可以通过中间管理调度层(nplayer.dll)创建广告进程(例如ad.exe)和正片进程(例如player.exe)。在该示例中,广告进程和正片进程可以为互相独立的进程。本示例提供的视频播放方法可以应用于广告进程与正片进程为独立进程(independent process)形态的视频客户端或者视频网站等的在线播放模块中,在此不作限定。
在步骤S202中,通过广告进程加载广告视频数据,并通过正片进程加载正片视频数据。
作为本发明实施例的一个示例,在通过中间管理调度层创建广告进程和正片进程之后,中间管理调度层可以同时启动广告进程和正片进程,通过广告进程加载广告视频数据,并向正片进程发送预加载(preload)命令,通过正片进程加载正片视频数据。在中间管理调度层启动广告进程和正片进程后,首先由广告进程占用播放窗口,通过播放窗口播放已加载的广告视频数据,并在播放已加载的广告视频数据的过程中,将正片进程置为暂停和隐藏状态,也就是暂停播放正片视频数据,并将正片视频置为隐藏状态。
作为本发明的实施例的一个示例,中间管理调度层还可以用于接收来自播放界面的操作命令,并将接收的操作命令传递给播放进程(即广告进程或者正片进程),以对播放进程进行播放控制。例如,中间管理调度层还可以用于接收来自播放界面的暂停(pause)命令,并将接收的暂停命令传递给播放进程,以使播放进程暂停播放。此外,中间管理调度层还可以用于接收来自于播放进程的输出消息,并将播放进程的输出消息传递给播放窗口。例如,间管理调度层还可以用于接收来自于播放进程的当前播放时间,并将播放进程的当前播放时间传递给播放窗口,以使播放窗口显示当前播放时间。
图3示出根据本发明一实施例的视频播放方法步骤S104的一示例性的实现流程图。如图3所示,在满足预设条件的情况下,通过播放窗口播放已加载的正片视频数据,包括:
在步骤S301中,在满足预设条件的情况下,销毁广告进程。
例如,可以在广告视频播放完毕或者广告视频播放出错的情况下,销毁广告进程。
在步骤S302中,将正片视频置为显示状态,并通过播放窗口播放已加载的正片视频数据。
在该示例中,在销毁广告进程之后,唤醒正片进程,将正片视频置为显示状态,并通过播放窗口播放已加载的正片视频数据。
图4示出根据本发明一实施例的视频播放方法的一示例性的实现流程图。如图4所示,该方法包括:
在步骤S401中,在接收到播放视频的请求的情况下,创建播放窗口。
在步骤S402中,判断该视频是否包含正片视频之前的广告视频,若是,则执行步骤S403,否则执行步骤S406。
在步骤S403中,加载广告视频数据和正片视频数据。
在步骤S404中,通过播放窗口播放已加载的广告视频数据,并在播放已加载的广告视频数据的过程中,暂停播放正片视频数据,并将正片视频置为隐藏状态。
在步骤S405中,判断是否满足预设条件,若是,则执行步骤S407,否则返回步骤S404。
在步骤S406中,加载正片视频数据。
在步骤S407中,通过播放窗口播放已加载的正片视频数据。
作为本发明实施例的一个示例,在该视频不包含正片视频之前的广告视频的情况下,可以通过中间管理调度层唤醒正片进程,由正片进程占用播放窗口,通过正片进程加载正片视频数据,并通过播放窗口播放已加载的正片视频数据。
作为本发明实施例的一个示例,在满足预设条件的情况下,中间管理调度层可以检测到满足预设条件的消息,并向正片进程发出唤醒命令(例如pase_hide_0命令),以使正片进程被唤醒,换言之,使正片进程占用播放窗口,以通过播放窗口播放已加载的正片视频数据。
这样,通过在视频包含正片视频和正片视频之前的广告视频的情况下,同时加载广告视频数据和正片视频数据,并通过同一个播放窗口播放广告视频和正片视频,根据本发明实施例的视频播放方法能够在正片视频之前存在广告视频的情况下,降低在广告视频播放完毕并开始播放正片视频时产生卡顿现象的可能性,并在广告视频与正片视频之间无黑屏等明显的切换痕迹,从而能够提高视频播放的流畅性,提高用户的观看体验。
实施例2
图5示出根据本发明另一实施例的视频播放装置的结构框图。图5所示的装置可以用于运行图1所示的视频播放方法。为了便于说明,在图5中仅示出了与本发明实施例相关的部分。
如图5所示,该装置包括:播放窗口创建模块51,用于在接收到播放视频的请求的情况下,创建播放窗口;第一加载模块52,用于在所述视频包含正片视频和正片视频之前的广告视频的情况下,加载广告视频数据和正片视频数据;第一播放控制模块53,用于通过所述播放窗口播放已加载的广告视频数据,并在播放所述已加载的广告视频数据的过程中,暂停播放所述正片视频数据,并将所述正片视频置为隐藏状态;第二播放控制模块54,用于在满足预设条件的情况下,通过所述播放窗口播放已加载的正片视频数据。
图6示出根据本发明另一实施例的视频播放装置的一示例性的结构框图。图6所示的装置可以用于运行图1至图4所示的视频播放方法。为了便于说明,在图6中仅示出了与本发明实施例相关的部分。图6中标号与图5相同的组件具有相同的功能,为简明起见,省略对这些组件的详细说明。
在一种可能的实现方式中,所述第一加载模块52包括:进程创建子模块521,用于在所述视频包含正片视频和正片视频之前的广告视频的情况下,创建广告进程和正片进程;加载子模块522,用于通过所述广告进程加载广告视频数据,并通过所述正片进程加载正片视频数据。
在一种可能的实现方式中,所述第二播放控制模54块包括:进程销毁子模块541,用于在满足预设条件的情况下,销毁所述广告进程;播放控制子模块542,用于将所述正片视频置为显示状态,并通过所述播放窗口播放已加载的正片视频数据。
在一种可能的实现方式中,满足预设条件,包括:所述广告视频播放完毕。
在一种可能的实现方式中,满足预设条件,包括:所述广告视频播放出错。
在一种可能的实现方式中,所述装置还包括:第二加载模块55,用于在所述视频包含正片视频,且不包含正片视频之前的广告视频的情况下,加载正片视频数据;第三播放控制模块56,用于通过所述播放窗口播放已加载的正片视频数据。
需要说明的是,这样,通过在视频包含正片视频和正片视频之前的广告视频的情况下,同时加载广告视频数据和正片视频数据,并通过同一个播放窗口播放广告视频和正片视频,根据本发明实施例的视频播放装置能够在正片视频之前存在广告视频的情况下,降低在广告视频播放完毕并开始播放正片视频时产生卡顿现象的可能性,并在广告视频与正片视频之间无黑屏等明显的切换痕迹,从而能够提高视频播放的流畅性,提高用户的观看体验。
实施例3
图7示出了本发明的另一个实施例的一种视频播放设备的结构框图。所述视频播放设备1100可以是具备计算能力的主机服务器、个人计算机PC、或者可携带的便携式计算机或终端等。本发明具体实施例并不对计算节点的具体实现做限定。
所述视频播放设备1100包括处理器(processor)1110、通信接口(CommunicationsInterface)1120、存储器(memory)1130和总线1140。其中,处理器1110、通信接口1120、以及存储器1130通过总线1140完成相互间的通信。
通信接口1120用于与网络设备通信,其中网络设备包括例如虚拟机管理中心、共享存储等。
处理器1110用于执行程序。处理器1110可能是一个中央处理器CPU,或者是专用集成电路ASIC(Application Specific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。
存储器1130用于存放文件。存储器1130可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。存储器1130也可以是存储器阵列。存储器1130还可能被分块,并且所述块可按一定的规则组合成虚拟卷。
在一种可能的实施方式中,上述程序可为包括计算机操作指令的程序代码。该程序具体可用于:实现实施例1中各步骤的操作。
本领域普通技术人员可以意识到,本文所描述的实施例中的各示例性单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件形式来实现,取决于技术方案的特定应用和设计约束条件。专业技术人员可以针对特定的应用选择不同的方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
如果以计算机软件的形式来实现所述功能并作为独立的产品销售或使用时,则在一定程度上可认为本发明的技术方案的全部或部分(例如对现有技术做出贡献的部分)是以计算机软件产品的形式体现的。该计算机软件产品通常存储在计算机可读取的非易失性存储介质中,包括若干指令用以使得计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本发明各实施例方法的全部或部分步骤。而前述的存储介质包括U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。