一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

视频播放方法、装置及存储介质与流程

2022-10-26 16:14:57 来源:中国专利 TAG:


1.本公开涉及视频处理技术领域,具体而言,涉及一种视频播放方法、装置及存储介质。


背景技术:

2.目前,随着互联网的发展,终端设备的视频播放界面上,同时播放视频的数量也越来越多,但是受限于移动设备的图像处理性能、散热能力以及电池容量,导致现有技术中的多个视频的播放流畅度低。
3.针对上述的问题,目前尚未提出有效的解决方案。


技术实现要素:

4.本公开至少部分实施例提供了一种视频播放方法、装置及存储介质,以至少解决现有技术中的多个视频的播放流畅度低的技术问题。
5.根据本公开其中一实施例,提供了一种视频播放方法,通过终端设备的屏幕提供一第一页面,第一页面包含有多个第一视频窗口,该方法包括:获取第一页面的布局参数,其中,布局参数用于确定第一视频窗口对应的展示需求;基于布局参数,确定第一视频窗口对应的第一视频质量和第一显示位置,其中,第一显示位置用于表征第一视频窗口在第一页面上的位置;从服务器获取第一视频质量对应的第一视频流,其中,第一视频流由服务器通过第一视频质量对应的压缩参数对原始视频流进行压缩得到;在第一显示位置上对第一视频流进行播放。
6.可选地,基于布局参数,确定第一视频窗口对应的第一视频质量和第一显示位置,包括:获取第一视频窗口的播放优先级;基于布局参数,确定第一显示位置;基于播放优先级和第一显示位置,确定第一视频质量,其中,第一视频质量包括如下至少之一:分辨率和帧率。
7.可选地,该方法还包括:获取终端设备的当前网络状态,以及终端设备中处理器的处理性能数据;基于当前网络状态和处理性能数据,对第一页面的布局参数进行调整,得到调整结果,其中,调整结果用于表征第一页面包含的至少一个第二视频窗口的布局;确定第二视频窗口在第一页面的第二显示位置;在第二显示位置上对第二视频窗口对应的第二视频流进行播放。
8.可选地,在基于当前网络状态和处理性能数据,对第一页面的布局参数进行调整,得到调整结果之后,该方法还包括:确定第一视频窗口中的目标视频窗口,其中,目标视频窗口的窗口状态从可见状态变为不可见状态;停止从服务器获取目标视频窗口对应的目标视频流。
9.可选地,服务器中存储有按照不同压缩参数对同一个原始视频流进行压缩得到的视频流。
10.可选地,该方法还包括:响应于在第一页面中的第一操作,获取第一操作对应的第
二页面,其中,第二页面中包含有多个第三视频窗口;将第一视频窗口与第三视频窗口进行比对,得到比对结果;基于比对结果确定是否从服务器获取第三视频窗口对应的第三视频流。
11.可选地,在第一显示位置上对第一视频流进行播放包括:从控件资源池中获取第一视频窗口对应的第一视频控件;在第一显示位置上利用第一视频控件对第一视频流进行播放。
12.可选地,该方法还包括:响应在第一页面中的第二操作,获取第一视频窗口的窗口状态;响应于窗口状态从可见状态变为不可见状态,将第一视频窗口对应的第一视频控件存储至控件资源池。
13.可选地,从控件资源池中获取第一视频窗口对应的第一视频控件包括:确定控件资源池是否为空;响应于控件资源池不为空,则从控件资源池获取第一视频控件;响应于控件资源池为空,则创建第一视频控件。
14.可选地,该方法还包括:响应于第一页面被销毁,对控件资源池进行释放。
15.根据本公开其中一实施例,还提供了一种视频播放装置,通过终端设备的屏幕提供一第一页面,第一页面包含有多个第一视频窗口,该装置包括:布局参数获取模块,用于获取第一页面的布局参数,其中,布局参数用于确定第一视频窗口对应的展示需求;确定模块,用于基于布局参数,确定第一视频窗口对应的第一视频质量和第一显示位置,其中,第一显示位置用于表征第一视频窗口在第一页面上的位置;视频流获取模块,用于从服务器获取第一视频质量对应的第一视频流,其中,第一视频流是由服务器通过第一视频质量对应的压缩参数对原始视频流进行压缩得到;视频播放模块,用于在第一显示位置上对第一视频流进行播放。
16.根据本公开其中一实施例,还提供了一种非易失性存储介质,该非易失性存储介质中存储有计算机程序,其中,计算机程序被设置为被处理器运行时执行上述任一项中的视频播放方法。
17.根据本公开其中一实施例,还提供了一种电子装置,包括存储器和处理器,存储器中存储有计算机程序,处理器被设置为运行计算机程序以执行上述任一项中的视频播放方法。
18.在本公开至少部分实施例中,采用获取第一页面的布局参数,其中,布局参数用于确定第一视频窗口对应的展示需求;基于布局参数,确定第一视频窗口对应的第一视频质量和第一显示位置,其中,第一显示位置用于表征第一视频窗口在第一页面上的位置;从服务器获取第一视频质量对应的第一视频流,其中,第一视频流是由服务器通过第一视频质量对应的压缩参数对原始视频流进行压缩得到;在第一显示位置上对第一视频流进行播放的方式,实现多个视频同时播放的目的。第一视频流是由服务器通过第一视频质量对应的压缩参数对原始视频流进行压缩得到的,达到了保证视频质量的同时,可以快速获取每个第一视频流的目的,从而实现了提高多个视频播放流畅度的技术效果,进而解决了现有技术中的多个视频的播放流畅度低的技术问题。
附图说明
19.此处所说明的附图用来提供对本公开的进一步理解,构成本技术的一部分,本公
开的示意性实施例及其说明用于解释本公开,并不构成对本公开的不当限定。在附图中:
20.图1是本公开实施例的一种视频播放方法的终端设备的硬件结构框图;
21.图2是根据本公开其中一实施例的视频播放方法的流程图;
22.图3是根据本公开其中一实施例的一种可选的视频播放方法的示意图;
23.图4是根据本公开其中一实施例的一种可选的客户端订阅优化及资源复用示意图;
24.图5是根据本公开其中一实施例的一种可选的视频订阅处理方法流程图;
25.图6是根据本公开其中一实施例的一种视频播放装置的结构框图;
26.图7是根据本公开实施例的一种电子装置的示意图。
具体实施方式
27.为了使本技术领域的人员更好地理解本公开方案,下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分的实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本公开保护的范围。
28.需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
29.为了解决上述问题,现有技术提供了如下方案:第一种方案可以将多路视频压缩成一路视频,从而将多路视频播放问题降级为一路视频播放问题,可以有效降低带宽,简化终端处理逻辑;第二种方案可以是多路视频播放控制技术,可以有效控制终端视频播放总路数,从而减少带宽占用和终端处理数据量。
30.但是,将多路视频压缩成一路视频的方案,各路视频的独立性被弱化,客户端的定制化需求都需要服务器来定制完成;多路视频播放控制技术是基于终端的技术优化,现有方案只能粗略的对视频流订阅及取消订阅进行处理,但是对终端自身资源没有有效的优化管理,本地资源的频繁创建和回收,也会拖慢整个应用的响应。
31.根据本公开其中一实施例,提供了一种视频播放方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
32.该方法实施例可以在终端设备、计算机终端或者类似的运算装置中执行。以运行在终端设备上为例,该终端设备可以是智能手机(如android手机、ios手机等)、平板电脑、掌上电脑以及移动互联网设备(mobile internet devices,简称为mid)、pad、游戏机等终端设备。图1是本公开实施例的一种视频播放方法的终端设备的硬件结构框图。如图1所示,
终端设备可以包括一个或多个(图1中仅示出一个)处理器102(处理器102可以包括但不限于中央处理器(cpu)、图形处理器(gpu)、数字信号处理(dsp)芯片、微处理器(mcu)、可编程逻辑器件(fpga)、神经网络处理器(npu)、张量处理器(tpu)、人工智能(ai)类型处理器等的处理装置)和用于存储数据的存储器104。可选地,上述终端设备还可以包括用于通信功能的传输设备106、输入输出设备108以及显示设备110。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述终端设备的结构造成限定。例如,终端设备还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
33.存储器104可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本公开实施例中的视频播放方法对应的计算机程序,处理器102通过运行存储在存储器104内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的视频播放方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至终端设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
34.传输设备106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括终端设备的通信供应商提供的无线网络。在一个实例中,传输设备106包括一个网络适配器(network interface controller,简称为nic),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输设备106可以为射频(radio frequency,简称为rf)模块,其用于通过无线方式与互联网进行通讯。
35.输入输出设备108中的输入可以来自多个人体学接口设备(human interface device,简称为hid)。例如:键盘和鼠标、游戏手柄、其他专用游戏控制器(如:方向盘、鱼竿、跳舞毯、遥控器等)。部分人体学接口设备除了提供输入功能之外,还可以提供输出功能,例如:游戏手柄的力反馈与震动、控制器的音频输出等。
36.显示设备110可以例如平视显示器(hud)、触摸屏式的液晶显示器(lcd)和触摸显示器(也被称为“触摸屏”或“触摸显示屏”)。该液晶显示器可使得用户能够与终端设备的用户界面进行交互。在一些实施例中,上述终端设备具有图形用户界面(gui),用户可以通过触摸触敏表面上的手指接触和/或手势来与gui进行人机交互,此处的人机交互功能可选的包括如下交互:创建网页、绘图、文字处理、制作电子文档、游戏、视频会议、即时通信、收发电子邮件、通话界面、播放数字视频、播放数字音乐和/或网络浏览等、用于执行上述人机交互功能的可执行指令被配置/存储在一个或多个处理器可执行的计算机程序产品或可读存储介质中。
37.图2是根据本公开其中一实施例的视频播放方法的流程图,通过终端设备的屏幕提供一第一页面,第一页面包含有多个第一视频窗口,如图2所示,该方法包括如下步骤:
38.步骤s202:获取第一页面的布局参数,其中,布局参数用于确定第一视频窗口对应的展示需求。
39.上述的第一页面可以是终端设备的屏幕显示的视频播放页面,用户可以通过第一页面直接看到所需的视频内容,此处的终端设备可以是智能手机、平板电脑、掌上电脑、笔记本电脑、个人电脑、游戏机等设备,但不仅限于此。
40.上述的布局参数,可以是能够确定第一视频窗口在第一页面的展示数量的参数,
例如,可以是2*2,还可以是3*3等,但不仅限于此,具体的布局参数,可根据用户的实际展示需求自行设定。
41.上述的第一视频窗口可以是第一页面中展示给用户观看的视频窗口,可以是多个,具体的窗口数量在本实施例中不做具体限定,用户可根据实际展示需求进行设定。
42.上述的展示需求,可以是第一页面中的第一视频窗口的分辨率、窗口尺寸、显示位置等,但不仅限于此。
43.在一种可选的实施例中,首先可以获取第一页面的布局参数。其中,第一页面可以是终端设备的屏幕显示的视频播放页面,布局参数可以是能够确定第一页面中第一视频窗口的展示需求的参数,展示需求可以是第一视频窗口的分辨率、窗口尺寸、显示位置等,但不仅限于此。
44.步骤s204:基于布局参数,确定第一视频窗口对应的第一视频质量和第一显示位置,其中,第一显示位置用于表征第一视频窗口在第一页面上的位置。
45.上述的第一视频质量可以是基于布局参数确定到的第一视频窗口对应的视频质量。其中,第一视频质量包括如下至少之一:分辨率(p,pixel)和帧率(fps,frame per second),分辨率可以是1080p、720p、360p;帧率可以是60fps、30fps、24fps等,但不仅限于此。
46.上述的第一显示位置可以是能够表示第一视频窗口在第一页面上的位置。当有多个第一视频窗口时,每个第一视频窗口的第一显示位置都不同,例如,当某个第一视频窗口是播放优先级较高的视频窗口时,该第一视频窗口对应的第一显示位置可以是第一页面中的中心位置,当某个第一视频窗口是播放优先级较低的视频窗口时,该第一视频窗口对应的第一显示位置可以是第一页面中的边角位置,但不仅限于此。
47.在一种可选的实施例中,当获取到布局参数后,可以基于第一视频窗口的播放优先级确定和布局参数确定第一视频窗口对应的第一视频质量,其中,第一视频质量包括如下至少之一:分辨率和帧率,播放优先级可以是尺寸大的第一视频窗口的优先级高,尺寸小的第一视频窗口的优先级低。例如,当布局参数为2*2时,首先可以得到4个第一视频窗口,其次可以根据4个第一视频窗口的播放优先级,确定第一视频窗口的第一视频质量。当某个第一视频窗口的播放优先级高时,对应的第一视频质量就高,则对应的第一视频质量可以是1080p或者是60fps;当某个第一视频窗口的播放优先级较低时,对应的第一视频质量就低,则对应的第一视频质量可以是360p或者是30fps,但不仅限于此。
48.在另一种可选的实施例中,当获取到布局参数后,可以基于第一视频窗口的播放优先级和布局参数确定第一视频窗口对应的第一显示位置。例如,当某个第一视频的播放优先级较高时,该第一视频窗口对应的第一显示位置可以是第一页面的中心位置;当某个第一视频窗口的播放优先级较低时,该第一视频窗口对应的第一显示位置可以是第一页面的边角位置,但不仅限于此。
49.在又一种可选的实施例中,当获取到布局参数后,可以基于第一视频窗口的播放优先级和布局参数确定第一视频窗口对应的第一视频质量和第一显示位置。例如,当布局参数为2*2时,首先可以确定4个第一视频窗口,其次可以根据4个第一视频窗口的播放优先级,确定每个第一视频窗口的第一视频质量和第一显示位置,当某个第一视频窗口的播放优先级较高时,可以确定该视频窗口的第一视频质量为1080p或者60fps,以及该第一视频
窗口的第一显示位置可以是第一页面中的中心位置,但不仅限于此,具体的质量设置和位置设置可根据用户需求自行设定。
50.需要说明的是,在本公开实施例中,不仅限于根据第一视频窗口的播放优先级和布局参数确定第一视频质量和第一显示位置,还可以根据第一视频窗口的重要程度和布局参数确定第一视频窗口对应的第一视频质量和第一显示位置,在本实施例中,以第一视频窗口的播放优先级和布局参数为例进行说明。
51.步骤s206:从服务器获取第一视频质量对应的第一视频流,其中,第一视频流由服务器通过第一视频质量对应的压缩参数对原始视频流进行压缩得到。
52.上述的服务器,可以是任意一种能够存储其他客户端上传的原始视频流的服务器,例如,可以是云端服务器,但不仅限于此。
53.上述的压缩参数可以基于第一视频质量得到,此处的压缩参数可以是压缩率,视频质量越高,则压缩率越低;视频质量越低,则压缩率越高,从而在减小传输带宽的同时,减少信息丢失。具体的,还可以提前设置好不同第一视频质量与压缩参数的对应关系,从而可以基于该对应关系确定对应的压缩参数,但不仅限于此,还可以以其他方式实现。
54.上述的原始视频流可以是用户上传至服务器,且未进行压缩的视频流,例如可以是音乐视频(musicvideo,mv),也可是网络教学课程等,但不仅限于此。
55.在一种可选的实施例中,当确定第一视频窗口对应的第一视频质量后,首先可以根据第一视频质量确定第一视频质量对应的压缩参数,其次终端设备可以发送带有对应压缩参数的视频流获取请求给到服务器,服务器接收到终端设备的视频流获取请求后,按照对应的压缩参数对每个原始视频流进行压缩,最后,服务器将压缩得到的每个原始视频流对应的第一视频流发送给终端设备,终端设备接收服务器发送的压缩后的每个第一视频质量对应的第一视频流。
56.在另一种可选的实施例中,服务器可以提前按照不同的压缩参数对原始视频流进行压缩并存储在服务器中,即可以得到按照不同压缩参数压缩后的多个第一视频流;当确定第一视频窗口对应的第一视频质量后,首先可以根据第一视频质量确定第一视频质量对应的压缩参数,其次终端设备可以发送带有对应压缩参数的视频流获取请求给到服务器,服务器接收到终端设备的视频流获取请求后,可以在存储的多个第一视频流中找到与终端设备发送的压缩参数相同的第一视频流,并将与压缩参数对应的第一视频流发送给终端设备,终端设备接收服务器发送的压缩后的每个第一视频质量对应的第一视频流。
57.在另一种可选的实施例中,当确定第一视频窗口对应的第一视频质量后,终端设备可以发送包含有第一视频质量的视频流获取请求给到服务器,服务器接收到视频流获取请求后,首先可以根据第一视频质量得到对应的压缩参数,其次可以根据对应的压缩参数对原始视频流进行压缩,得到对应的第一视频流,然后服务器将原始视频流对应的第一视频流发送给终端设备,终端设备接收服务器发送的压缩后的每个第一视频质量对应的第一视频流。
58.在又一种可选的实施例中,服务器可以提前按照不同的压缩参数对原始视频流进行压缩并存储在服务器中,即可以得到按照不同压缩参数压缩后的多个第一视频流;当确定第一视频窗口对应的第一视频质量后,终端设备可以发送包含有第一视频质量的视频流获取请求给到服务器,服务器接收到视频流获取请求后,首先可以根据第一视频质量得到
对应的压缩参数,其次可以根据对应的压缩参数找到与终端设备发送的压缩参数相同的第一视频流,并将与压缩参数对应的第一视频流发送给终端设备,终端设备接收服务器发送的压缩后的每个第一视频质量对应的第一视频流。
59.步骤s208:在第一显示位置上对第一视频流进行播放。
60.上述的第一显示位置可以是第一视频窗口在第一页面中的具体位置,具体的,第一显示位置可以用相对于第一页面原点的坐标表示。其中,第一显示位置与布局参数和视频窗口的播放优先级对应。
61.在一种可选的实施例中,当通过服务器获取到第一视频流后,终端设备可以在第一页面中的第一位置上对第一视频流进行播放。
62.在另一种可选的实施例中,在获取到第一视频流后,终端设备可以根据第一视频窗口的播放优先级和布局参数得到第一视频窗口对应的第一显示位置,然后可以在第一显示位置上对第一视频流进行播放。
63.在另一种可选的实施例中,在获取到每个第一视频窗口对应的第一视频流后,终端设备通过从控件资源池获取到的每个第一视频窗口对应的至少一个或多个视频控件,对解码后的每个第一窗口对应的第一视频流进行播放,例如,可以通过一个可实现资源复用的列表控件(recycler view)来对第一视频流进行播放。
64.在本公开至少部分实施例中,采用获取第一页面的布局参数,其中,布局参数用于确定第一视频窗口对应的展示需求;基于布局参数,确定第一视频窗口对应的第一视频质量和第一显示位置,其中,第一显示位置用于表征第一视频窗口在第一页面上的位置;从服务器获取第一视频质量对应的第一视频流,其中,第一视频流由服务器通过第一视频质量对应的压缩参数对原始视频流进行压缩得到;在第一显示位置上对第一视频流进行播放的方式,容易注意到的是,第一视频流由服务器通过第一视频质量对应的压缩参数对原始视频流进行压缩得到的,达到了保证视频质量的同时,可以快速获取每个第一视频流的目的,从而实现了提高多个视频播放流畅度的技术效果,进而解决了现有技术中的多个视频的播放流畅度低的技术问题。
65.可选地,基于布局参数,确定第一视频窗口对应的第一视频质量和第一显示位置,包括:获取第一视频窗口的播放优先级;基于布局参数,确定第一显示位置;基于播放优先级和第一显示位置,确定第一视频质量,其中,第一视频质量包括如下至少之一:分辨率和帧率。
66.上述的播放优先级能够表示多个第一视频窗口在第一页面中的播放顺序。
67.在一种可选的实施例中,首先可以获取多个第一视频窗口在第一页面的播放优先级。
68.在另一种可选的实施例中,可以基于布局参数,确定多个第一视频窗口在第一页面的多个第一显示位置。例如,当布局参数为2*2时,可以基于布局参数确定多个第一视频窗口在第一页面中的多个第一显示位置。具体的,还可以根据第一视频窗口的播放优先级和布局参数确定第一显示位置。例如,当某个第一视频窗口的播放优先级较高时,对应的第一显示位置可以是第一页面中的中心位置等,但不仅限于此。
69.在另一种可选的实施例中,可以基于播放优先级和第一显示位置,确定第一视频质量,其中,第一视频质量包括如下至少之一:分辨率和帧率。
70.在另一种可选的实施例中,可以提前设置好播放优先级和第一显示位置与第一视频质量的对应关系,例如,可以是播放优先级越高,第一显示位置越靠近第一页面的中心位置,则第一视频质量越高。
71.在又一种可选的实施例中,当某个第一视频窗口的播放优先级较高时,对应的第一显示位置可以在第一页面的中心位置,则对应的第一视频质量可以为1080p或者60fps;当某个第一视频窗口的播放优先级较低时,对应的第一显示位置可以在第一页面的边角位置,则对应的第一视频质量可以是360p或者是30fps,但不仅限于此。
72.可选地,该方法还包括:获取终端设备的当前网络状态,以及终端设备中处理器的处理性能数据;基于当前网络状态和处理性能数据,对第一页面的布局参数进行调整,得到调整结果,其中,调整结果用于表征第一页面包含的至少一个第二视频窗口的布局确定第二视频窗口在第一页面的第二显示位置;在第二显示位置上对第二视频窗口对应的第二视频流进行播放。
73.上述的当前网络状态可以包括但不限于:当前网络状态良好,当前网络状态一般,当前网络状态较差等情况。
74.上述的处理性能数据可以包括但不限于:对原始视频流进行压缩的处理性能数据。
75.上述的第二视频窗口可以是基于调整后的布局参数得到的视频窗口。
76.上述的第二显示位置可以是基于调整后的布局参数以及第二视频窗口在第一页面中的播放优先级确定的第二视频窗口在第一页面中的显示位置,可以是多个,但不仅限于此。具体的,第二显示位置与布局参数对应。例如,当调整后的布局参数为2*2时,第二显示位置可以有多个,但不仅限于此。
77.上述的第二视频流可以是由服务器通过第二视频质量对应的压缩参数对原始视频流进行压缩得到的,其中,第二视频质量可以是基于调整后的布局参数确定到的第二视频窗口对应的视频质量,第二视频质量包括如下至少之一:分辨率和帧率。
78.在一种可选的实施例中,首先可以获取终端设备当前的网络状态以及处理器的性能处理数据,其次可以基于当前网络状态数据和性能处理数据,对第一页面的布局参数进行调整,得到调整结果,其中,调整结果用于表征第一页面包含的至少一个第二视频窗口的布局。
79.在另一种可选的实施例中,若终端设备的当前网络状态为网络状态良好,可以根据网络状态和处理性能数据,将第一页面的视频窗口布局由原来的2*2个调整为3*3个,若终端设备的当前网络状态为一般,则可以根据网络状态和处理性能数据,将第一页面的视频窗口布局参数由原来的3*3个调整为2*2个,但不仅限于此。其中,因为第二视频窗口只是通过对第一视频窗口的布局进行调整得到的,并没有改变第一视频窗口的播放内容,因此,第二视频窗口与第一视频窗口包含相同的视频播放内容。
80.在另一种可选的实施例中,在得到调整结果后,可以基于调整后的布局参数确定第二视频窗口在第一页面中的第二显示位置。例如,当调整后的布局参数为2*2时,可以得到第二视频窗口在第一页面中的多个第二显示位置。
81.在另一种可选的实施例中,当确定第二显示位置后,首先可以确定出第二视频窗口对应的第二视频质量,进而可以得到第二视频质量对应的压缩参数,其次终端设备可以
发送带有对应压缩参数的视频流获取请求给到服务器,服务器接收到终端设备的视频流获取请求后,按照对应的压缩参数对每个原始视频流进行压缩,最后,服务器将压缩得到的每个原始视频流对应的第二视频流发送给终端设备,终端设备接受服务器发送的压缩后的每个第二视频质量对应的第二视频流。
82.在另一种可选的实施例中,服务器可以提前按照不同的压缩参数对原始视频流进行压缩并存储在服务器中,即可以得到按照不同压缩参数压缩后的多个第二视频流;当确定第二显示位置后,首先可以确定出第二视频窗口对应的第二视频质量,进而可以得到第二视频质量对应的压缩参数,其次终端设备可以发送带有压缩参数的视频流获取请求给到服务器,服务器接收到终端设备的视频流获取请求后,首先可以根据压缩参数在存储的多个第二视频流中找到与终端设备发送的压缩参数相同的第二视频流,并将与压缩参数对应的第二视频流发送给终端设备,终端设备接收服务器发送的压缩后的每个第二视频质量对应的第二视频流。
83.在另一种可选的实施例中,当确定第二显示位置后,首先可以确定出第二视频窗口对应的第二视频质量,终端设备可以发送包含有第二视频质量的视频流获取请求给到服务器,服务器接收到视频流获取请求后,首先可以根据第二视频质量得到对应的压缩参数,其次可以根据对应的压缩参数对原始视频流进行压缩,得到对应的第二视频流,然后服务器将原始视频流对应的第二视频流发送给终端设备,终端设备接收服务器发送的压缩后的每个第二视频质量对应的第二视频流。
84.在另一种可选的实施例中,服务器可以提前按照不同的压缩参数对原始视频流进行压缩并存储在服务器中,即可以得到按照不同压缩参数压缩后的多个第二视频流;当确定第二显示位置后,首先可以确定出第二视频窗口对应的第二视频质量,终端设备可以发送包含有第二视频质量的视频流获取请求给到服务器,服务器接收到视频流获取请求后,首先可以根据第二视频质量得到对应的压缩参数,其次可以根据对应的压缩参数找到与终端设备发送的压缩参数相同的第二视频流,并将与压缩参数对应的第二视频流发送给终端设备,终端设备接收服务器发送的压缩后的每个第二视频质量对应的第二视频流。
85.在又一种可选的实施例中,终端设备接收到服务器发送的压缩后的第二视频流后,在第二显示位置上对第二视频窗口对应的第二视频流进行播放。
86.可选地,在基于当前网络状态和处理性能数据,对第一页面的布局参数进行调整,得到调整结果之后,该方法还包括:确定第一视频窗口中的目标视频窗口,其中,目标视频窗口的窗口状态从可见状态变为不可见状态;停止从服务器获取目标视频窗口对应的目标视频流。
87.上述的目标视频窗口可以是随着用户在第一页面中的第二操作,将从可见状态变为不可见状态的视频窗口。
88.需要说明的是,用户在第一页面中的第二操作,可以是点击操作,也可以是滑动操作,还可以是长按操作,但不仅限于此。在本实施例中,以滑动操作为例进行说明。
89.需要说明的是,用户在第一页面中的滑动操作,可以是用户使用鼠标对第一页面进行滑动操作,也可以是用户使用电容笔对第一页面进行滑动操作,还可以是用户使用手指对第一页面进行滑动操作,但不仅限于此。
90.在一种可选的实施例中,随着用户在第一页面中的滑动操作,第一视频窗口会从
可见状态变为不可见状态,即可以确定目标视频窗口,其中,目标视频窗口的状态将从可见状态变为不见状态。
91.在另一种可选的实施例中,当确定目标视频窗口后,因为目标视频窗口将从屏幕的可视区域内移动到可视区域外,所以终端设备可以停止从服务器获取目标视频窗口的对应的视频流,具体的,终端设备可以停止向服务器发送视频流获取请求。
92.在又一种可选的实施例中,响应于用户作用在第一页面中的滑动操作,终端设备控制多个第一视频窗口,从屏幕的可视区域内移动到屏幕的可视区域外,则可以确定从屏幕的可视区域内移动到屏幕的可视区域外的视频窗口为目标视频窗口。例如,如图3所示,图3是根据本公开其中一实施例的一种可选的视频播放方法的示意图,其中,最大的方框代表屏幕的可视区域,假设某个时刻用户可以在可视区域中看到视频3至视频6,此时,视频7和视频8并未显示在可视区域中,也即,视频7和视频8位于可视区域之外。响应于用户在该屏幕上执行的从右到左的滑动操作,可以控制整个第一页面向左滑动,使得第一页面中的部分视频窗口从可视区域内移动至可视区域外,也即,上述视频窗口不再显示在可视区域中,同时,使得第一页面中的另外部分视频窗口从可视区域外移动至可视区域内,也即,上述视频窗口显示在可视区域中。如图3所示,此时,可视区域可以显示视频3和视频4的部分,视频5和视频6,以及视频7和视频8的一部分。响应于用户在该屏幕上执行的从右到左的滑动操作,此时第一页面一并滑动,视频3和视频4慢慢移出可视区域,可以确定视频3和视频4为目标视频窗口。视频7和视频8慢慢移入可视区域,此时,视频3和视频4将从部分可见变为完全不可见,视频5和视频6将由完全可见变为部分可见,而视频7和视频8从不可见变为完全可见。
93.可选地,服务器中存储有按照不同压缩参数对同一个原始视频流进行压缩得到的视频流。
94.在一种可选的实施例中,当服务器按照终端设备发送的对应压缩参数对原始视频流进行压缩后,会存储压缩后得到的视频流,同时,服务器还可以存储按照不同压缩参数对同一个原始视频流压缩后得到的视频流。
95.在另一种可选的实施例中,服务器还可以提前按照不同的压缩参数对原始视频流进行压缩,并将压缩后的视频流存储在服务器中。
96.可选地,该方法还包括:响应于在第一页面中的第一操作,获取第一操作对应的第二页面,其中,第二页面中包含有多个第三视频窗口;将第一视频窗口与第三视频窗口进行比对,得到比对结果;基于比对结果确定是否从服务器获取第三视频窗口对应的第三视频流。
97.上述的第一操作可以是点击操作,也可以是滑动操作,还可以是长按操作,但不仅限于此。在本实施例中,以点击操作为例进行说明。
98.需要说明的是,用户在第一页面中的点击操作,可以是用户使用鼠标对第一页面进行点击操作,也可以是用户使用电容笔对第一页面进行点击操作,还可以是用户使用手指对第一页面进行点击操作,但不仅限于此。
99.上述的第二页面为视频缓存页面,用于缓存多个第三视频窗口,其中,随着用户的滑动操作,多个第三视频窗口会从屏幕的可视区域外移动到可视区域内。需要说明的是,可视区域可以是终端设备的屏幕中,用户能够直接看到所需内容的区域。
100.上述的第三视频窗口可以是随着用户的滑动操作,将要继续在第一页面进行播放的视频窗口,可以是多个,具体的视频窗口数量在本实施例中不做具体限定,用户可根据实际展示需求进行设定。
101.上述的比对结果,可以是至少一个第三视频窗口比至少一个第一视频窗口更早移动到可视区域外,也可以是至少一个第一视频窗口比至少一个第三视频窗口更早移动到可视区域外,但不仅限于此。
102.在一种可选的实施例中,响应于用户作用在第一页面中的点击操作(即第一操作),获取包含多个第三视频窗口的缓存页面(即第二页面),当用户对第一页面进行滑动操作(即第二操作)后,第二页面中的至少一个第三视频窗口会由屏幕的可视区域外移动到可视区域内,将至少一个第三视频窗口与至少一个第一视频窗口进行比对,若比对结果为至少一个第一窗口比至少一个第三视频窗口更早移动到可视区域外,则终端设备可以发送包含对应压缩参数的第三视频流获取请求给到服务器,服务器基于对应的压缩参数对至少一个第三视频窗口对应的原始视频流进行压缩,最后服务器将压缩得到的至少一个视频流发送给终端设备;若比对结果为至少一个第三视频窗口比至少一个第一视频窗口更早移动到可视区域外,则确定不从服务器获取每个第三视频窗口对应的视频流。
103.可选地,在第一显示位置上对第一视频流进行播放包括:从控件资源池中获取第一视频窗口对应的第一视频控件;在第一显示位置上利用第一视频控件对第一视频流进行播放。
104.上述的控件资源池,可以是任何一种用户提前设置好的,位于终端设备后台的,用于存储未使用的视频控件的资源池,在本实施例中,以对象池(video pool)为例进行说明,设置资源池可以提高终端设备对用户操作的响应速度。
105.上述的视频控件,可以是任何一个或多个用于播放视频的播放器控件,其中每个第一视频窗口都有对应的一个或多个的第一视频控件,例如可以是表面视图(surface view)控件、纹理视图(texture view)控件等,但不仅限于此,其中,surface view控件和texture view控件是进行视频播放的基本控件,可以通过项目绑定回调方法(on bind view holder())确定每个第一视频窗口对应的第一视频控件,即将每个第一视频窗口与对应的第一视频控件进行绑定。
106.在一种可选的实施例中,图4是根据本公开其中一实施例的一种可选的客户端订阅优化及资源复用示意图,如图4所示,当用户选择至少一个第一视频窗口后,终端设备控制至少一个第一视频窗口移动到屏幕的可视区域内,在至少一个第一视频窗口移动到屏幕的可视区域内后,通过on bind view holder()从控件资源池中获取至少一个第一视频窗口中每个第一视频窗口对应的视频控件,如图4所示,当前屏幕的可视区域中有4个第一视频窗口,则4个第一视频窗口对应的视频控件数量最少有4个,还可以有8个、12个等,又例如,当可视区域中显示有9个第一视频窗口时,则9个第一视频窗口对应的视频控件数量最少有9个,还可以有18个等,具体视频控件数量可根据用户需求自行设定,在本实施例中不做具体限定。
107.在另一种可选的实施例中,当用户选择至少一个第一视频窗口后,终端设备控制至少一个第一视频窗口移动到屏幕的可视区域内的同时,通过on bind view holder()从控件资源池中获取至少一个第一视频窗口中每个第一视频窗口对应的视频控件。在获取到
第一视频控件后,终端设备可以在第一显示位置上利用第一视频控件对第一视频流进行播放。
108.可选地,该方法还包括:响应在第一页面中的第二操作,获取第一视频窗口的窗口状态;响应于窗口状态从可见状态变为不可见状态,将第一视频窗口对应的第一视频控件存储至控件资源池。
109.上述的第二操作可以是用户在第一页面中的滑动操作。
110.在一种可选的实施例中,响应于用户在第一页面中对第一视频的滑动操作,可以获取到第一视频窗口的窗口状态。当第一视频窗口的窗口状态由可见状态变为不可见状态时,终端设备可以将第一视频窗口对应的第一视频控件存储至控件资源池。
111.可选地,从控件资源池中获取第一视频窗口对应的第一视频控件包括:确定控件资源池是否为空;响应于控件资源池不为空,则从控件资源池获取第一视频控件;响应于控件资源池为空,则创建第一视频控件。
112.在一种可选的实施例中,当要从控件资源池中获取至少一个第一视频窗口中每个第一视频窗口对应的第一视频控件时,首先,需要确认位于后台的控件资源池中是否存在能够对视频流进行播放的视频控件,若响应于确认结果为控件资源池不为空,则通过on bind view holder()从控件资源池中获取每个第一视频窗口对应的第一视频控件,若响应于确认结果为控件资源池为空,则创建每个第一视频窗口对应的第一视频控件,并存储在控件资源池中,以便后续可以直接从控件资源池中获取对应的第一视频控件,而不是每次都重新创建,本步骤可以减少视频控件的频繁创建与销毁,减少视频播放卡顿的问题。
113.可选地,该方法还包括:响应于第一页面被销毁,对控件资源池进行释放。
114.在一种可选的实施例中,当第一页面被用户关闭后,响应于关闭操作,终端设备对后台的控件资源池进行释放,例如,可以通过项目回收回调方法on recycler view holder()对每个第一视频窗口与对应的第一视频控件解除绑定,即对控件资源池进行释放。
115.通过本公开实施例的视频播放方法,可以实现:
116.1、终端根据展示需求,按需订阅响应质量的视频流,减少客户端资源消耗,提高视多路视频播放流畅性。
117.2、服务端根据终端的订阅情况,对视频进行压缩处理,无需处理终端整个页面的定制化问题。
118.3、终端对视频播放订阅管理,减少单位时间需要处理的数据量,构建资源复用机制,减少控件资源的频繁销毁与构建,增强视频瀑布流切换的流畅性。
119.下面结合图3至图5对本公开实施例做进一步的说明。
120.图5是根据本公开其中一实施例的一种可选的视频订阅处理方法流程图,如图5所示,该方法包括以下步骤:
121.步骤s501:客户端a上传视频流至服务端;
122.步骤s502:服务端的接收模块接收到视频流后,将视频流发送给服务端的订阅管理模块;
123.步骤s503:服务端的订阅管理模块基于步骤s505中的客户端b的订阅管理模块发起的订阅请求,将带有订阅请求的视频流发送给服务端的视频压缩模块;
124.步骤s504:服务端的视频压缩模块接收到视频流后,基于订阅请求对视频流进行
压缩,并将压缩后的视频流发送给客户端b的订阅管理模块;
125.步骤s505:客户端b的订阅管理模块对服务端的订阅管理模块发出订阅请求;
126.步骤s506:客户端b的用户滚动视频列表;
127.步骤s507:客户端b的列表项目由可见变为不可见,进入步骤s508,并同时向步骤s505中的客户端b的订阅管理模块获取指定质量的视频流,则客户端b的订阅管理模块将服务端的视频流压缩模块发送的压缩后的视频流返回给列表项目;
128.步骤s508:关联视频流到视频控件;
129.步骤s509:列表项目由可见变为不可见,发送释放视频控件的请求给到客户端b的视频控件资源池模块,以及发送取消订阅的请求给到客户端b的订阅管理模块,同时,随着客户端b的用户滚动视频列表,返回步骤s507;
130.步骤s510:客户端b的视频控件资源池模块向步骤s507发送获取视频控件的请求。
131.如图5所示,客户端a正在发送视频流,服务端收到视频流后,不直接进行处理。客户端b用户正在滚动视频列表,需要展示a用户视频流的item位置将由不可见变为可见,客户端b则发起指定视频质量订阅请求,服务端收到订阅请求后,按需对视频流进行压缩,并向客户端b进行推送视频流。客户端b收到推流后,从资源池中获取播放控件,并关联视频流,绑定到item开始展示。当item由可见变为不可见时则,取消订阅,回收视频控件到对象池。
132.其中,该视频处理方法包括服务端(server)视频压缩处理、客户机程序(client)本地订阅优化及资源复用以及资源释放方案实现。
133.server视频压缩处理包括以下内容:
134.服务器支持对上传的视频流进行多质量梯度处理,以便用户可以根据自身需求订阅对应质量的视频资源。当然,服务器可以根据具体视频的订阅情况只处理某一个或几个质量的视频。
135.当用户订阅情况发生变化后,推送的视频流质量也进行相应调整。
136.client本地订阅优化及资源复用包括以下内容:
137.client需要动态的对视频资源进行订阅和取消订阅,以及要实时调整已订阅视频质量。对于安卓(android)客户端来说,播放视频控件都是基于surface view和texture view的控件进行开发,视频对方控件对系统资源的消耗很大,为了减少构建及销毁对应用程序(application,app)的影响,本案使用video pool对象池对视频控件进行管理,以提高响应速度,主要包括以下步骤:
138.步骤s1,根据本地设备图形处理性能以当前网络状况,评估当前可以支持展示视频的最大量。动态调整页面布局参数,比如每页展示1个视频、2x2个视频,或者3x3宫格视频。
139.步骤s2,客户端维护一个订阅管理器,对订阅状态进行维护,切换到新页面后,与原有订阅关系进行比对计算,对未订阅的视频流进行订阅操作,对冗余视频流进行取消订阅操作。
140.步骤s3,每一个可见item需展示视频的位置,从视频播放控件资源池中,获取视频播放控件,缓存列表为空则新建一个,不为空则从缓存列表中取一个绑定到当前视图,并通过订阅管理器去订阅要展示的视频流
141.步骤s4,视频流回来后,通过解码操作,进行视频播放
142.步骤s5,用户进行页面操作,比如页面滚动或者退会桌面操作,则对不可见视频播放控件进行资源释放,将资源控件回收到视频控件资源池。
143.步骤s6,如果整个视频瀑布流页面销毁,则对资源池进行释放。
144.图4是根据本公开其中一实施例的一种可选的客户端订阅优化及资源服用示意图,如图4所示,黑色方框为客户端屏幕,video3、video4、video5、video6是当前屏幕展示的视频窗口,当前用户操作手势是由右向左滑动,可以预见的是继续滑动下去,video3、video4将由可见变为不可见,video7、video8将由不可见变为可见,因此需要回收video3、video4的视频播放控件,放到视频播放控件资源池中;对于video7、video8则需要从资源池中获取到视频播放控件,绑定到窗口,订阅该位置要展示的视频流,并设置视频播放控件。
145.资源释放方案实现包括以下内容:
146.资源回收方案涉到对资源回收时机的控制、资源与新界面的绑定时机以及缓冲控件大小设置。如果使用recycler view实现视频瀑布流,则可以通过on bind view holder()使视频控件与界面进行绑定,进行订阅计数;然后再通过on recycler view holder()解除绑定。因为列表控件具有初始缓存机制,所以需要对原始缓存进行调校,否则会影响交互流畅性,一般要求缓存至少两个页面,也即如果屏幕一页展示2*2个视频流,加上缓存的页面至少要维护12个视频画面,这个负荷也比较重,因此可以进一步剥离视频控件,在列表item不可见时,去回收video控件,在item可见时去绑定video控件。这样处理后,同样是2*2页面,只需维护6个视频画面。
147.图3是根据本公开其中一实施例的一种可选的资源释放方案示意图,如图3所示,为了保持列表控件的滚动流畅性,至少要缓存前面一页和后面一页,加上当前页,至少要加载3个页面。如果一个页面有4个视频小窗口,则3个页面共有12个视频小窗口,需要12个视频播放控件。利用视频控件对象池,直接根据小窗口可见性进行控件获取和回收,用户在某一时刻最多可见小窗口数量是6个。
148.本公开实施例的有益效果包括以下内容:
149.1、多分辨率压缩,服务端无需进行定制化多路合并处理,只需要对每一路视频进行压缩处理;
150.2、多分辨率多路视频动态订阅管理,开发过程中可以根据具体展示需求进行不同质量视频订阅,减少非必要高质量视频的订阅及处理。
151.3、视频播放控件池化管理,视频播放控件是很占用系统资源的控件,频繁的创建及销毁会导致系统不断的被垃圾回收机制干预,导致卡顿问题。
152.4、减轻了客户端的压力,减少了视频流量,节省了系统带宽。结合移动端实际,减少重量级资源的频繁创建和会,从而提升整体播放性能。
153.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本公开各个实施例所述的方法。
154.在本实施例中还提供了一种视频播放装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“单元”、“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
155.图6是根据本公开其中一实施例的一种视频播放装置的结构框图,通过终端设备的屏幕提供一第一页面,第一页面包含有多个第一视频窗口,如图6所示,该装置包括:布局参数获取模块60,用于获取第一页面的布局参数,其中,布局参数用于确定第一视频窗口对应的展示需求;第一确定模块62,用于基于布局参数,确定第一视频窗口对应的第一视频质量和第一显示位置,其中,第一显示位置用于表征第一视频窗口在第一页面上的位置;视频流获取模块64,用于从服务器获取第一视频质量对应的第一视频流,其中,第一视频流由服务器通过第一视频质量对应的压缩参数对原始视频流进行压缩得到;第一视频播放模块66,用于在第一显示位置上对第一视频流进行播放。
156.可选地,第一确定模块包括:获取单元,用于获取第一视频窗口的播放优先级;第一确定单元,用于基于布局参数,确定第一显示位置;第二确定单元,用于确定第一视频质量,其中,第一视频质量包括如下至少之一:分辨率和帧率。
157.可选地,该装置还包括:获取模块,用于获取终端设备的当前网络状态,以及终端设备中处理器的处理性能数据;调整模块,用于基于当前网络状态和处理性能数据,对第一页面的布局参数进行调整,得到调整结果,其中,调整结果用于表征第一页面包含的至少一个第二视频窗口的布局;第二确定模块,用于确定第二视频窗口在第一页面的第二显示位置;第二视频播放模块,用于在第二显示位置上对第二视频窗口对应的第二视频流进行播放。
158.可选地,调整模块包括:确定单元,用于确定第一视频窗口中的目标视频窗口,其中,目标视频窗口的窗口状态从可见状态变为不可见状态;终止单元,用于停止从服务器获取目标视频窗口对应的目标视频流。
159.可选地,视频流获取模块用于从服务器获取第一视频质量对应的第一视频流,其中,服务器中存储有按照不同压缩参数对同一个原始视频流进行压缩得到的视频流。
160.可选地,该装置还包括:页面获取模块,用于响应于在第一页面中的第一操作,获取第一操作对应的第二页面,其中,第二页面中包含有多个第三视频窗口;比对模块,用于将第一视频窗口与第三视频窗口进行比对,得到比对结果;第三确定模块,用于基于比对结果确定是否从服务器获取第三视频窗口对应的第三视频流。
161.可选地,第一视频播放模块包括:获取单元,用于从控件资源池中获取第一视频窗口对应的第一视频控件;播放单元,用于在第一显示位置上利用第一视频控件对第一视频流进行播放。
162.可选地,该装置还包括:窗口状态获取模块,用于响应在第一页面中的第二操作,获取第一视频窗口的窗口状态;存储模块,用于响应于窗口状态从可见状态变为不可见状态,将第一视频窗口对应的第一视频控件存储至控件资源池。
163.可选地,第一视频播放模块中的获取单元包括:确定子单元,用于确定控件资源池是否为空;获取子单元,用于响应于控件资源池不为空,则从控件资源池获取第一视频控件;创建子单元,用于响应于控件资源池为空,则创建第一视频控件。
164.可选地,该装置还包括:释放模块,用于响应于第一页面被销毁,对控件资源池进行释放。
165.需要说明的是,上述各个单元、模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述单元、模块均位于同一处理器中;或者,上述各个单元、模块以任意组合的形式分别位于不同的处理器中。
166.本公开的实施例还提供了一种非易失性存储介质,该非易失性存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
167.可选地,在本实施例中,上述非易失性存储介质可以包括但不限于:u盘、只读存储器(read-only memory,简称为rom)、随机存取存储器(random access memory,简称为ram)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。
168.可选地,在本实施例中,上述非易失性存储介质可以位于计算机网络中计算机终端群中的任意一个计算机终端中,或者位于终端设备群中的任意一个终端设备中。
169.可选地,在本实施例中,上述非易失性存储介质可以被设置为存储用于执行以下步骤的计算机程序:
170.s1,获取第一页面的布局参数,其中,布局参数用于确定第一视频窗口对应的展示需求;
171.s2,基于布局参数,确定第一视频窗口对应的第一视频质量和第一显示位置,其中,第一显示位置用于表征第一视频窗口在第一页面上的位置;
172.s3,从服务器获取第一视频质量对应的第一视频流,其中,第一视频流由服务器通过第一视频质量对应的压缩参数对原始视频流进行压缩得到;
173.s4,在第一显示位置上对第一视频流进行播放。
174.可选地,上述非易失性存储介质还被设置为存储用于执行以下步骤的程序代码:基于布局参数,确定第一视频窗口对应的第一视频质量和第一显示位置,包括:获取第一视频窗口的播放优先级;基于布局参数,确定第一显示位置;基于播放优先级和第一显示位置,确定第一视频质量,其中,第一视频质量包括如下至少之一:分辨率和帧率。
175.可选地,上述非易失性存储介质还被设置为存储用于执行以下步骤的程序代码:获取终端设备的当前网络状态,以及终端设备中处理器的处理性能数据;基于当前网络状态和处理性能数据,对第一页面的布局参数进行调整,得到调整结果,其中,调整结果用于表征第一页面包含的至少一个第二视频窗口的布局;确定第二视频窗口在第一页面的第二显示位置;在第二显示位置上对第二视频窗口对应的第二视频流进行播放。
176.可选地,上述非易失性存储介质还被设置为存储用于执行以下步骤的程序代码:确定第一视频窗口中的目标视频窗口,其中,目标视频窗口的窗口状态从可见状态变为不可见状态;停止从服务器获取目标视频窗口对应的目标视频流。
177.可选地,上述非易失性存储介质还被设置为存储用于执行以下步骤的程序代码:服务器中存储有按照不同压缩参数对同一个原始视频流进行压缩得到的视频流。
178.可选地,上述非易失性存储介质还被设置为存储用于执行以下步骤的程序代码:响应于在第一页面中的第一操作,获取第一操作对应的第二页面,其中,第二页面中包含有多个第三视频窗口;将第一视频窗口与第三视频窗口进行比对,得到比对结果;基于比对结果确定是否从服务器获取第三视频窗口对应的第三视频流。
179.可选地,上述非易失性存储介质还被设置为存储用于执行以下步骤的程序代码:从控件资源池中获取第一视频窗口对应的第一视频控件;在第一显示位置上利用第一视频控件对第一视频流进行播放。
180.可选地,上述非易失性存储介质还被设置为存储用于执行以下步骤的程序代码:响应在第一页面中的第二操作,获取第一视频窗口的窗口状态;响应于窗口状态从可见状态变为不可见状态,将第一视频窗口对应的第一视频控件存储至控件资源池。
181.可选地,上述非易失性存储介质还被设置为存储用于执行以下步骤的程序代码:确定控件资源池是否为空;响应于控件资源池不为空,则从控件资源池获取第一视频控件;响应于控件资源池为空,则创建第一视频控件。
182.可选地,上述非易失性存储介质还被设置为存储用于执行以下步骤的程序代码:响应于第一页面被销毁,对控件资源池进行释放。
183.在该实施例的非易失性存储介质中,提供了一种视频播放方法的技术方案。采用获取第一页面的布局参数,其中,布局参数用于确定第一视频窗口对应的展示需求;基于布局参数,确定第一视频窗口对应的第一视频质量和第一显示位置,其中,第一显示位置用于表征第一视频窗口在第一页面上的位置;从服务器获取第一视频质量对应的第一视频流,其中,第一视频流是由服务器通过第一视频质量对应的压缩参数对原始视频流进行压缩得到;在第一显示位置上对第一视频流进行播放的方式,容易注意到的是,第一视频流是由服务器通过第一视频质量对应的压缩参数对原始视频流进行压缩得到的,达到了保证视频质量的同时,可以快速获取每个第一视频流的目的,从而实现了提高多个视频播放流畅度的技术效果,进而解决了现有技术中的多个视频的播放流畅度低的技术问题。
184.通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个计算机可读存储介质(可以是cd-rom,u盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、终端装置、或者网络设备等)执行根据本公开实施方式的方法。
185.在本技术的示例性实施例中,计算机可读存储介质上存储有能够实现本实施例上述方法的程序产品。在一些可能的实施方式中,本公开实施例的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行本实施例上述“示例性方法”部分中描述的根据本公开各种示例性实施方式的步骤。
186.根据本公开的实施方式的用于实现上述方法的程序产品,其可以采用便携式紧凑盘只读存储器(cd-rom)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本公开实施例的程序产品不限于此,在本公开实施例中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
187.上述程序产品可以采用一个或多个计算机可读介质的任意组合。该计算机可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列举)包括:具有一个或多
个导线的电连接、便携式盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。
188.需要说明的是,计算机可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、rf等等,或者上述的任意合适的组合。
189.本公开的实施例还提供了一种电子装置,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
190.可选地,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
191.可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:
192.s1,获取第一页面的布局参数,其中,布局参数用于确定第一视频窗口对应的展示需求;
193.s2,基于布局参数,确定第一视频窗口对应的第一视频质量和第一显示位置,其中,第一显示位置用于表征第一视频窗口在第一页面上的位置;
194.s3,从服务器获取第一视频质量对应的第一视频流,其中,第一视频流由服务器通过第一视频质量对应的压缩参数对原始视频流进行压缩得到;
195.s4,在第一显示位置上对第一视频流进行播放。
196.可选地,上述处理器还可以被设置为通过计算机程序执行以下步骤:基于布局参数,确定第一视频窗口对应的第一视频质量和第一显示位置,包括:获取第一视频窗口的播放优先级;基于布局参数,确定第一显示位置;基于播放优先级和第一显示位置,确定第一视频质量,其中,第一视频质量包括如下至少之一:分辨率和帧率。
197.可选地,上述处理器还可以被设置为通过计算机程序执行以下步骤:获取终端设备的当前网络状态,以及终端设备中处理器的处理性能数据;基于当前网络状态和处理性能数据,对第一页面的布局参数进行调整,得到调整结果,其中,调整结果用于表征第一页面包含的至少一个第二视频窗口的布局;确定第二视频窗口在第一页面的第二显示位置;在第二显示位置上对第二视频窗口对应的第二视频流进行播放。
198.可选地,上述处理器还可以被设置为通过计算机程序执行以下步骤:确定第一视频窗口中的目标视频窗口,其中,目标视频窗口的窗口状态从可见状态变为不可见状态;停止从服务器获取目标视频窗口对应的目标视频流。
199.可选地,上述处理器还可以被设置为通过计算机程序执行以下步骤:服务器中存储有按照不同压缩参数对同一个原始视频流进行压缩得到的视频流。
200.可选地,上述处理器还可以被设置为通过计算机程序执行以下步骤:响应于在第一页面中的第一操作,获取第一操作对应的第二页面,其中,第二页面中包含有多个第三视频窗口;将第一视频窗口与第三视频窗口进行比对,得到比对结果;基于比对结果确定是否从服务器获取第三视频窗口对应的第三视频流。
201.可选地,上述处理器还可以被设置为通过计算机程序执行以下步骤:从控件资源池中获取第一视频窗口对应的第一视频控件;在第一显示位置上利用第一视频控件对第一视频流进行播放。
202.可选地,上述处理器还可以被设置为通过计算机程序执行以下步骤:响应在第一页面中的第二操作,获取第一视频窗口的窗口状态;响应于窗口状态从可见状态变为不可见状态,将第一视频窗口对应的第一视频控件存储至控件资源池。
203.可选地,上述处理器还可以被设置为通过计算机程序执行以下步骤:确定控件资源池是否为空;响应于控件资源池不为空,则从控件资源池获取第一视频控件;响应于控件资源池为空,则创建第一视频控件。
204.可选地,上述非易失性存储介质还被设置为存储用于执行以下步骤的程序代码:响应于第一页面被销毁,对控件资源池进行释放。
205.在该实施例的电子装置中,提供了一种视频播放方法的技术方案。采用获取第一页面的布局参数,其中,布局参数用于确定第一视频窗口对应的展示需求;基于布局参数,确定第一视频窗口对应的第一视频质量和第一显示位置,其中,第一显示位置用于表征第一视频窗口在第一页面上的位置;从服务器获取第一视频质量对应的第一视频流,其中,第一视频流是由服务器通过第一视频质量对应的压缩参数对原始视频流进行压缩得到;在第一显示位置上对第一视频流进行播放的方式,容易注意到的是,第一视频流是由服务器通过第一视频质量对应的压缩参数对原始视频流进行压缩得到的,达到了保证视频质量的同时,可以快速获取每个第一视频流的目的,从而实现了提高多个视频播放流畅度的技术效果,进而解决了现有技术中的多个视频的播放流畅度低的技术问题。
206.图7是根据本公开实施例的一种电子装置的示意图。如图7所示,电子装置700仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
207.如图7所示,电子装置700以通用计算设备的形式表现。电子装置700的组件可以包括但不限于:上述至少一个处理器710、上述至少一个存储器720、连接不同系统组件(包括存储器720和处理器710)的总线730和显示器740。
208.其中,上述存储器720存储有程序代码,所述程序代码可以被处理器710执行,使得处理器710执行本技术实施例的上述方法部分中描述的根据本公开各种示例性实施方式的步骤。
209.存储器720可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(ram)7201和/或高速缓存存储单元7202,还可以进一步包括只读存储单元(rom)7203,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。
210.在一些实例中,存储器720还可以包括具有一组(至少一个)程序模块7205的程序/实用工具7204,这样的程序模块7205包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。存储器720可进一步包括相对于处理器710远程设置的存储器,这些远程存储器可以通过网络连接至电子装置700。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
211.总线730可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理器710或者使用多种总线结构中的任意总线结构的局域总线。
212.显示器740可以例如触摸屏式的液晶显示器(lcd),该液晶显示器可使得用户能够
与电子装置700的用户界面进行交互。
213.可选地,电子装置700也可以与一个或多个外部设备800(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子装置700交互的设备通信,和/或与使得该电子装置700能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(i/o)接口750进行。并且,电子装置700还可以通过网络适配器760与一个或者多个网络(例如局域网(lan),广域网(wan)和/或公共网络,例如因特网)通信。如图7所示,网络适配器760通过总线730与电子装置700的其它模块通信。应当明白,尽管图7中未示出,可以结合电子装置700使用其它硬件和/或软件模块,可以包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、raid系统、磁带驱动器以及数据备份存储系统等。
214.上述电子装置700还可以包括:键盘、光标控制设备(如鼠标)、输入/输出接口(i/o接口)、网络接口、电源和/或相机。
215.本领域普通技术人员可以理解,图7所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,电子装置700还可包括比图7中所示更多或者更少的组件,或者具有与图1所示不同的配置。存储器720可用于存储计算机程序及对应的数据,如本公开实施例中的视频播放方法对应的计算机程序及对应的数据。处理器710通过运行存储在存储器720内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的视频播放方法。
216.上述本公开实施例序号仅仅为了描述,不代表实施例的优劣。
217.在本公开的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
218.在本技术所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
219.所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
220.另外,在本公开各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
221.所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本公开各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的
介质。
222.以上所述仅是本公开的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本公开原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本公开的保护范围。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献