具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
图1为一个实施例中视频播放方法的应用环境图。参照图1,该应用环境中包括通过网络连接的终端110和服务器120。终端110可以是智能电视机、计算机或移动终端,移动终端可以包括手机、平板电脑、笔记本电脑、个人数字助理和穿戴式设备等中的至少一种。
终端110可以从服务器120中获取视频流来播放视频,在播放视频的过程中,终端110可以触发针对视频的视频片段选择指令以确定视频中的目标视频片段,进一步地,当触发针对目标视频片段的循环播放指令时,将根据循环播放指令调整视频的播放进度,以循环播放视频中的目标视频片段。
需要说明的是,本申请各实施例中的“第一”和“第二”仅用作区分,而并不用于大小、先后、从属等方面的限定。
如图2所示,在一个实施例中,提供了一种视频播放方法。本实施例主要以该方法应用于上述图1中的终端110来举例说明。参照图2,该视频播放方法具体包括如下步骤:
S202,播放视频。
在一个实施例中,视频可以是一部电影、一集电视剧或是一部录制的视频等,在终端上可以通过客户端进行播放。其中,客户端可以为安装在终端上的视频应用,也可以为网页中嵌入的视频播放插件,本实施例对此无需加以限定。
在服务器中存储了大量的媒体资源,当接收到客户端发送的视频请求时,可以根据该视频请求获取到相应的视频流,然后将该视频流反馈至客户端进行视频播放。
S204,触发针对所述视频的视频片段选择指令。
对于播放的视频,如果用户想要从视频中选定视频片段用于循环播放,可以通过客户端触发针对视频的视频片段选择指令。
如图3所示,在一个实施例中,在所述视频侧展示有片段循环按钮,所述S204具体包括如下内容:
S302,获取所述视频对应的片段标签。
其中,片段标签是用于定位到视频中某一视频片段的定位信息,具体地,片段标签可以包括针对视频设置的起始时间和终止时间。例如,设置视频的时间格式为<hh:mm:ss>,假设视频的总时长为<2:00:00>,片段标签的起始时间为<0:38:48>,终止时间为<0:58:45>,则对应的视频片段为在视频中时间段为<0:38:48>至<0:58:45>的视频。
可选地,片段标签可以保存于终端本地或者服务器中,在启动客户端播放视频时将从终端本地获取服务器中获取片段标签。
S304,响应于针对片段循环按钮的触控操作,进入所述视频的片段循环设置界面;所述片段循环设置界面上设置有与所述片段标签对应的视频片段提示框。
本实施例在客户端中添加了“片段循环”按钮,可以在用户在终端上开启客户端播放视频时在视频侧进行展示,也可以由用户通过开启客户端的播放器菜单找到“片段循环”按钮,在检测到用户对“片段循环”按钮的触控操作(比如点击)时,弹出片段循环设置界面。
参照图4,所示为一种视频侧片段循环按钮的示意图,在视频的下方有一个“片段循环”按钮,在用户点击该按钮时,将弹出视频的片段循环设置界面。
在弹出片段循环设置界面时,为了让用户直观了解到已针对视频添加的片段标签,可以采用片段标签分别生成对应的视频片段提示框,并在片段循环设置界面进行展示。
参照图5,所示为一种片段循环设置界面的示意图,在该图中包括有“循环1”、“循环2”、“循环3”共三个视频片段提示框,表示已经针对视频添加了三个片段标签。可选地,为了便于用户知道片段标签的添加意义,用户可以修改视频片段提示框的名称,比如原先默认为“循环2”,可以修改为“歌曲”。
在一个实施例中,如果还没有针对视频添加过片段标签,那么片段循环设置界面中仅展示一个“添加”按钮和“开启片段循环”按钮。如果已经针对视频添加过片段标签,那么除了“添加”按钮和“开启片段循环”按钮,还将展示之前添加过的片段标签所生成的视频片段提示框。
参照图6,在一个实施例中,在所述播放视频之后,所述方法具体还包括如下内容:
S602,触发针对所述视频的视频片段生成指令。
在一个实施例中,所述片段循环设置界面上设置有添加按钮,所述S402具体包括如下内容:响应于针对所述添加按钮的触控操作,进入视频片段设置界面;在所述视频片段设置界面输入起始时间和终止时间;触发与所述起始时间和所述终止时间对应的视频片段生成指令。
当用户观看视频并对其中某个视频片段感兴趣,想要循环观看该视频片段时,点击客户端中的“片段循环”按钮,进入片段循环设置界面,然后点击界面的“添加”按钮,进入视频片段设置界面,具体如图7所示,按照提示输入视频片段的起始时间和终止时间,即可触发相应的视频片段生成指令。
S604,根据所述视频片段生成指令,生成所述视频中的视频片段的片段标签。
触发视频片段生成指令后,将根据该指令生成一个新的片段标签。当生成一个新的片段标签后,可以在片段循环设置界面展示新的视频片段提示框。此时,用户可以继续返回观看视频,或者添加更多的片段标签。
S306,响应于针对目标视频片段提示框的触控操作,获取所述目标视频片段提示框对应的目标片段标签;触发与所述目标片段标签对应的视频片段选择指令。
具体地,用户可以对片段循环设置界面上展示的视频片段提示框进行点击,点击则视为选中,可以将选中的视频片段提示框对应的片段标签作为目标片段标签,从而触发与目标片段标签对应的视频片段选择指令。
参照图5,用户可以点击片段循环设置界面中的“循环2”、“循环3”这两个视频片段提示框,则表示选中这两个视频片段提示框对应的片段标签,作为目标片段标签。
在一个可选实施例中,如果不需要已经添加的片段标签,可以选择删除该片段标签。参照图5,图中包括有“循环1”、“循环2”、“循环3”共三个视频片段提示框,其中,每个视频片段提示框都提供了一个单独的“删除”按钮,用于从删除该视频片段。当用户点击某个视频片段提示框上的“删除”按钮时,可以该视频片段提示框对应片段标签删除,当然,在片段循环设置界面中也将不再展示该视频片段提示框。
其中,在客户端删除或者添加片段标签后,客户端可以在本地删除或者保存的同时,向服务器做一次同步,使得在服务器存储的相应片段标签同步删除或者添加,保持终端和服务器之间数据的一致性。
S206,根据所述视频片段选择指令,确定所述视频中的目标视频片段。
视频片段选择指令为基于目标片段标签触发,故可以根据指令中的目标片段标签来进一步确定视频中的目标视频片段。
参照图8,在一个实施例中,所述S206具体包括如下内容:
S802,从所述视频片段选择指令中提取出目标起始时间和目标终止时间。
根据前述可知,片段标签中包括起始时间和终止时间,因此本实施例可以从视频片段选择指令中提取目标片段标签,并进一步从目标片段标签中提取出目标起始时间和目标终止时间。
S804,将所述视频中所述目标起始时间和目标终止时间对应的视频片段,确定为所述视频中的目标视频片段。
其中,根据目标起始时间和目标终止时间,可以在视频中定位到相应的视频片段,作为该视频的目标视频片段。
S208,触发针对所述目标视频片段的循环播放指令。
在一个实施例中,所述S208包括:响应于针对所述开始片段循环按钮的触控操作,触发针对所述目标视频片段的循环播放指令。
参照图5,在片段循环设置界面上具有“开启片段循环”按钮,在用户点击了该按钮后,触发针对目标视频片段的循环播放指令,进入片段循环模式。
S210,根据所述循环播放指令,调整所述视频的播放进度,以循环播放所述视频中的所述目标视频片段。
在进入片段循环模式后,客户端在播放视频时,将通过调整视频播放进度的方式来循环播放目标视频片段。其中,目标视频片段可以是一个,也可以是两个或者以上。
假设目标视频片段只有一个,那么可以读取该目标视频片段对应的目标起始时间和目标终止时间(下面简称为一组目标起始时间和目标终止时间为一个时间对),然后按照该时间对来播放目标视频片段。参照图9,假设目标视频片段的时间对为20:10-25:30,那么客户端将从20:10开始播放视频,一直播放到25:30,其中,当播放至25:30时跳转至20:10再次开始播放,以此达到循环播放的目标。
假设目标视频片段有两个或者以上,那么可以依次读取该目标视频片段对应的目标起始时间和目标终止时间(下面简称为一组目标起始时间和目标终止时间为一个时间对),然后依次按照该时间对来播放多个目标视频片段。参照图10,假设有两个目标视频片段,这两个目标视频片段对应的时间对分别为20:10-25:30和30:40-35:30,则从20:10开始播放视频,一直播放到25:30,然后在跳转至30:40,一直播放到35:30,其中,当播放至35:30时跳转至20:10再次开始播放,以此达到循环播放的目标。
需要说明的是,在目标视频片段有两个或者以上时,在循环播放目时可以采用多种播放顺序来播放,例如可以按照片段标签的创建顺序,目标视频片段本身在视频中的时间先后顺序等等,本实施例对此无需加以限制。
在一个可选实施例中,所述方法还可以包括如下内容:缓存所述视频中所述目标视频片段;根据所述循环播放指令,调整所述视频的播放进度,以循环播放缓存的所述视频中的所述目标视频片段。
优选地,本实施例可以在确定目标视频片段后,在终端上缓存视频中的目标视频片段,当触发循环播放指令时,可以调整视频的播放进度,以循环播放缓存的目标视频片段,这样,由于在客户端中缓存了目标视频片段,那么即时此时终端处于离线状态,也可以在客户端上继续播放目标视频片段,对于用户而言,观看体验极佳。
应用本实施例,在播放视频的过程中,触发针对视频的视频片段选择指令,确定视频中的目标视频片段,随后,如果触发针对目标视频片段的循环播放指令,则可以根据循环播放指令,调整视频的播放进度,以循环播放视频中的所述目标视频片段。本实施例可以在播放视频时自动调整视频的播放进度来达到循环播放目标视频片段的目的,无需用户多次反复调整视频的进度条,操作方式便捷,使用体验较好。
为了使本领域技术人员更好地理解本申请实施例,下面分别从前端逻辑和后端框架对于本申请实施例实现视频片段循环播放的过程进行说明。
本申请实施例可以在Android系统的终端上实现,可以落实在诸如影音类APP的客户端上,参照图11,所示为视频片段循环播放的前端逻辑流程图,前端逻辑流程包括:
1、用户开启终端的客户端,开始播放视频;
2、用户观看视频时,对视频中的某个视频片段感兴趣;
3、用户点击客户端中的展示的“片段循环”按钮,进入片段循环设置界面;
4、用户点击片段循环设置界面中的“添加”按钮,输入视频片段的起始时间和终止时间并保存,完成一个新的片段标签的添加;
5、用户选择继续观看视频,也可以选择继续添加片段标签;
6、若检测到用户点击片段循环设置界面中的“开启片段循环”按钮,则执行步骤6,当然也可以结束添加片段标签;
7、进入视频片段循环模式,客户端获取多个片段标签,然后按照播放顺序依次提取出片段标签;
8、客户端依次按照提取出来的片段标签,将视频的播放进度调整到片段标签的从起始时间并开始播放,并播放至终止时间,其中,在未退出片段循环模式时,播放至终止时间时,返回步骤7;
9、当用户在视频片段循环过程中,可以选择退出片段循环模式,结束视频片段的循环播放。
本申请实施例基于对MVC(Model View Controller模型-视图-控制器)框架实现前端逻辑流程,其中MVC框架包括有三层,分别是展示层、控制层和数据层,下面对于在各层实现视频片段循环播放的过程进行说明。
一、展示层
参照图12,所示为一个实施例的片段循环设置弹框(片段循环设置界面)的构成示意图,由视频片段列表和开启按钮两部分组成,其中,视频片段列表中包含了视频片段提示框和“添加”按钮两种组件,整个弹框容器使用约束布局ConstraintLayout实现,下面详细介绍下如下几个部分:
视频片段列表区域:视频片段列表负责展示视频已经添加的片段标签对应的视频片段提示框以及“添加”按钮。删除或者添加新的片段标签后,视频片段列表都会进行刷新来正确的展示数据。视频片段列表区域由Android的RecyclerView控件实现。
视频片段区域:每个视频片段提示框都会展示视频片段的起始时间和终止时间,每个视频片段提示框都提供了一个单独的“删除”按钮用于从视频中删除该视频片段。视频片段区域由LinearLayout作为容器,使用TextView加Button实现具体的内容展示。
添加按钮区域:在视频片段列表中的末尾是“添加”按钮(图中“+”部分),通过该按钮可以开启视频片段设置界面,以输入起始时间和终止时间并保存,创建一个新的片段标签。添加按钮区域使用LinearLayout添加点击事件完成。
二、控制层
参照图13,所示一个实施例中实现视频片段循环播放的类图,其中,VideoFragmentmanager作为控制类,包含了数据类(mDataInfo)和视频片段设置弹界面展示类(mDialog)。
VideoFragmentmanager作为控制类的功用是,作为数据类和展示类的桥梁,将二者的功能结合起来,封装成类给外界调用。这种方式很好地将逻辑和界面分开,仅仅提供一个实现,就能完成一个功能。其功能包括:初始化界面、创建片段标签、调用数据类向服务器同步、删除数据等等。
三、数据层:
数据层主要为处理片段标签在客户端与服务器之间的同步过程。其中,在实现同步过程中,数据请求的时机共三个,分别是:
数据请求第一个时机,是用户所选的视频即将要播放时,服务器会接收到客户端发送的视频播放请求,服务器在接收到视频播放请求后,将视频和以前保存的片段标签一起返回,返回的片段标签会存储在内存当中,当用户开启片段循环设置界面时,片段标签会以视频片段提示框的方式展示到界面当中。
数据请求第二个时机,是用户添加新的片段标签时,新添加的片段标签会由客户端同步到服务器中进行存储,以便用户下次播放该视频时可以从服务器获取。
数据请求第三个时机,是用户删除已有的片段标签时,删除的片段标签也会同步到服务器,服务器删除掉相应的片段标签。
通过这三个数据请求流程,保持片段标签在客户端与服务器之间的一致。需要说明的是,上述仅仅是作为示例,在实际中可以采用其他方式实现,本申请实施例对此无需加以限制。
上述视频播放方法中,使得用户可以在一个视频中选择视频片段进行循环播放,使得可以根据用户的喜好选择感兴趣视频的部分视频进行循环播放,无需多次手动拖动进度条来重复播放一个视频的一部分。同时本申请实施例也支持添加一个视频中的多个视频片段进行循环播放,并将片段标签保存到服务器中,那么用户以后重新在客户端上观看该视频时,可以继续循环播放自己感兴趣的视频。
图2、3、6、和8为一个实施例中视频播放方法的流程示意图。应该理解的是,虽然上述的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,上述的流程图的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
如图14所示,在一个实施例中,提供了一种视频播放装置1400。本实施例主要以该方法应用于上述图1的终端110来举例说明。参照图14,该视频播放装置1400具体包括视频播放模块1402、第一指令触发模块1404、目标视频片段确定模块1406、第二指令触发模块1408和循环播放模块1410,其中:
视频播放模块1402,用于播放视频;
第一指令触发模块1404,用于触发针对所述视频的视频片段选择指令;
目标视频片段确定模块1406,用于根据所述视频片段选择指令,确定所述视频中的目标视频片段;
第二指令触发模块1408,用于触发针对所述目标视频片段的循环播放指令;
循环播放模块1410,用于根据所述循环播放指令,调整所述视频的播放进度,以循环播放所述视频中的所述目标视频片段。
在一个可选实施例中,在所述视频侧展示有片段循环按钮,所述第一指令触发模块1404包括:
片段标签获取模块,用于获取所述视频对应的片段标签;
片段循环设置界面进入模块,用于响应于针对片段循环按钮的触控操作,进入所述视频的片段循环设置界面;所述片段循环设置界面上设置有与所述片段标签对应的视频片段提示框;
目标片段标签获取模块,用于响应于针对目标视频片段提示框的触控操作,获取所述目标视频片段提示框对应的目标片段标签;
视频片段选择指令触发模块,用于触发与所述目标片段标签对应的视频片段选择指令。
在一个可选实施例中,所述目标视频片段确定模块1406包括:
时间提取模块,用于从所述视频片段选择指令中提取出目标起始时间和目标终止时间;
目标视频片段确定模块,用于将所述视频中所述目标起始时间和目标终止时间对应的视频片段,确定为所述视频中的目标视频片段。
在一个可选实施例中,所述第二指令触发模块1408包括:
循环播放指令触发模块,用于响应于针对所述开始片段循环按钮的触控操作,触发针对所述目标视频片段的循环播放指令。
在一个可选实施例中,所述装置还包括:
第三指令触发模块,用于触发针对所述视频的视频片段生成指令;
片段标签生成模块,用于根据所述视频片段生成指令,生成所述视频中的视频片段的片段标签。
在一个可选实施例中,所述片段循环设置界面上设置有添加按钮,所述第三指令触发模块包括:
视频片段设置界面进入模块,用于响应于针对所述添加按钮的触控操作,进入视频片段设置界面;
时间输入模块,用于在所述视频片段设置界面输入起始时间和终止时间;
视频片段生成指令触发模块,用于触发与所述起始时间和所述终止时间对应的视频片段生成指令。
在一个可选实施例中,所述装置还包括:
缓存模块,用于缓存所述视频中所述目标视频片段;
则所述循环播放模块1410包括:缓存播放模块,用于根据所述循环播放指令,调整所述视频的播放进度,以循环播放缓存的所述视频中的所述目标视频片段。
图14示出了一个实施例中计算机设备的内部结构图。该计算机设备具体可以是图1中的终端110。如图14所示,该计算机设备包括该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、输入装置和显示屏。其中,存储器包括非易失性存储介质和内存储器。该计算机设备的非易失性存储介质存储有操作系统,还可存储有计算机程序,该计算机程序被处理器执行时,可使得处理器实现视频播放方法。该内存储器中也可储存有计算机程序,该计算机程序被处理器执行时,可使得处理器执行视频播放方法。计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图14中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,本申请提供的视频播放装置可以实现为一种计算机程序的形式,计算机程序可在如图14所示的计算机设备上运行。计算机设备的存储器中可存储组成该视频播放装置的各个程序模块,比如,图13所示的视频播放模块1402、第一指令触发模块1404、目标视频片段确定模块1406、第二指令触发模块1408和循环播放模块1410。各个程序模块构成的计算机程序使得处理器执行本说明书中描述的本申请各个实施例的视频播放方法中的步骤。
例如,图14所示的计算机设备可以通过如图13所示的视频播放装置中视频播放模块1402执行播放视频;第一指令触发模块1404执行触发针对所述视频的视频片段选择指令;目标视频片段确定模块1406执行根据所述视频片段选择指令,确定所述视频中的目标视频片段;第二指令触发模块1408执行触发针对所述目标视频片段的循环播放指令;循环播放模块1410执行根据所述循环播放指令,调整所述视频的播放进度,以循环播放所述视频中的所述目标视频片段。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,计算机程序被处理器执行时,使得处理器执行上述视频播放方法的步骤。此处视频片段循环播放的方法的步骤可以是上述各个实施例的视频播放方法中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,存储有计算机程序,计算机程序被处理器执行时,使得处理器执行上述视频播放方法的步骤。此处视频片段循环播放的方法的步骤可以是上述各个实施例的视频播放方法中的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一非易失性计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(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)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。