CN115175002B - 一种视频播放方法及设备 - Google Patents
一种视频播放方法及设备 Download PDFInfo
- Publication number
- CN115175002B CN115175002B CN202210746742.3A CN202210746742A CN115175002B CN 115175002 B CN115175002 B CN 115175002B CN 202210746742 A CN202210746742 A CN 202210746742A CN 115175002 B CN115175002 B CN 115175002B
- Authority
- CN
- China
- Prior art keywords
- video
- window
- played
- plug
- browser
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 93
- 230000008569 process Effects 0.000 claims description 47
- 238000012545 processing Methods 0.000 claims description 23
- 238000009877 rendering Methods 0.000 claims description 18
- 230000033001 locomotion Effects 0.000 abstract description 4
- 230000006854 communication Effects 0.000 description 32
- 238000004891 communication Methods 0.000 description 32
- 239000010410 layer Substances 0.000 description 25
- 238000010586 diagram Methods 0.000 description 20
- 230000006870 function Effects 0.000 description 15
- 230000009471 action Effects 0.000 description 10
- 238000004590 computer program Methods 0.000 description 8
- 238000011161 development Methods 0.000 description 8
- 230000018109 developmental process Effects 0.000 description 8
- 230000003287 optical effect Effects 0.000 description 5
- VYZAMTAEIAYCRO-UHFFFAOYSA-N Chromium Chemical compound [Cr] VYZAMTAEIAYCRO-UHFFFAOYSA-N 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 230000003993 interaction Effects 0.000 description 4
- 230000011218 segmentation Effects 0.000 description 4
- 230000005236 sound signal Effects 0.000 description 4
- 230000004044 response Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 230000007175 bidirectional communication Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 239000012792 core layer Substances 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000004807 localization Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 229910044991 metal oxide Inorganic materials 0.000 description 1
- 150000004706 metal oxides Chemical class 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/47—End-user applications
- H04N21/478—Supplemental services, e.g. displaying phone caller identification, shopping application
- H04N21/4782—Web browsing, e.g. WebTV
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/4302—Content synchronisation processes, e.g. decoder synchronisation
- H04N21/4307—Synchronising the rendering of multiple content streams or additional data on devices, e.g. synchronisation of audio on a mobile phone with the video output on the TV screen
- H04N21/43072—Synchronising the rendering of multiple content streams or additional data on devices, e.g. synchronisation of audio on a mobile phone with the video output on the TV screen of multiple content streams on the same device
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/431—Generation of visual interfaces for content selection or interaction; Content or additional data rendering
- H04N21/4312—Generation of visual interfaces for content selection or interaction; Content or additional data rendering involving specific graphical features, e.g. screen layout, special fonts or colors, blinking icons, highlights or animations
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/47—End-user applications
- H04N21/485—End-user interface for client configuration
- H04N21/4858—End-user interface for client configuration for modifying screen layout parameters, e.g. fonts, size of the windows
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Human Computer Interaction (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
本申请公开了一种视频播放方法及设备,用以解决浏览器页面移动出现卡顿进而影响用户体验的问题。本申请提供的方法包括:响应于浏览器的标签页的启动操作;确定标签页的标题以及视频插件上至少一个待播放视频的视频地址;根据标签页的标题获取所述标签页的窗口句柄;获取视频插件的窗口句柄,并根据标签页的窗口句柄与视频插件的窗口句柄的父子窗口关系,将视频插件的窗口作为浏览器的标签页的窗口的子窗口嵌入到标签页的窗口;显示标签页,并在视频插件的窗口中通过视频插件播放至少一个待播放视频的视频地址对应的待播放视频。
Description
技术领域
本申请涉及互联网技术领域,尤其涉及一种视频播放方法及设备。
背景技术
在指挥调度行业中,用户为了操作简单不会单独安装客户端,通常都是采用浏览器进行指挥调度操作和视频观看。目前用户可以使用IE浏览器,通过使用Active X控件技术调用***接口来处理音视频,但是Active X控件技术仅有微软的浏览器才支持,不支持其它浏览器。现有技术中,可以通过插件将视频窗口贴到浏览器中,但是该播放插件是浮在浏览器上的,当用户拖动或者移动浏览器窗口时,因为需要实时计算播放器的大小,由于计算上的延迟导致插件不能与浏览器页面同步移动,使得浏览器页面移动出现卡顿,影响了用户的体验感。
发明内容
本申请公开了一种视频播放方法及设备,用以解决浏览器页面移动出现卡顿进而影响用户体验的问题。
第一方面,本申请实施例公开了一种视频播放方法,应用于终端设备,包括:
响应于浏览器的标签页的启动操作;确定所述标签页的标题以及视频插件上至少一个待播放视频的视频地址;所述视频插件是用于在所述浏览器的标签页上播放视频的插件;根据所述标签页的标题获取所述标签页的窗口句柄;获取所述视频插件的窗口句柄,并根据所述标签页的窗口句柄与所述视频插件的窗口句柄的父子窗口关系,将所述视频插件的窗口作为所述浏览器的标签页的窗口的子窗口嵌入到所述标签页的窗口;显示所述标签页,并在所述视频插件的窗口中通过所述视频插件播放所述至少一个待播放视频的视频地址对应的待播放视频。
基于上述方案,通过将视频插件窗口嵌入到浏览器标签页窗口中,浏览器标签页窗口的任何操作通过***层协议方法直接传给子窗口。当浏览器标签页拖动或者缩放时,视频插件窗口在浏览器标签页窗口中的位置是固定不变的,不需要在重新计算插件窗口的位置,视频插件可以同时获得父窗口的动作,这样在浏览器标签页拖动或者缩放时视频插件不需要再与浏览器标签页进行通信,视频插件窗口可以跟随浏览器标签页窗口的动作而同步动作,提升了用户体验感。
一种可能的实现方式中,根据所述标签页的标题获取所述标签页的窗口句柄,包括:根据所述终端设备中正在运行的所有进程确定所述浏览器的至少一个进程;确定所述浏览器的至少一个进程中所述浏览器标签页标题对应的浏览器标签页的进程;根据所述浏览器标签页的进程确定所述浏览器标签页的窗口句柄。
基于上述方案,可以确定终端设备中标签页标题对应的窗口句柄,以便与根据标签页的窗口句柄与视频插件窗口句柄绑定关系。
一种可能的实现方式中,通过所述视频插件播放所述至少一个待播放视频的视频地址对应的待播放视频,包括:所述视频插件通过所述播放地址获取已编码的待播放视频;所述视频插件通过解码设备对所述已编码的待播放视频进行硬解码得到解码后的所述待播放视频;所述视频插件播放解码后的所述待播放视频。
通过上述方案,通过硬解码的方式对已编码视频进行解码,可以实现多线程解码,提高了解码效率,可支持多路播放视频。
一种可能的实现方式中,在所述视频插件播放解码后的所述待播放视频的过程中,通过渲染窗口将所述视频插件播放的待播放视频渲染到所述标签页,所述渲染窗口的处理级别高于所述视频插件的窗口的处理级别。
一种可能的实现方式中,所述将所述视频插件的窗口作为所述浏览器的标签页的窗口的子窗口嵌入到所述标签页的窗口,包括:确定所述视频插件的窗口在浏览器的窗口中的位置;根据所述视频插件的窗口在浏览器的窗口中的位置将所述视频插件的窗口作为所述浏览器的标签页的窗口的子窗口嵌入到所述标签页的窗口。
基于上述方案,可以将视频插件嵌入到浏览器标签的指定位置,视频插件在浏览器标签页的相对位置是固定的。因此,在浏览器进行缩放和拖动时,不用再重新计算视频插件在浏览器标签页的位置,减少了计算量,提高了响应速度。
一种可能的实现方式中,所述至少一个待播放视频的视频地址为N个,N为大于1的整数;在所述视频插件的窗口中通过所述视频插件播放所述至少一个待播放视频的视频地址对应的待播放视频,包括:将所述视频插件的窗口分割为M个子窗口;M为大于或者等于N的正整数;在所述M个子窗口中通过所述视频插件播放N个视频地址分别对应的待播放视频。
一种可能的实现方式中,所述N为偶数时,所述M等于N,所述N个子窗口的大小相同;或者,所述N为奇数时,所述M等于N+1,所述N+1个子窗口的大小相同;或者,所述N为奇数时,所述M等于N,其中,M个子窗口中其中一个子窗口的尺寸是其它子窗口的尺寸的2倍。
基于上述方案,可以将一个视频插件的窗口分割为多个子窗口,每个子窗口支持播放一路待播放视频,满足多路播放的需求。
一种可能的实现方式中,所述至少一个待播放视频为N个,N为正整数,所述方法还包括:响应于在所述浏览器标签页新增S个待播放视频的操作,获取所述S个待播放视频对应的播放地址;当N+S大于M时,将所述视频插件的窗口分割为Q个子窗口,Q为大于或者等于N+S的正整数;所述N+S为新增所述S个待播放视频后所述视频插件所需播放的待播放视频的数量;在所述视频插件的窗口的Q个子窗口中通过所述视频插件播放所述N+S个待播放视频的视频地址对应的待播放视频;或者,当N+S小于或者等于M时,在所述M个子窗口中除所述N个子窗口以外的M-N个子窗口中通过所述视频插件播放所述S个待播放视频的视频地址对应的待播放视频。
基于上述方案,在通过视频插件播放地播放视频时,可以增加新的待播放视频,并根据新增后的播放视频数量对视频插件窗口重新分割。
第二方面,本申请实施例提供了一种终端设备,包括:
存储器,用于存储程序指令;
处理器,用于调用所述存储器中存储的程序指令,按照获得的程序执行如第一方面以及第一方面不同实现方式所述的方法;
显示屏,用于显示浏览器窗口。
第三方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,当所述计算机指令在计算机上运行时,使得所述计算机执行第一方面以及第一方面不同实现方式所述的方法。
第二方面至第三方面中任一种实现方式所带来的技术效果可参见第一方面以及第一方面不同实现方式所带来的技术效果,此处不再赘述。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种终端设备的硬件示意图;
图2为本申请实施例提供的一种终端设备的软件示意图;
图3为本申请实施例提供的一种视频播放方法的流程示意图;
图4为本申请实施例提供的窗口句柄的关系示意图;
图5为本申请实施例提供的一种浏览器与视频插件建立通信的流程图;
图6为本申请实施例提供的将视频插件嵌入浏览器的流程示意图;
图7为本申请实施例提供的一种浏览器标签页的窗口示意图;
图8为本申请实施例提供的一种视频插件的窗口示意图;
图9为本申请实施例提供的另一种视频插件的窗口示意图;
图10为本申请实施例提供的又一种视频插件的窗口示意图;
图11为本申请实施例提供的一种浏览器标签页窗口的显示示意图;
图12为本申请实施例提供的另一种浏览器标签页窗口的显示示意图;
图13为本申请实施例提供的一种浏览器标签页窗口的示意图;
图14为本申请实施例提供的新增待播放视频后的标签页窗口的示意图;
图15为本申请实施例提供的另一新增待播放视频后的标签页窗口的示意图;
图16为本申请实施例提供的另一种浏览器标签页窗口的示意图;
图17为本申请实施例提供的停止播放待播放视频后的标签页窗口的示意图;
图18为本申请实施例提供的另一停止播放待播放视频后的标签页窗口的示意图;
图19为本申请实施例提供的一种视频播放装置的示意图;
图20为本申请实施例提供的另一种视频播放装置的示意图。
具体实施方式
下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要说明的是,术语“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
视频指挥调度管理中多路播放视频的方案通常有如下几种:
1、客户端设备使用视频服务平台提供的视频播放服务时,通过在客户端设备安装桌面软件(EXE)的方式。客户端设备在需要视频服务平台提供视频播放服务时,可以使用与视频服务平台提供的***接口从视频服务平台获取播放的视频。该方案中可以支持多路播放,但是需要客户端安装对应的桌面软件。不同的视频服务平台可能对应不同的桌面软件。因此,在使用视频服务平台提供的视频播放服务时,需要安装各个视频服务平台分别对应的桌面软件,占用了客户端的内存。
2、视频服务平台采用纯web开发,为客户端设备提供web网址。客户端设备需要播放视频时使用浏览器的视频(video)标签从视频服务平台获取视频并进行渲染播放,解码依赖JavaScript纯应用算法,无法调用***接口,导致多路播放卡顿,延迟严重,随着播放时长的增加,延迟越明显。
3、视频服务平台采用纯web开发。客户端设备播放视频是通过调用视频插件。该视频插件贴到浏览器中,即播放插件浮在浏览器上层的。然而该方案,在拖动或者缩放网页时,需要实时计算视频插件窗口占用浏览器窗口的大小。由于计算的时延,导致视频插件窗口在缩放或者拖动过程中,不能完全贴附于浏览器窗口,用户体验较差。
本申请实施例提供了一种视频播放方法及设备,将视频插件窗口设置为浏览器标签页窗口的子窗口,将浏览器标签页窗口设置为父窗口,以实现将视频插件嵌入到浏览器标签页中。由于浏览器标签页窗口与插件窗口是父子窗口,即插件窗口在浏览器标签页中的位置是固定的。因此,当浏览器标签页窗口接收到指令进行拖动或者缩放时,不需要再重新计算拖动或者缩放后插件窗口在浏览器标签页中的位置,插件窗口可以与浏览器标签页窗口同步变化,提升了用户的体验感受。
此外,本申请实施例提供的视频播放方法中,视频解码使用的是机器的硬件解码,而不是网页video标签的软解码。视频渲染使用开发工具自身的渲染,从而支持多路视频播放,并且提高了解码效率。
本申请实施例提供的视频播放方法可以通过终端设备执行。下面对本申请实施例涉及的终端设备进行说明。应该理解的是,图1所示的终端设备100仅是一种示例,并且终端设备100可以具有比图1中所示的更多的或者更少的部件,可以组合两个或多个的部件,或者可以具有不同的部件配置。图1中所示出的各种部件可以在包括一个或多个信号处理和/或专用集成电路在内的硬件、软件、或硬件和软件的组合中实现。
图1中示例性示出了终端设备100的硬件配置框图。如图1所示,终端设备100包括:射频(radio frequency,RF)电路110、存储器120、显示单元130、摄像头140、传感器150、音频电路160、无线保真(Wireless Fidelity,Wi-Fi)模块170、处理器180、蓝牙模块181、以及电源190等部件。
RF电路110可用于在收发信息或通话过程中信号的接收和发送,可以接收基站的下行数据后交给处理器180处理;可以将上行数据发送给基站。通常,RF电路包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪声放大器、双工器等器件。
存储器120可用于存储软件程序及数据。处理器580通过运行存储在存储器120的软件程序或数据,从而执行终端设备100的各种功能以及数据处理。存储器120可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。存储器120存储有使得终端设备100能运行的操作***。本申请中存储器120可以存储操作***及各种应用程序,还可以存储执行本申请实施例所述方法的代码。
显示单元130可用于接收输入的数字或字符信息,产生与终端设备100的用户设置以及功能控制有关的信号输入,具体地,显示单元130可以包括设置在终端设备100正面的触摸屏131,可收集用户在其上或附近的触摸操作,例如点击按钮,拖动滚动框等。
显示单元130还可用于显示由用户输入的信息或提供给用户的信息以及终端设备100的各种菜单的图形用户界面(graphical user interface,GUI)。具体地,显示单元130可以包括设置在终端设备100正面的显示屏132。其中,显示屏132可以为彩色液晶屏,可以采用液晶显示器、发光二极管等形式来配置。
其中,触摸屏131可以覆盖在显示屏132之上,也可以将触摸屏131与显示屏132集成而实现终端设备100的输入和输出功能,集成后可以简称触摸显示屏。本申请中显示单元130可以用于显示本申请中的待播放视频。
摄像头140可用于捕获静态图像或视频。物体通过镜头生成光学图像投射到感光元件。感光元件可以是电荷耦合器件(charge coupled device,CCD)或互补金属氧化物半导体(complementary metal-oxide-semiconductor,CMOS)光电晶体管。感光元件把光信号转换成电信号,之后将电信号传递给处理器190转换成数字图像信号。
终端设备100还可以包括至少一种传感器150,比如加速度传感器151、距离传感器152、指纹传感器153、温度传感器154。终端设备100还可配置有陀螺仪、气压计、湿度计、温度计、红外线传感器、光传感器、运动传感器等其他传感器。
音频电路160、扬声器161、麦克风162可提供用户与终端设备100之间的音频接口。音频电路160可将接收到的音频数据转换后的电信号,传输到扬声器161,由扬声器161转换为声音信号输出。终端设备100还可配置音量按钮,用于调节声音信号的音量。另一方面,麦克风162将收集的声音信号转换为电信号,由音频电路160接收后转换为音频数据,再将音频数据输出至RF电路110以发送给比如另一终端,或者将音频数据输出至存储器120以便进一步处理。
Wi-Fi属于短距离无线传输技术,终端设备100可以通过Wi-Fi模块170帮助用户收发电子邮件、浏览网页和访问流媒体等,它为用户提供了无线的宽带互联网访问。
处理器180是终端设备100的控制中心,利用各种接口和线路连接整个终端的各个部分,通过运行或执行存储在存储器120内的软件程序,以及调用存储在存储器120内的数据,执行终端设备100的各种功能和处理数据。在一些实施例中,处理器180可包括一个或多个处理单元;处理器180还可以集成应用处理器和基带处理器,其中,应用处理器主要处理操作***、用户界面和应用程序等,基带处理器主要处理无线通信。可以理解的是,上述基带处理器也可以不集成到处理器180中。本申请中处理器180可以运行操作***、应用程序、用户界面显示及触控响应,以及本申请实施例所述的处理方法。另外,处理器180与显示单元130耦接。
蓝牙模块181,用于通过蓝牙协议来与其他具有蓝牙模块的蓝牙设备进行信息交互。例如,终端设备100可以通过蓝牙模块181与同样具备蓝牙模块的可穿戴电子设备(例如智能手表)建立蓝牙连接,从而进行数据交互。
终端设备100还包括给各个部件供电的电源190(比如电池)。电源可以通过电源管理***与处理器180逻辑相连,从而通过电源管理***实现管理充电、放电以及功耗等功能。终端设备100还可配置有电源按钮,用于终端的开机和关机,以及锁屏等功能。
图2是本申请实施例的终端设备100的软件结构框图。
分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,将Android***分为四层,从上至下分别为应用程序层(System Apps),应用程序框架层(Java API Framework),***运行库层(Native),以及内核层(Linux Kernel)。
应用程序层可以包括一系列应用程序包。
如图2所示,应用程序包可以包括相机,图库,日历,通话,地图,导航,WLAN,蓝牙,音乐,视频,短信息等应用程序。
应用程序框架层为应用程序层的应用程序提供应用编程接口(applicationprogramming interface,API)和编程框架。应用程序框架层包括一些预先定义的函数。
如图2所示,应用程序框架层可以包括窗口管理器,内容提供器,视图***,电话管理器,资源管理器,通知管理器等。
窗口管理器用于管理窗口程序。窗口管理器可以获取显示屏大小,判断是否有状态栏,锁定屏幕,截取屏幕等。
内容提供器用来存放和获取数据,并使这些数据可以被应用程序访问。所述数据可以包括视频,图像,音频,拨打和接听的电话,浏览历史和书签,电话簿等。
视图***包括可视控件,例如显示文字的控件,显示图片的控件等。视图***可用于构建应用程序。显示界面可以由一个或多个视图组成的。例如,包括短信通知图标的显示界面,可以包括显示文字的视图以及显示图片的视图。
电话管理器用于提供终端设备100的通信功能。例如通话状态的管理(包括接通,挂断等)。
资源管理器为应用程序提供各种资源,比如本地化字符串,图标,图片,布局文件,视频文件等等。
通知管理器使应用程序可以在状态栏中显示通知信息,可以用于传达告知类型的消息,可以短暂停留后自动消失,无需用户交互。比如通知管理器被用于告知下载完成,消息提醒等。通知管理器还可以是以图表或者滚动条文本形式出现在***顶部状态栏的通知,例如后台运行的应用程序的通知,还可以是以对话窗口形式出现在屏幕上的通知。例如在状态栏提示文本信息,发出提示音,移动终端振动,指示灯闪烁等。
***运行库层分为两部分:安卓运行时(Android Runtime)和***库。其中,Android Runtime包括核心库和虚拟机。Android Runtime负责安卓***的调度和管理。
核心库包含两部分:一部分是java语言需要调用的功能函数,另一部分是安卓的核心库。
应用程序层和应用程序框架层运行在虚拟机中。虚拟机将应用程序层和应用程序框架层的java文件执行为二进制文件。虚拟机用于执行对象生命周期的管理,堆栈管理,线程管理,安全和异常的管理,以及垃圾回收等功能。
***库可以包括多个功能模块。例如:表面管理器(Surface Manager),媒体库(Media Libraries),三维图形处理库(例如:OpenGL ES),2D图形引擎(例如:SGL)等。
表面管理器用于对显示子***进行管理,并且为多个应用程序提供了2D和3D图层的融合。
媒体库支持多种常用的音频,视频格式回放和录制,以及静态图像文件等。媒体库可以支持多种音视频编码格式,例如:MPEG4,H.264,MP3,AAC,AMR,JPG,PNG等。
内核层是硬件和软件之间的层。内核层提供核心***服务,如安全性、内存管理、进程管理、网络协议栈和驱动模型。内核层至少包含显示驱动,摄像头驱动,音频驱动,传感器驱动。
需要说明的是,不同终端设备的配置可能会有不同,因此上述图1-图2仅作为一种示例性的描述,本申请对此不作具体限定。
本申请实施例提供了一种视频播放方法,图3示例性地示出了视频播放方法的流程,该流程可通过视频播放装置执行,该装置可以位于如图1所示的终端设备100内,比如可以是处理器180,也可以是终端设备100。以终端设备为例,具体流程如下:
301,响应于浏览器的标签页的启动操作。
一些实施例中,用户可以通过终端设备启动浏览器。当用户通过在浏览器中输入网址时,终端设备会检测到用户的操作,进而对用户的操作作出响应。
302,确定标签页的标题以及视频插件上至少一个待播放视频的视频地址。
一些实施例中,视频插件是用于在浏览器的标签页上播放视频的插件。在通过视频插件播放待播放视频时,需要确定视频插件在浏览器的哪个标签页播放待播放视频。因此,在通过视频插件播放待播放视频时,需要确定浏览器标签页的标题。
一些实施例中,在确定标签页标题后,通过用户在浏览器中输入的至少一个待播放视频的视频地址,终端设备可以确定需通过浏览器播放的至少一个待播放视频的视频地址。
303,根据标签页的标题获取标签页的窗口句柄。
一些实施例中,可以根据终端设备中正在运行的所有进程确定浏览器的至少一个进程,并在浏览器的至少一个进程中确定浏览器标签页标题对应的浏览器标签页的进程。具体地,浏览器为谷歌浏览器,则过滤终端设备运行的所有进程中名为Chrome.exe的Chrome浏览器程序。进一步地,可以根据浏览器标签页的进程确定浏览器标签页的窗口句柄。例如,浏览器为谷歌浏览器,在谷歌浏览器的进程中包括多个浏览器标签页的进程,可以根据浏览器标签页的标题确定谷歌浏览器标签页对应的标签页的窗口句柄。
304,获取视频插件的窗口句柄,并根据标签页的窗口句柄与视频插件的窗口句柄的父子窗口关系,将视频插件的窗口作为浏览器的标签页的窗口的子窗口嵌入到标签页的窗口。
一些实施例中,获取视频插件的窗口句柄后,可以根据***层协议将标签页窗口句柄与浏览器标签页的窗口句柄绑定成父子关系。进一步地,根据两个窗口的父子关系,可以将视频插件的窗口作为浏览器标签页的窗口的子窗口嵌入到标签页窗口中。
一些实施例中,在将视频插件的窗口作为浏览器标签页的窗口的子窗口嵌入到标签页窗口中之前,可以先确定视频插件的窗口在浏览器标签页的位置。进一步地,可以根据视频插件的窗口在浏览器的窗口中的位置将视频插件的窗口作为浏览器的标签页的窗口的子窗口嵌入到标签页的窗口中。
305,显示标签页,并在视频插件的窗口中通过视频插件播放至少一个待播放视频的视频地址对应的待播放视频。
一些实施例中,在通过播放地址获取已编码的待播放视频后,可以通过解码设备对已编码的待播放视频进行硬解码得到解码后的待播放视频。进一步地,可以通过视频插件播放解码后的待播放视频。作为一种举例,可以通过***硬件对已编码的待播放视频进行解码。例如,可以通过GPU进行硬件解码。具体地,可以先获得视频插件所在的设备的***硬件属性,根据不同的显卡名称调用不同的接口以对已编码的视频进行解码。例如,可以通过FFMpeg接口调用GPU对已编码的视频进行解码,并对音视频进行同步。
一些实施例中,在视频插件播放解码后的待播放视频的过程中,可以通过渲染窗口将视频插件播放的待播放视频渲染到标签页。其中,渲染窗口的处理级别高于视频插件的窗口的处理级别。具体地,当FFMpeg接口调用CPU对及编码视频进行解码后,可以将解码后的视频帧和音频帧输出。进一步地,视频插件可以调用接口对解码后的视频进行渲染。具体地,视频插件调用的接口可以通过视频插件的开发平台确定。不同的开发平台内置的函数和使用方式不同。因此,导致视频插件的调用方式以及渲染方式不同。作为一种举例,视频插件接收到视频帧数据后,可以调用开放图形库(Open Graphics Library,OpenGL)接口对视频帧数据进行视频帧渲染(图像绘制)。进一步地,可以将渲染后的视频帧发送至视频插件的窗口,在视频插件的窗口通过视频插件进行播放。一些场景中,浏览器网页有不同的渲染机制,网页的显示需要不断的刷新,而且刷新是基于D3D渲染窗口的。因此,视频插件的窗口通过视频插件播放经OpenGL接口渲染后的视频帧时,还需要通过渲染窗口将视频插件的窗口显示视频帧渲染到标签页中。浏览器是基于D3D窗口渲染的,当视频插件窗口在浏览器所有子窗口的最上层时,视频插件的窗口覆盖了D3D窗口。因此,视频插件窗口会被浏览器隐藏,不会被D3D渲染。此时,会出现视频插件的窗口在浏览器标签页中一闪而过,不能完整播放的情况。基于此,可以将渲染窗口(D3D窗口)的处理级别设置为高于视频插件的窗口的处理级别,以使D3D窗口可以渲染视频插件窗口播放的视频。如图4所示,000671072"本地插件测试-Google Chrome"Chrome_WidgerWin_1为浏览器标签页的窗口的句柄,00025101C""Intermediate D3D Window为D3D渲染窗口的窗口句柄,00071052"SoftSZVideoPlugin"Qt5QWindowlcon为视频插件的窗口的句柄。D3D窗口与视频插件窗口均为浏览器标签页的子窗口,但是D3D窗口的处理级别要高于视频插件窗口的处理级别。
一些实施例中,当检测到用户启动浏览器时,浏览器与视频插件会建立通信连接,以使浏览器与视频插件可以通过建立的通信通道交互指令。如图5所示,在浏览器启动后,浏览器可以作为客户端,视频插件可以作为服务端,通过建立客户端与服务端的通信连接,以使客户端与服务端能够互通指令。具体流程如下:
501,当启动浏览器标签页时,启动视频插件。
一些实施例中,当终端设备检测到用户通过在浏览器中启动标签页时,会启动视频插件。一些场景中,在启动视频插件之前,先检测视频插件是否安装。如果没有安装,则提示用户安装视频插件,再启动插件。如果视频插件为已安装状态,则直接启动视频插件。
一些实施例中,当启动视频插件后,浏览器作为客户端启动通信连接。例如,浏览器启动Websocket。Websocket是HTML5新增的协议,是在浏览器和服务器之间建立一个不受限的双向通信的通道。比如说,服务端可以在任意时刻发送消息给浏览器。当客户端启动Websocket后,会循环检测客户端是否连接上服务端,直到连接上服务端后不再进行检测。
502,初始化视频插件,作为服务端启动通信连接。
一些实施例中,在启动视频插件后,可以初始化视频插件。进一步地,可以将视频插件作为服务端启动Websocket,以等待客户端浏览器的连接。双方连接之后,可以通过Websocket进行指令交互。
一些实施例中,当浏览器与视频插件之间的通信连接成功后,服务端(即视频插件)会生成唯一的一个标记ID,并传输给客户端(浏览器)。进一步地,每次客户端与服务端连接时,都会携带此标记,以便于验证浏览器请求是否合法以及唯一性。当浏览器升级、重新安装或者在打开一个浏览器时再启动一个浏览器后,在启动浏览器连接服务端时,此时升级后、重新安装后或者再启动的浏览器是不会带有原浏览器的标记ID的,升级后、重新安装后或者再启动的浏览器可以作为一个新的浏览器。当新的浏览器启动通信连接后,服务端会检测是否生成过该浏览器的标记ID。如果没有,则生成唯一的标记ID并传输给客户端。如果之间生成过标记ID,则关闭与原浏览器的通信连接,再生成新的标记ID并返给新的浏览器,此后新的浏览器在与视频插件进行通信时,会携带新的标记ID。
503,将视频插件嵌入到浏览器中,使浏览器通过向视频插件发送通信指令以控制视频插件按照通信指令执行动作。
一些实施例中,浏览器可以通过发送通信指令给视频插件,以控制视频插件按照通信指令执行通信指令指示的动作。具体地,浏览器可以向视频插件发送播放视频、录像、截图、停止播放视频等指令。当视频插件接收到通信指令后,可以根据通信指令进行处理,执行后视频插件会向浏览器发送一个执行结果,以通知浏览器执行了通信指令指示的动作。
一些实施例中,当通信指令用于指示视频插件播放视频时,通信指令中还可以包括待播放视频对应的播放地址。播放插件可以根据播放地址获取待播放视频,并在视频插件窗口通过视频插件播放待播放视频。一些场景中,当通信指令用于指示视频插件停止播放视频时,通信指令中还可以包括待停止播放视频对应的播放地址。播放插件可以根据播待停止播放视频对应的播放地址停止在视频插件窗口通过视频插件停止播放待停止播放视频。另一些场景中,通信指令可以包括录像指令或者截屏指令等,以控制视频插件进行录像或者截屏等操作。
下面对如何将视频插件嵌入到浏览器进行介绍,如图6所示,具体流程如下:
S11,获取终端设备中所有正在运行的进程。
S12,根据终端设备中正在运行的所有进程确定浏览器的至少一个进程。
作为一种举例,当浏览器为谷歌浏览器时,可以在正在运行的进程中确定名称为chrome.exe的至少一个浏览器程序。
S13,确定浏览器的至少一个进程中浏览器标签页标题对应的浏览器标签页的进程。
一些实施例中,浏览器标签页进程的名称中包括了浏览器标签页的标题,因此可以根据浏览页标签页的标题确定浏览器标签页标题对应的进程。
S14,根据浏览器标签页的进程确定浏览器标签页的窗口句柄。
一些实施例中,浏览器向视频插件发送通信指令时,通信指令中包括标记ID、浏览器标签页标题以及视频插件窗口在浏览器标签页的位置。视频插件接收到浏览器发送的通信指令后,可以通过浏览器标签页标题获取浏览器标签页的窗口句柄。
一些实施例中,在确定浏览器标签页的窗口句柄后,可以将签页的窗口句柄转化为与视频插件相同的句柄格式。视频插件可以通过不同的开发平台进行开发,当视频插件是通过QT开发平台开发的,则需要采用qt内置方法,将标签页的窗口句柄转换为qt所需的句柄格式,如果是MFC开发则转换为MFC所需的句柄。
S15,获取插件窗口的句柄,并映射句柄父子关系,以实现将视频插件嵌入到浏览器中。
一些实施例中,可以获取视频插件窗口句柄,并根据***层协议将两个窗口句柄绑定成父子关系,以实现将视频插件嵌入到浏览器中。具体地,可以将标签页窗口句柄设置为父,视频插件窗口句柄设置为子,并根据通信指令中视频插件窗口在浏览器标签页的位置将视频插件窗口显示在标签页窗口中的指定位置。作为一种举例,如图7所示,视频插件窗口为浏览器标签页窗口的子窗口。
通过上述方法,父窗口的任何操作通过***层协议方法直接传给子窗口。此时,当浏览器标签页拖动或者缩放时,视频插件可以同时获得父窗口的动作,这样视频插件不需要视频插件再与浏览器标签页进行通信,视频插件窗口可以跟随浏览器标签页窗口的动作而同步动作。
一些实施例中,由于在对视频解码时采用的是硬件解码方式,因此视频插件支持多路视频播放。当待播放视频的视频地址为N个时,N为大于1的整数。视频插件窗口的分割可以通过以下方式实现:将视频插件的窗口分割为M个子窗口,M为大于或者等于N的正整数。在M个子窗口中通过视频插件播放N个视频地址分别对应的待播放视频。一些场景中,当N为偶数时,M等于N,N个子窗口的大小相同。例如,当播放地址为4个播放地址时,可以将视频插件的窗口分割为4个子窗口,如图8所示。
一些场景中,当N为奇数时,M等于N+1,N+1个子窗口的大小相同。例如,当播放地址为5个播放地址时,可以将视频插件的窗口分割为6个子窗口,如图9所示。
另一些场景中,当N为奇数时,M等于N,其中,M个子窗口中其中一个子窗口的尺寸是其它子窗口的尺寸的2倍。当播放地址为5个播放地址时,可以将视频插件的窗口分割为5个子窗口,一个子窗口的尺寸是其它4个子窗口的尺寸的2倍。例如,最后一个子窗口的尺寸可以是前4个子窗口尺寸的2倍,如图10所示。一种可能的实现方式中,在最后一个子窗口中播放待播放视频时,可以在窗口的中间部分播放待播放视频。
另一些实施例中,视频插件窗口的分割还可以通过以下方式实现:视频插件窗口设置了默认窗口宫格数,根据浏览器发送的视频地址数量限制生成播放窗口宫格数。作为一种举例,视频插件窗口的默认窗口宫格数可以为1、2、4、9、16等。当待播放视频的视频地址为S个时,S为大于1的整数。视频插件窗口划分为大于且最接近于待播放视频数量的默认窗口宫格数的窗口。例如,当S等于7时,可以将视频插件窗口分割为窗口宫格数为9的窗口。一些场景中,视频插件窗口显示9个子窗口,前7个子窗口用于播放待播放视频,后两个子窗口不播放视频,如图11所示。另一些场景中,视频插件窗口划分为窗口宫格数为9的窗口后,视频插件窗口显示用于播放待播放视频的7个子窗口,如图12所示。
一些实施例中,在视频插件窗口中通过视频插件播放N个待播放视频时,响应于在浏览器标签页新增的S个待播放视频的操作,确定通过视频插件窗口播放的S个待播放视频对应的播放地址。进一步地,可以确定新增S个待播放视频后视频插件所需播放的待播放视频的数量为N+S。作为一种举例,视频插件窗口中通过Q个子窗口播放N个待播放视频时,新增S个待播放视频后,需通过视频插件播放的子窗口数量至少应为N+S个子窗口。一些场景中,当N+S大于M时,可以将视频插件的窗口分割为Q个子窗口,Q为大于或者等于N+S的正整数,并在Q个子窗口中通过视频插件播放N+S个待播放视频的视频地址对应的待播放视频。另一些场景中,当N+S小于或者等于M时,可以在M个子窗口中除N个子窗口以外的M-N个子窗口中播放S个待播放视频的视频地址对应的待播放视频。
具体地,浏览器标签页中包括多个视频对应的控件,用户可以通过点击控件控制视频插件播放控件对应的待播放视频。当终端设备检测到用户点击视频对应的控件时,浏览器会将该视频控件对应的待播放视频的视频地址通过websocket通信指令发送至视频插件。视频插件在接收到该通信指令后,可以根据视频插件播放的视频数量,确定是否在视频插件的窗口中增加子窗口,并通过视频插件在视频插件窗口的子窗口中播放通信指令中的视频地址对应的视频。例如,当前视频插件的窗口通过视频插件播放5个待播放视频、一些场景中,在检测到用户通过点击浏览器标签页中的1个视频控件新增1个待播放视频后,响应于浏览器标签页新增1个待播放视频的操作后,确定新增1个待播放视频后视频插件所需播放的待播放视频的数量为6个。进一步地,可以在最后一个子窗口通过视频插件播放新增的1个待播放视频。另一些场景中,当用户新增2个待播放视频时,确定新增2个待播放视频后视频插件所需播放的待播放视频的数量为7个,大于当前视频插件的窗口的子窗口数量。此时,可以对视频插件的窗口重新分割,进而在分割后的子窗口中除5个待播放视频对应的子窗口以外的子窗口中播放新增的2个待播放视频。
一些实施例中,当视频插件窗口按照默认窗口宫格数进行窗口分割时,在播放过程中检测到用户点击新的视频对应的控件后,可以根据用户点击的新的视频控件的数量确定通过视频插件播放的子窗口数量。进一步地,可以通过子窗口数量重新调整窗口宫格数。一些场景中,视频插件中原播放视频数量为8路,子窗口数量为8个,如图13所示。当检测到用户点击一个视频控件新增一个待播放视频后,播放视频数量变为9路。新增后的播放视频数量小于或者等于当前宫格数,则在最后添加一个子窗口显示新增的播放视频,如图14所示。另一些场景中,若原来播放视频数量为8路,新增两路播放视频后,播放视频数量变为10路。当新增后的视频播放数量大于当前窗口宫格数时,则按照视频插件窗口的分割方法重新调整窗口宫格数。具体地,可以选择将视频插件的窗口分割为窗口宫格数为16的窗口,然后显示前10个子窗口并播放待播放视频,如图15所示。
一些实施例中,当视频插件窗口按照默认窗口宫格数进行窗口分割时,当播放过程中停止播放待播放视频时,可以根据停止播放待播放视频后的播放视频数量重新调整窗口宫格数。例如,若原来播放视频数量为6路,如图16所示。当停止播放一路待播放视频后,播放视频数量变为5路。停止播放一路待播放视频后的播放视频数量小于或者等于当前宫格数,则关闭该待播放视频对应的子窗口,并将后面的子窗口往前迁移,如图17所示。若原来播放视频数量为6路,停止播放两路待播放视频后,播放视频数量变为4路。当当前默认窗口宫格数不是大于且最接近停止播放后的视频播放数量时,确定最新的默认窗口宫格数为4,并对视频插件窗口重新分割,通过重新划分后的视频插件窗口播放待播放视频,如图18所示。
基于相同的技术构思,图19示例性地示出了视频播放装置1900。该装置1900可以执行上述视频播放方法中的任一步骤,为了避免重复,此处不再详述。装置1900包括处理模块1901和显示模块1902。
处理模块1901,用于响应于浏览器的标签页的启动操作;确定所述标签页的标题以及视频插件上至少一个待播放视频的视频地址;所述视频插件是用于在所述浏览器的标签页上播放视频的插件;根据所述标签页的标题获取所述标签页的窗口句柄;获取所述视频插件的窗口句柄,并根据所述标签页的窗口句柄与所述视频插件的窗口句柄的父子窗口关系,将所述视频插件的窗口作为所述浏览器的标签页的窗口的子窗口嵌入到所述标签页的窗口;
显示模块1902,用于显示所述标签页,并在所述视频插件的窗口中通过所述视频插件播放所述至少一个待播放视频的视频地址对应的待播放视频。
一些实施例中,处理模块1901,在根据所述标签页的标题获取所述标签页的窗口句柄时,具体用于:根据所述终端设备中正在运行的所有进程确定所述浏览器的至少一个进程;确定所述浏览器的至少一个进程中所述浏览器标签页标题对应的浏览器标签页的进程;根据所述浏览器标签页的进程确定所述浏览器标签页的窗口句柄。
一些实施例中,显示模块1902,在通过所述视频插件播放所述至少一个待播放视频的视频地址对应的待播放视频时,具体用于:所述视频插件通过所述播放地址获取已编码的待播放视频;所述视频插件通过解码设备对所述已编码的待播放视频进行硬解码得到解码后的所述待播放视频;所述视频插件播放解码后的所述待播放视频。
一些实施例中,所述处理模块1901还用于:通过渲染窗口渲染所述解码后的所述待播放视频,所述渲染窗口的处理级别高于所述视频插件的窗口的处理级别。
一些实施例中,处理模块1901,在将所述视频插件的窗口作为所述浏览器的标签页的窗口的子窗口嵌入到所述标签页的窗口时,具体用于:确定所述视频插件的窗口在浏览器的窗口中的位置;根据所述视频插件的窗口在浏览器的窗口中的位置将所述视频插件的窗口作为所述浏览器的标签页的窗口的子窗口嵌入到所述标签页的窗口。
一些实施例中,所述至少一个待播放视频的视频地址为N个,N为大于1的整数;显示模块1902,在所述视频插件的窗口中通过所述视频插件播放所述至少一个待播放视频的视频地址对应的待播放视频时,具体用于:将所述视频插件的窗口分割为M个子窗口;M为大于或者等于N的正整数;在所述M个子窗口中通过所述视频插件播放N个视频地址分别对应的待播放视频。
一些实施例中,所述N为偶数时,所述M等于N,所述N个子窗口的大小相同;或者,所述N为奇数时,所述M等于N+1,所述N+1个子窗口的大小相同;或者,所述N为奇数时,所述M等于N,其中,M个子窗口中其中一个子窗口的尺寸是其它子窗口的尺寸的2倍。
一些实施例中,所述至少一个待播放视频为N个,N为正整数,所述处理模块1901还用于:响应于在所述浏览器标签页新增S个待播放视频的操作,获取所述S个待播放视频对应的播放地址;当N+S大于M时,将所述视频插件的窗口分割为Q个子窗口,Q为大于或者等于N+S的正整数;所述N+S为新增所述S个待播放视频后所述视频插件所需播放的待播放视频的数量;
所述显示模块1902还用于:在所述视频插件的窗口的Q个子窗口中通过所述视频插件播放所述N+S个待播放视频的视频地址对应的待播放视频;或者,当N+S小于或者等于M时,在所述M个子窗口中除所述N个子窗口以外的M-N个子窗口中通过所述视频插件播放所述S个待播放视频的视频地址对应的待播放视频。
基于相同的技术构思,本申请实施例提供一种视频播放装置2000,该装置2000可以实现前文论述的视频播放方法的任一步骤,请参照图20。该装置包括存储器2001和处理器2002。
所述存储器2001,用于存储程序指令;
所述处理器2002,用于调用所述存储器中存储的程序指令,按照获得的程序执行上述视频播放方法。
显示屏2003,用于显示浏览器窗口。
在本申请实施例中,处理器2002可以是通用处理器、数字信号处理器、专用集成电路、现场可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
存储器2001作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块。存储器2001可以包括至少一种类型的存储介质,例如可以包括闪存、硬盘、多媒体卡、卡型存储器、随机访问存储器(Random AccessMemory,RAM)、静态随机访问存储器(Static Random Access Memory,SRAM)、可编程只读存储器(Programmable Read Only Memory,PROM)、只读存储器(Read Only Memory,ROM)、带电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,EEPROM)、磁性存储器、磁盘、光盘等等。存储器2001是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。本申请实施例中的存储器2001还可以是电路或者其它任意能够实现存储功能的装置,用于存储程序指令和/或数据。
基于相同的技术构思,本申请实施例提供一种计算机可读存储介质,包括:计算机程序代码,当计算机程序代码在计算机上运行时,使得计算机执行如前文论述的视频播放方法。由于上述计算机可读存储介质解决问题的原理与视频播放方法相似,因此上述计算机可读存储介质的实施可以参见方法的实施,重复之处不再赘述。
本领域内的技术人员应明白,本申请的实施例可提供为方法、***、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (8)
1.一种视频播放方法,其特征在于,应用于终端设备,包括:
响应于浏览器的标签页的启动操作;
确定所述标签页的标题以及视频插件上至少一个待播放视频的视频地址;所述视频插件是用于在所述浏览器的标签页上播放视频的插件;
根据所述标签页的标题获取所述标签页的窗口句柄;
获取所述视频插件的窗口句柄,并根据所述标签页的窗口句柄与所述视频插件的窗口句柄的父子窗口关系,将所述视频插件的窗口作为所述浏览器的标签页的窗口的子窗口嵌入到所述标签页的窗口;
显示所述标签页,并在所述视频插件的窗口中通过所述视频插件播放所述至少一个待播放视频的视频地址对应的待播放视频;
根据所述标签页的标题获取所述标签页的窗口句柄,包括:
根据所述终端设备中正在运行的所有进程确定所述浏览器的至少一个进程;
确定所述浏览器的至少一个进程中所述浏览器标签页标题对应的浏览器标签页的进程;
根据所述浏览器标签页的进程确定所述浏览器标签页的窗口句柄;
所述至少一个待播放视频的视频地址为N个,N为大于1的整数;
在所述视频插件的窗口中通过所述视频插件播放所述至少一个待播放视频的视频地址对应的待播放视频,包括:
将所述视频插件的窗口分割为M个子窗口;M为大于或者等于N的正整数;
在所述M个子窗口中通过所述视频插件播放N个视频地址分别对应的待播放视频。
2.如权利要求1所述的方法,其特征在于,通过所述视频插件播放所述至少一个待播放视频的视频地址对应的待播放视频,包括:
所述视频插件通过所述视频地址获取已编码的待播放视频;
所述视频插件通过解码设备对所述已编码的待播放视频进行硬解码得到解码后的所述待播放视频;
所述视频插件播放解码后的所述待播放视频。
3.如权利要求2所述的方法,其特征在于,所述方法还包括:
在所述视频插件播放解码后的所述待播放视频的过程中,通过渲染窗口将所述视频插件播放的待播放视频渲染到所述标签页,所述渲染窗口的处理级别高于所述视频插件的窗口的处理级别。
4.如权利要求1所述的方法,其特征在于,所述将所述视频插件的窗口作为所述浏览器的标签页的窗口的子窗口嵌入到所述标签页的窗口,包括:
确定所述视频插件的窗口在浏览器的窗口中的位置;
根据所述视频插件的窗口在浏览器的窗口中的位置将所述视频插件的窗口作为所述浏览器的标签页的窗口的子窗口嵌入到所述标签页的窗口。
5.如权利要求1-4任一项所述的方法,其特征在于,所述N为偶数时,所述M等于N,所述N个子窗口的大小相同;或者,
所述N为奇数时,所述M等于N+1,所述N+1个子窗口的大小相同;或者,
所述N为奇数时,所述M等于N,其中,M个子窗口中其中一个子窗口的尺寸是其它子窗口的尺寸的2倍。
6.如权利要求1-4任一项所述的方法,其特征在于,所述至少一个待播放视频为N个,N为正整数,所述方法还包括:
响应于在所述浏览器标签页新增S个待播放视频的操作,获取所述S个待播放视频对应的播放地址;
当N+S大于M时,将所述视频插件的窗口分割为Q个子窗口,Q为大于或者等于N+S的正整数;所述N+S为新增所述S个待播放视频后所述视频插件所需播放的待播放视频的数量;在所述视频插件的窗口的Q个子窗口中通过所述视频插件播放所述N+S个待播放视频的视频地址对应的待播放视频;或者,
当N+S小于或者等于M时,在所述M个子窗口中除所述N个子窗口以外的M-N个子窗口中通过所述视频插件播放所述S个待播放视频的视频地址对应的待播放视频。
7.一种终端设备,其特征在于,包括:
存储器,用于存储程序指令;
处理器,用于调用所述存储器中存储的程序指令,按照获得的程序执行如权利要求1-6任一项所述的方法;
显示屏,用于显示浏览器窗口。
8.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,当所述计算机指令在计算机上运行时,使得所述计算机执行权利要求1-6任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210746742.3A CN115175002B (zh) | 2022-06-28 | 2022-06-28 | 一种视频播放方法及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210746742.3A CN115175002B (zh) | 2022-06-28 | 2022-06-28 | 一种视频播放方法及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115175002A CN115175002A (zh) | 2022-10-11 |
CN115175002B true CN115175002B (zh) | 2023-11-03 |
Family
ID=83489492
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210746742.3A Active CN115175002B (zh) | 2022-06-28 | 2022-06-28 | 一种视频播放方法及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115175002B (zh) |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104268251A (zh) * | 2014-09-30 | 2015-01-07 | 北京奇虎科技有限公司 | 一种网页中视频元素的播放方法和装置 |
WO2018036544A1 (zh) * | 2016-08-26 | 2018-03-01 | 腾讯科技(深圳)有限公司 | 浏览器在独立窗口中播放视频的方法、装置及存储介质 |
CN109640153A (zh) * | 2018-12-12 | 2019-04-16 | 安徽科大国创软件科技有限公司 | 一种基于vlc的浏览器多窗口播放的方法及其装置 |
CN109729362A (zh) * | 2019-01-10 | 2019-05-07 | 高新兴科技集团股份有限公司 | 视频解码播放方法、装置、计算机存储介质及电子设备 |
CN110300320A (zh) * | 2018-03-22 | 2019-10-01 | 杭州海康威视数字技术股份有限公司 | 一种视频播放方法、装置、电子设备及存储介质 |
CN110633156A (zh) * | 2018-06-22 | 2019-12-31 | 杭州海康威视***技术有限公司 | 浏览器关联应用程序的方法、装置及电子设备、存储介质 |
CN111556353A (zh) * | 2020-04-15 | 2020-08-18 | 重庆锐明信息技术有限公司 | 一种视频播放方法、视频播放管理装置及终端设备 |
CN112218168A (zh) * | 2020-09-16 | 2021-01-12 | 青岛海信网络科技股份有限公司 | 一种浏览器播放视频的方法及装置 |
CN113038141A (zh) * | 2021-03-26 | 2021-06-25 | 青岛海信移动通信技术股份有限公司 | 视频帧处理方法及电子设备 |
WO2021189712A1 (zh) * | 2020-03-23 | 2021-09-30 | 青岛海信传媒网络技术有限公司 | 网页视频全屏播放切换小窗口播放的方法及显示设备 |
CN114071243A (zh) * | 2021-11-16 | 2022-02-18 | 上海商汤智能科技有限公司 | 视频播放方法及装置、电子设备和存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10592417B2 (en) * | 2017-06-03 | 2020-03-17 | Vmware, Inc. | Video redirection in virtual desktop environments |
-
2022
- 2022-06-28 CN CN202210746742.3A patent/CN115175002B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104268251A (zh) * | 2014-09-30 | 2015-01-07 | 北京奇虎科技有限公司 | 一种网页中视频元素的播放方法和装置 |
WO2018036544A1 (zh) * | 2016-08-26 | 2018-03-01 | 腾讯科技(深圳)有限公司 | 浏览器在独立窗口中播放视频的方法、装置及存储介质 |
CN110300320A (zh) * | 2018-03-22 | 2019-10-01 | 杭州海康威视数字技术股份有限公司 | 一种视频播放方法、装置、电子设备及存储介质 |
CN110633156A (zh) * | 2018-06-22 | 2019-12-31 | 杭州海康威视***技术有限公司 | 浏览器关联应用程序的方法、装置及电子设备、存储介质 |
CN109640153A (zh) * | 2018-12-12 | 2019-04-16 | 安徽科大国创软件科技有限公司 | 一种基于vlc的浏览器多窗口播放的方法及其装置 |
CN109729362A (zh) * | 2019-01-10 | 2019-05-07 | 高新兴科技集团股份有限公司 | 视频解码播放方法、装置、计算机存储介质及电子设备 |
WO2021189712A1 (zh) * | 2020-03-23 | 2021-09-30 | 青岛海信传媒网络技术有限公司 | 网页视频全屏播放切换小窗口播放的方法及显示设备 |
CN111556353A (zh) * | 2020-04-15 | 2020-08-18 | 重庆锐明信息技术有限公司 | 一种视频播放方法、视频播放管理装置及终端设备 |
CN112218168A (zh) * | 2020-09-16 | 2021-01-12 | 青岛海信网络科技股份有限公司 | 一种浏览器播放视频的方法及装置 |
CN113038141A (zh) * | 2021-03-26 | 2021-06-25 | 青岛海信移动通信技术股份有限公司 | 视频帧处理方法及电子设备 |
CN114071243A (zh) * | 2021-11-16 | 2022-02-18 | 上海商汤智能科技有限公司 | 视频播放方法及装置、电子设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN115175002A (zh) | 2022-10-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11748054B2 (en) | Screen projection method and terminal device | |
KR102382775B1 (ko) | 기존 메시징 서비스의 메시지에 대한 앱에 의해 강화된 확장성 제공 기법 | |
CN108965397A (zh) | 云端视频编辑方法及装置、编辑设备及存储介质 | |
WO2022144016A1 (zh) | 应用程序控制方法、装置、电子设备和存储介质 | |
CN111026490B (zh) | 页面渲染方法、装置、电子设备及存储介质 | |
US20230217081A1 (en) | Screen Casting Method and Terminal | |
CN111966275A (zh) | 程序试用方法、***、装置、设备及介质 | |
CN113835569A (zh) | 终端设备、应用内部功能的快捷启动方法和存储介质 | |
WO2019071618A1 (zh) | 一种图像处理方法及设备 | |
CN113835571A (zh) | 一种终端设备、信息展示方法和存储介质 | |
CN111078325B (zh) | 应用程序运行方法、装置、电子设备及存储介质 | |
CN114979785A (zh) | 视频处理方法和相关装置 | |
CN114268796A (zh) | 视频流处理的方法及装置 | |
CN113709026A (zh) | 即时通信消息的处理方法、设备、存储介质和程序产品 | |
CN115175002B (zh) | 一种视频播放方法及设备 | |
KR101078603B1 (ko) | 멀티미디어 서비스를 위한 플랫폼, 스마트 카드 및 방법 | |
CN115098449B (zh) | 一种文件清理方法及电子设备 | |
KR20160131827A (ko) | 클라우드 스트리밍 서비스 시스템, 알파 레벨을 이용한 이미지 클라우드 스트리밍 서비스 방법 및 이를 위한 장치 | |
CN114979533A (zh) | 一种视频录制方法、装置及终端 | |
CN117557701A (zh) | 一种图像渲染方法和电子设备 | |
CN112367295B (zh) | 插件展示方法及装置、存储介质及电子设备 | |
CN114339308A (zh) | 一种视频流加载方法、电子设备及存储介质 | |
CN111104183B (zh) | 应用程序运行方法、装置、电子设备及存储介质 | |
CN113157092A (zh) | 可视化方法、终端设备和存储介质 | |
CN113079332A (zh) | 移动终端及其录屏方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: 266071 Shandong city of Qingdao province Jiangxi City Road No. 11 Applicant after: Qingdao Hisense Mobile Communication Technology Co.,Ltd. Address before: 266071 Shandong city of Qingdao province Jiangxi City Road No. 11 Applicant before: HISENSE MOBILE COMMUNICATIONS TECHNOLOGY Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |