System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及计算机,特别是涉及一种视频播放方法、装置、电子设备及可读存储介质。
技术介绍
1、目前,为了在终端中对视频以悬浮窗的形式进行播放,可以利用终端的操作系统提供的播放器图层开启画中画组件,以生成悬浮窗,进而在悬浮窗中对该视频进行播放。例如,在ios(一种移动操作系统)系统中,该播放器图层即avplayerlayer,画中画组件即avpictureinpicturecontroller。
2、然而,终端的操作系统提供的播放器图层往往仅支持对特定格式的视频进行渲染,也就使得终端的操作系统只支持对特定格式的视频以悬浮窗的形式进行显示,而针对其他格式的视频则不支持以悬浮窗的形式进行显示。
3、因此,如何以悬浮窗的方式对播放器图层不支持格式的视频进行播放,是亟待解决的问题。
技术实现思路
1、本申请实施例的目的在于提供一种视频播放方法、装置、电子设备及可读存储介质,以实现以悬浮窗的方式对播放器图层不支持格式的视频进行播放。具体技术方案如下:
2、在本申请实施例的一个方面,提供了一种视频播放方法,应用于终端,所述方法包括:
3、在以非悬浮窗的方式播放目标视频的过程中,当接收到用于指示按照悬浮窗的方式播放所述目标视频的指令时,停止以所述非悬浮窗的方式播放所述目标视频,并创建第一视图,将预设视频文件作为入参,在所述第一视图中添加所述终端的操作系统提供的播放器图层;以及创建第二视图,在所述第二视图中添加所述操作系统提供的视频渲染层;其中,所述预设
4、将所述播放器图层作为入参,开启所述操作系统提供的画中画组件,以在所述终端的显示界面中显示悬浮窗;
5、在监听到所述悬浮窗的显示事件时,将所述第二视图添加至所述悬浮窗中;
6、获取所述目标视频当前的视频流数据,并在所获取的视频流数据为所述视频渲染层不支持的格式的情况下,将所获取的视频流数据转化为所述视频渲染层支持的格式;
7、利用所述第二视图中的所述视频渲染层对转化后的视频流数据进行渲染,以在所述悬浮窗中播放所述目标视频。
8、可选地,所述创建第二视图,包括:
9、获取预设的视图的属性信息;其中,所述属性信息表示:待生成的视图中包含的用于控制视频播放的控件的属性;
10、创建包含所述属性信息所表示的控件的视图,作为第二视图。
11、可选地,所述获取所述目标视频当前的视频流数据,包括:
12、按照所述终端的屏幕刷新率,从本地缓存空间中缓存的所述目标视频的视频流数据中,获取当前的视频流数据;其中,所述本地缓存空间中所存储的视频流数据为所述终端从视频服务端获取,并缓存的。
13、可选地,所述按照所述终端的屏幕刷新率,从本地缓存空间中缓存的所述目标视频的视频流数据中,获取当前的视频流数据,包括:
14、调用定时周期与所述终端的屏幕刷新率相同步的定时器,以按照所述定时器的定时周期,从本地缓存空间中缓存的所述目标视频的视频流数据中,获取当前的视频流数据。
15、可选地,所述方法还包括:
16、当接收到所述悬浮窗的关闭指令时,停止显示所述悬浮窗,并将所述第二视图从所述悬浮窗中移除。
17、可选地,所述预设视频文件为本地存储的无声视频文件。
18、在本申请实施例的另一方面,还提供了一种视频播放装置,应用于运行ios系统的终端,所述装置包括:
19、视图创建模块,用于在以非悬浮窗的方式播放目标视频的过程中,当接收到用于指示按照悬浮窗的方式播放所述目标视频的指令时,停止以所述非悬浮窗的方式播放所述目标视频,并创建第一视图,将预设视频文件作为入参,在所述第一视图中添加所述终端的操作系统提供的播放器图层;以及创建第二视图,在所述第二视图中添加所述操作系统提供的视频渲染层;其中,所述预设视频文件为所述播放器图层所支持的格式;
20、组件开启模块,用于将所述播放器图层作为入参,开启所述操作系统提供的画中画组件,以在所述终端的显示界面中显示悬浮窗;
21、视图添加模块,用于在监听到所述悬浮窗的显示事件时,将所述第二视图添加至所述悬浮窗中;
22、视频流获取模块,用于获取所述目标视频当前的视频流数据,并在所获取的视频流数据为所述视频渲染层不支持的格式的情况下,将所获取的视频流数据转化为所述视频渲染层支持的格式;
23、渲染模块,用于利用所述第二视图中的所述视频渲染层对转化后的视频流数据进行渲染,以在所述悬浮窗中播放所述目标视频。
24、在本申请实施例的另一方面,还提供了一种电子设备,包括:
25、存储器,用于存放计算机程序;
26、处理器,用于执行存储器上所存放的程序时,实现上述任一所述的视频播放方法。
27、在本申请实施例的另一方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一所述的视频播放方法。
28、本申请实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述任一所述的视频播放方法。
29、本申请实施例有益效果:
30、本申请实施例提供的一种视频播放方法,应用于终端,该方法包括:
31、在以非悬浮窗的方式播放目标视频的过程中,当接收到用于指示按照悬浮窗的方式播放目标视频的指令时,停止以非悬浮窗的方式播放目标视频,并创建第一视图,将预设视频文件作为入参,在第一视图中添加终端的操作系统提供的播放器图层;以及创建第二视图,在第二视图中添加操作系统提供的视频渲染层;其中,预设视频文件为播放器图层所支持的格式;将播放器图层作为入参,开启操作系统提供的画中画组件,以在终端的显示界面中显示悬浮窗;在监听到悬浮窗的显示事件时,将第二视图添加至悬浮窗中;获取目标视频当前的视频流数据,并在所获取的视频流数据为视频渲染层不支持的格式的情况下,将所获取的视频流数据转化为视频渲染层支持的格式;利用第二视图中的视频渲染层对转化后的视频流数据进行渲染,以在悬浮窗中播放目标视频。
32、本方案中,通过利用第一视图,以操作系统提供的播放器图层所支持格式的预设视频文件作为播放器图层的入参,使得操作系统提供的画中画组件能够得以正常开启,以生成悬浮窗,在此基础上,再将添加有操作系统提供的视频渲染层的第二视图添加至悬浮窗中,并且还在视频流数据为视频渲染层不支持的格式的情况下,将所获取的视频流数据转化为视频渲染层支持的格式,使得第二视图中的视频渲染层能够对转化后的视频流数据进行渲染,从而在目标视频为播放器图层不支持的格式的情况下,也能够以悬浮窗的方式播放该目标视频。因此,通过本方案,能够实现以悬浮窗的方式对播放器图层不支持格式的视频进行播放。
33、当然,实施本申请的任一产品或方法并不一定需要同时达到以上所述本文档来自技高网...
【技术保护点】
1.一种视频播放方法,其特征在于,应用于终端,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述创建第二视图,包括:
3.根据权利要求1所述的方法,其特征在于,所述获取所述目标视频当前的视频流数据,包括:
4.根据权利要求3所述的方法,其特征在于,所述按照所述终端的屏幕刷新率,从本地缓存空间中缓存的所述目标视频的视频流数据中,获取当前的视频流数据,包括:
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
6.根据权利要求1-5任一所述的方法,其特征在于,所述预设视频文件为本地存储的无声视频文件。
7.一种视频播放装置,其特征在于,应用于终端,所述装置包括:
8.一种电子设备,其特征在于,包括:
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-6任一所述的方法。
10.一种计算机程序产品,其特征在于,包括计算机程序,所述计算机程序在在计算机上时实现根据权利要求1-6任一项所述的
...【技术特征摘要】
1.一种视频播放方法,其特征在于,应用于终端,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述创建第二视图,包括:
3.根据权利要求1所述的方法,其特征在于,所述获取所述目标视频当前的视频流数据,包括:
4.根据权利要求3所述的方法,其特征在于,所述按照所述终端的屏幕刷新率,从本地缓存空间中缓存的所述目标视频的视频流数据中,获取当前的视频流数据,包括:
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
6.根据权...
【专利技术属性】
技术研发人员:王金龙,
申请(专利权)人:杭州萤石软件有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。