CN111343409B - 多个视频窗口动态排布的发起、同步方法及系统 - Google Patents
多个视频窗口动态排布的发起、同步方法及系统 Download PDFInfo
- Publication number
- CN111343409B CN111343409B CN202010090292.8A CN202010090292A CN111343409B CN 111343409 B CN111343409 B CN 111343409B CN 202010090292 A CN202010090292 A CN 202010090292A CN 111343409 B CN111343409 B CN 111343409B
- Authority
- CN
- China
- Prior art keywords
- widget
- mouse
- parking area
- event
- window
- 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
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N7/00—Television systems
- H04N7/14—Systems for two-way working
- H04N7/15—Conference systems
-
- 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/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/443—OS processes, e.g. booting an STB, implementing a Java virtual machine in an STB or power management in an STB
- H04N21/4438—Window management, e.g. event handling following interaction with the user interface
-
- 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/4788—Supplemental services, e.g. displaying phone caller identification, shopping application communicating with other users, e.g. chatting
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N7/00—Television systems
- H04N7/14—Systems for two-way working
- H04N7/141—Systems for two-way working between two video terminals, e.g. videophone
Abstract
本发明公开了多个视频窗口动态排布的发起、同步方法及系统,所述发起方法包括:通过每个Widget对象监控四个鼠标事件,把事件类型和鼠标位置转发给它所属的Placement对象;其中,Placement对象用于记录本地窗口布局,一个Widget对象为一个视频窗口;通过所述Placement对象接收事件类型和鼠标位置并进行处理,实现视频窗口排布的动态调整,并将调整后的消息发送至服务器;所述同步方法包括:接收服务器转发的消息并进行处理,实现与发起客户端的视频窗口的相同排布。本发明的方法实现了多个客户端的视频窗口的动态、实时调整的同步,该方法占用带宽、CPU资源较少,可增强互动性,能够满足更多应用场景。
Description
技术领域
本发明涉及计算机领域,特别涉及多个视频窗口动态排布的发起、同步方法及系统。
背景技术
在传统的教学软件中,老师和学生的视频窗口大小和位置一般都是固定的,或者有简单的大、小两个尺寸。这种形式的缺点是互动性不好。
在多方视频通话类软件中,一般会有多个视频窗口,每个窗口显示一路视频。通常希望这些视频窗口的排布方式在各端是一致的,典型的例子就是在线教学或者在线会议类软件,老师/会议主持人(称之为操作者)把自己的窗口排在最左边,然后依次是学生/参会人A、B、C等,并且希望A、B和C端的排列顺序也是一样的,即操作者、A、B和C的顺序。但是目前存在的问题是,软件的初始状态是所有老师/会议主持人和学生/参会人的排列顺序是一致的,但是当老师/会议主持人端的视频窗口排列发生变化时,无法把老师/会议主持人端的视频窗口排布信息同步到学生/参会人端,从而导致学生/参会人端和老师/会议主持人端无法达到一致。
发明内容
本发明的目的在于克服上述技术缺陷,提出了多个视频窗口动态排布的同步方法,当发起客户端动态调整视频窗口的大小和位置后,其它客户端自动同步发起客户端的视频窗口调整后的大小和位置,使其视频窗口的排布与发起客户端保持一致。
为实现上述目的,本发明提供了一种多个视频窗口动态排布的发起方法,所述方法包括:
通过每个Widget对象监控四个鼠标事件,把事件类型和鼠标位置转发给它所属的Placement对象;其中,Placement对象用于记录本地窗口布局,一个Widget对象为一个视频窗口;
通过所述Placement对象接收事件类型和鼠标位置并进行处理,实现视频窗口排布的动态调整,并将调整后的消息发送至服务器。
作为上述方法的一种改进,所述方法还包括:构造相应的Placement对象和多个Widget对象,所述Placement对象包括两个Rect成员和一个List成员,两个Rect成员分别表示停泊区和航行区;所述List成员包括多个Widget对象,每个Widget对象持有所述Placement对象的指针,指向Widget对象所属的布局。
作为上述方法的一种改进,所述四个鼠标事件包括:mouse press事件、mousemove事件、mouse release事件以及mouse double click事件
作为上述方法的一种改进,所述Placement对象根据收到的事件类型和鼠标位置进行处理,实现视频窗口的动态调整,并将调整后的消息发送至服务器,具体包括:
当Placement对象接收到mouse press事件,则记录该Widget的当前位置和鼠标按下位置;
当Placement对象接收到mouse move事件,则根据收到的鼠标按下位置,结合mouse press时记录的该Widget的位置和鼠标位置,计算出该Widget的新位置,并将该Widget移动到新位置;
当Placement对象接收到mouse release事件,判断该Widget是否在停泊区,若为是,则将该Widget以动画方式移动到mouse press时的初始位置;否则,把该Widget的当前位置和当前大小发送至服务器;
当Placement对象接收到mouse double click事件,判断该Widget是否在停泊区,若为是,将该Widget以动画方式从停泊区移动到航行区,并调整其窗口大小;否则,将该Widget以动画方式从航行区复位到停泊区;然后将“停泊区或航行区视频窗口数量变更”消息以及该Widget标识号发送至服务器。
作为上述方法的一种改进,所述将该Widget移动到新位置;具体包括:
若该Widget在停泊区内移动,则将该Widget进行横向平移;
若该Widget在航行区内移动,则将该Widget沿着横向和纵向移动到新位置,该Widget大小不变化;
若该Widget从停泊区移动到航行区,则将该Widget的大小放大指定的比例;
若该Widget从航行区移动到停泊区,则将该Widget的大小缩小到固定的大小。
本发明提供了一种多个视频窗口动态排布的发起系统,所述系统包括:
监控模块,用于通过每个Widget对象监控四个鼠标事件,把事件类型和鼠标位置转发给它所属的Placement对象;其中,Placement对象用于记录本地窗口布局,一个Widget对象为一个视频窗口;
视频窗口调整模块,用于通过所述Placement对象接收事件类型和鼠标位置并进行处理,实现视频窗口排布的动态调整,并将调整后的消息发送至服务器。
本发明提供了一种多个视频窗口动态排布的同步方法,所述方法包括:
当接收到服务器转发的一个Widget的当前位置和当前大小,根据该Widget的原始位置和原始大小,以动画的形式将该Widge从原位置移动当前位置,将该Widget从原始大小变化到当前大小;
当接收到服务器转发的“停泊区或航行区视频窗口数量变更”消息以及Widget标识号,判断该Widget是否在停泊区,若为是,将该Widget以动画方式从停泊区移动到航行区,并调整其窗口大小;否则,将该Widget以动画方式从航行区复位到停泊区。
作为上述方法的一种改进,所述方法还包括:构造相应的Placement对象和多个Widget对象,所述Placement对象包括两个Rect成员和一个List成员,两个Rect成员分别表示停泊区和航行区;所述List成员包括多个Widget对象,每个Widget对象持有所述Placement对象的指针,指向Widget对象所属的布局。
本发明提供了一种多个视频窗口动态排布的同步系统,所述系统包括:所述系统包括:视频窗口动态排布发起模块、运行在服务器上的转发模块和视频窗口动态排布同步模块;
所述视频窗口动态排布发起模块,用于通过每个Widget对象监控四个鼠标事件,把事件类型和鼠标位置转发给它所属的Placement对象;其中,Placement对象用于记录本地窗口布局,一个Widget对象为一个视频窗口;通过所述Placement对象接收事件类型和鼠标位置并进行处理,实现视频窗口排布的动态调整,并将调整后的消息发送至服务器;
所述转发模块,用于将视频窗口动态排布发起模块发送的消息转发至其它所有客户端的视频窗口动态排布同步模块;
所述视频窗口动态排布同步模块,用于当接收到服务器转发的一个Widget的当前位置和当前大小,根据该Widget的原始位置和原始大小,以动画的形式将该Widge从原位置移动当前位置,将该Widget从原始大小变化到当前大小;用于当接收到服务器转发的“停泊区或航行区视频窗口数量变更”消息以及Widget标识号,判断该Widget是否在停泊区,若为是,将该Widget以动画方式从停泊区移动到航行区,并调整其窗口大小;否则,将该Widget以动画方式从航行区复位到停泊区。
本发明的优势在于:
1、本发明的方法实现了多个客户端的视频窗口的动态、实时调整的同步,该方法占用带宽、CPU资源较少,提高了教学/会议效率;
2、本发明的方法实现了操作者能够动态调整自己和他人的视频窗口的大小和位置,参与者端自动同步操作者调整后的大小和位置,这样增强互动性,能够满足更多应用场景;
3、本发明的方法调整窗口位置时,通过播放动画来连续变化窗口位置,让用户可以看到窗口变化的过程,防止窗口突然出现和消失,提升了用户体验;
4、由于有了动画播放的过程,对同步频率的要求就降低了,可以做到让用户操作完成释放鼠标时才同步一次位置信息,而不需要在拖动过程中同步,降低了对网络带宽的占用;
5、通过本发明的方法,可以增强老师和学生互动性,并且也方便各端的沟通,达到更好的教学效果,提高教学效率。
附图说明
图1是一种典型的停泊区和航行区的划分;
图2是本发明的视频窗口动态排布方法的流程图;
图3是本发明的计算机设备的结构图。
具体实施方式
下面结合附图和具体实施例对本发明的技术方案进行详细的说明。
本发明的方法应用的场景是多个客户端和一个服务器,其中多个客户端通过服务器进行通信,每个客户端都具有视频窗口调整的发起的功能,同时也具有同步其它客户端视频窗口调整的功能。初始状态时,所有客户端的视频窗口排列是一样的。
如图1所示,在客户端上,其视频窗口分布的位置分为停泊区和航行区,停泊区窗口不能自由移动和调整大小,只能有限的平移,鼠标放开之后,又自动回到原始停泊位置。航行区窗口可以自由移动和调整大小,调整之后,远端要同步新的窗口位置和大小。
如图2所示,本发明的实施例1提供了一种多个视频窗口的动态排布的发起方法,由发起视频窗口动态调整的客户端执行,该客户端可以是任意一个客户端,该方法包括:
步骤101)在运行过程中构造相应的Placement对象和多个Widget对象;
Widget对象就是视频窗口,它持有一个指向Placement对象的指针,用于指向它所属的布局。
Placement对象代表布局,它有两个Rect成员,分别代表停泊区和航行区。还有一个保存多个Widget对象的List成员,用来保存它管理的所有视频窗口,除了自己的视频窗口,其它视频窗口为其它客户端的视频窗口。
步骤102)Widget对象监控mouse press、mouse move、mouse release以及mousedouble click事件,把事件类型和鼠标位置发送给它所属的Placement对象。
步骤103)Placement对象对接收到的事件类型和鼠标位置进行处理:
a、如果是mouse press事件,则记录Widget当前位置,和鼠标按下位置。
b、如果是mouse move事件,则根据收到的鼠标位置,结合mouse press时记录的Widget位置、鼠标位置,算出Widget新的位置,并将Widget移动到新位置。
具体来说,这里又分3种情况:1)仅在停泊区之内移动,则忽略纵坐标变化仅进行平移。2)仅在航行区移动,则横、纵坐标都变化,窗口大小不变化。3)在停泊和航行区之间拖动,则除了调整横、纵坐标之外,窗口大小也要进行相应的变化。
停泊区的窗口,可以被拖到航行区,拖过去之后,自动放大指定的比例;航行区的窗口也可以被拖到停泊区,拖过去之后,自动缩小到固定的大小。
c、如果是mouse release事件,分两种情况:
1)如果在停泊区,则让Widget以动画方式回到mouse press时的初始位置。(此种情况不需要同步到其它客户端,其它客户端窗口位置自始至终不进行任何移动)。
2)如果在航行区,则把widget当前位置和大小发送到服务器,服务器把此信息转发给其它客户端;
d、如果是mouse double click事件,分两种情况:
若当前在停泊区,则以动画方式移动到航行区;即:双击停泊区的视频窗口,该窗口会自动进入航行区,并调整自己的大小铺满航行区,然后双击第二个停泊区的窗口,它也会进入航行区,并调整自己和第一个窗口的大小,使二者共同占满航行区。以此类推。
若当前在航行区,则动画方式移动到停泊区。即:双击航行区的窗口,会自动复位到停泊区。
此两种情况下,客户端仅发送给服务器一个简单的“停泊区或航行区视频窗口数量变更”消息,并不包含任何窗口位置信息,服务器把此消息转发给其它客户端。
注意在mouse move期间,并不发送任何信息到服务器,而是mouse release或mouse double click时才发送信息到服务器,服务器转发给其它客户端之后,其它客户端才进行同步动作。
本发明的实施例2提供了一种多个视频窗口动态排布的发起系统,所述系统包括:
监控模块,用于通过每个Widget对象监控四个鼠标事件,把事件类型和鼠标位置转发给它所属的Placement对象;其中,Placement对象用于记录本地窗口布局,一个Widget对象为一个视频窗口;
视频窗口调整模块,用于通过所述Placement对象接收事件类型和鼠标位置并进行处理,实现视频窗口排布的动态调整,并将调整后的消息发送至服务器。
本发明的实施例3提供了一种多个视频窗口的动态排布的同步方法,由接收到视频窗口调整信息的客户端执行,该客户端是除了发起客户端的其它所有客户端,该方法包括:
步骤301)在运行过程中构造相应的Placement对象和Widget对象;
Widget对象就是视频窗口,它持有一个指向Placement对象的指针,用于指向它所属的布局。
Placement对象代表布局,它有两个Rect成员,分别代表停泊区和航行区。还有一个保存多个Widget的list成员,用来保存它管理的所有视频窗口,除了自己的视频窗口,其它视频窗口为其它客户端的视频窗口。
步骤302)接收服务器转发的消息并进行处理;具体包括:
接收服务器转发的一个Widget的当前位置和当前大小后,根据该Widget的原始位置和原始大小,以动画的形式将该Widge从原位置移动当前位置,将该Widget从原始大小变化到当前大小;
接收服务器转发的“停泊区或航行区视频窗口数量变更”消息以及Widget标识号后,判断该Widget是否在停泊区,若为是,该Widget自动进入航行区,并调整其窗口大小;否则,该Widget以动画方式会自动复位到停泊区,从而实现与发起客户端的视频窗口的相同排布。
本发明的实施例4提供了一种多个视频窗口动态排布的同步系统,所述系统包括:视频窗口动态排布发起模块、运行在服务器上的转发模块和视频窗口动态排布同步模块;
所述视频窗口动态排布发起模块,用于通过每个Widget对象监控四个鼠标事件,把事件类型和鼠标位置转发给它所属的Placement对象;其中,Placement对象用于记录本地窗口布局,一个Widget对象为一个视频窗口;通过所述Placement对象接收事件类型和鼠标位置并进行处理,实现视频窗口排布的动态调整,并将调整后的消息发送至服务器;
所述转发模块,用于将视频窗口动态排布发起模块发送的消息转发至其它所有客户端的视频窗口动态排布同步模块;
所述视频窗口动态排布同步模块,用于当接收到服务器转发的一个Widget的当前位置和当前大小,根据该Widget的原始位置和原始大小,以动画的形式将该Widge从原位置移动当前位置,将该Widget从原始大小变化到当前大小;用于当接收到服务器转发的“停泊区或航行区视频窗口数量变更”消息以及Widget标识号,判断该Widget是否在停泊区,若为是,将该Widget以动画方式从停泊区移动到航行区,并调整其窗口大小;否则,将该Widget以动画方式从航行区复位到停泊区。
如图3所示,本发明的实施例5提供的一种计算机设备(客户端),包括:至少一个处理器505、存储器505、至少一个网络接口503和用户接口504。该装置50中的各个组件通过总线系统505耦合在一起。可理解,总线系统505用于实现这些组件之间的连接通信。总线系统505除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图中将各种总线都标为总线系统505。
其中,用户接口504可以包括显示器、键盘或者点击设备(例如,鼠标,轨迹球(track ball)、触感板或者触摸屏等。
可以理解,本公开实施例中的存储器505可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(Read-Only Memory,ROM)、可编程只读存储器(Programmable ROM,PROM)、可擦除可编程只读存储器(Erasable PROM,EPROM)、电可擦除可编程只读存储器(Electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(Random Access Memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(Static RAM,SRAM)、动态随机存取存储器(Dynamic RAM,DRAM)、同步动态随机存取存储器(Synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(Double Data RateSDRAM,DDRSDRAM)、增强型同步动态随机存取存储器(Enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(Synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(DirectRambus RAM,DRRAM)。本文描述的存储器505旨在包括但不限于这些和任意其它适合类型的存储器。
在一些实施方式中,存储器505存储了如下的元素,可执行模块或者数据结构,或者它们的子集,或者它们的扩展集:操作系统5055和应用程序5055。
其中,操作系统5055,包含各种系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务。应用程序5055,包含各种应用程序,例如媒体播放器(Media Player)、浏览器(Browser)等,用于实现各种应用业务。实现本公开实施例方法的程序可以包含在应用程序5055中。
在本公开实施例中,通过调用存储器505存储的程序或指令,具体的,可以是应用程序5055中存储的程序或指令,处理器505用于:
执行实施例1和实施例3的方法的步骤。
实施例1和实施例3的方法可以应用于处理器505中,或者由处理器505实现。处理器505可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器505中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器505可以是通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(FieldProgrammable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行实施例1和实施例3中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合实施例1和实施例3所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器505,处理器505读取存储器505中的信息,结合其硬件完成上述方法的步骤。
可以理解的是,本发明描述的这些实施例可以用硬件、软件、固件、中间件、微码或其组合来实现。对于硬件实现,处理单元可以实现在一个或多个专用集成电路(Application Specific Integrated Circuits,ASIC)、数字信号处理器(Digital SignalProcessing,DSP)、数字信号处理设备(DSP Device,DSPD)、可编程逻辑设备(ProgrammableLogic Device,PLD)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、通用处理器、控制器、微控制器、微处理器、用于执行本申请所述功能的其它电子单元或其组合中。
对于软件实现,可通过执行本发明的功能模块(例如过程、函数等)来实现本发明技术。软件代码可存储在存储器中并通过处理器执行。存储器可以在处理器中或在处理器外部实现。
实施例6
本发明实施例6提供一种非易失性存储介质,用于存储计算机程序。当该计算机程序被处理器执行时可以实现实施例1和实施例3的方法的各个步骤。
本发明的方法适用在线教学或者在线会议类系统,也可以用于任何有相似需求的场景。
最后所应说明的是,以上实施例仅用以说明本发明的技术方案而非限制。尽管参照实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,对本发明的技术方案进行修改或者等同替换,都不脱离本发明技术方案的精神和范围,其均应涵盖在本发明的权利要求范围当中。
Claims (3)
1.一种多个视频窗口动态排布的发起及同步方法,所述方法包括:
发起客户端和同步客户端均构造相应的Placement对象和多个Widget对象,其中,Placement对象用于记录本地窗口布局,一个Widget对象为一个视频窗口;所述Placement对象包括两个Rect成员和一个List成员,两个Rect成员分别表示停泊区和航行区;所述List成员包括多个Widget对象,每个Widget对象持有所述Placement对象的指针,指向Widget对象所属的布局;
所述发起客户端通过每个Widget对象监控四个鼠标事件,把事件类型和鼠标位置转发给它所属的Placement对象;所述四个鼠标事件包括:mouse press事件、mouse move事件、mouse release事件以及mouse double click事件;
所述发起客户端通过所述Placement对象接收事件类型和鼠标位置并进行处理,实现视频窗口排布的动态调整,并将调整后的消息发送至服务器;具体包括:
当Placement对象接收到mouse press事件,则记录该Widget的当前位置和鼠标按下位置;
当Placement对象接收到mouse move事件,则根据收到的鼠标按下位置,结合mousepress时记录的该Widget的位置和鼠标位置,计算出该Widget的新位置,并将该Widget移动到新位置;
当Placement对象接收到mouse release事件,判断该Widget是否在停泊区,若为是,则将该Widget以动画方式移动到mouse press时的初始位置;否则,把该Widget的当前位置和当前大小发送至服务器;
当Placement对象接收到mouse double click事件,判断该Widget是否在停泊区,若为是,将该Widget以动画方式从停泊区移动到航行区,并调整其窗口大小;否则,将该Widget以动画方式从航行区复位到停泊区;然后将“停泊区或航行区视频窗口数量变更”消息以及该Widget标识号发送至服务器;
当所述同步客户端接收到服务器转发的一个Widget的当前位置和当前大小,根据该Widget的原始位置和原始大小,以动画的形式将该Widge从原位置移动当前位置,将该Widget从原始大小变化到当前大小;
当所述同步客户端接收到服务器转发的“停泊区或航行区视频窗口数量变更”消息以及Widget标识号,判断该Widget是否在停泊区,若为是,将该Widget以动画方式从停泊区移动到航行区,并调整其窗口大小;否则,将该Widget以动画方式从航行区复位到停泊区。
2.根据权利要求1所述的多个视频窗口动态排布的发起及同步方法,其特征在于,所述将该Widget移动到新位置;具体包括:
若该Widget在停泊区内移动,则将该Widget进行横向平移;
若该Widget在航行区内移动,则将该Widget沿着横向和纵向移动到新位置,该Widget大小不变化;
若该Widget从停泊区移动到航行区,则将该Widget的大小放大指定的比例;
若该Widget从航行区移动到停泊区,则将该Widget的大小缩小到固定的大小。
3.一种多个视频窗口动态排布的发起及同步系统,其特征在于,所述系统包括:设置在发起客户端的构造模块、视频窗口动态排布发起模块,设置在服务器上的转发模块,和设置在同步客户端的视频窗口动态排布同步模块;
所述构造模块,用于构造相应的Placement对象和多个Widget对象,其中,Placement对象用于记录本地窗口布局,一个Widget对象为一个视频窗口;所述Placement对象包括两个Rect成员和一个List成员,两个Rect成员分别表示停泊区和航行区;所述List成员包括多个Widget对象,每个Widget对象持有所述Placement对象的指针,指向Widget对象所属的布局;
所述视频窗口动态排布发起模块,用于通过每个Widget对象监控四个鼠标事件,把事件类型和鼠标位置转发给它所属的Placement对象;所述四个鼠标事件包括:mouse press事件、mouse move事件、mouse release事件以及mouse double click事件;
通过所述Placement对象接收事件类型和鼠标位置并进行处理,实现视频窗口排布的动态调整,并将调整后的消息发送至服务器;
具体包括:
当Placement对象接收到mouse press事件,则记录该Widget的当前位置和鼠标按下位置;
当Placement对象接收到mouse move事件,则根据收到的鼠标按下位置,结合mousepress时记录的该Widget的位置和鼠标位置,计算出该Widget的新位置,并将该Widget移动到新位置;
当Placement对象接收到mouse release事件,判断该Widget是否在停泊区,若为是,则将该Widget以动画方式移动到mouse press时的初始位置;否则,把该Widget的当前位置和当前大小发送至服务器;
当Placement对象接收到mouse double click事件,判断该Widget是否在停泊区,若为是,将该Widget以动画方式从停泊区移动到航行区,并调整其窗口大小;否则,将该Widget以动画方式从航行区复位到停泊区;然后将“停泊区或航行区视频窗口数量变更”消息以及该Widget标识号发送至服务器;
所述转发模块,用于将视频窗口动态排布发起模块发送的消息转发至其它所有客户端的视频窗口动态排布同步模块;
所述视频窗口动态排布同步模块,用于构造相应的Placement对象和多个Widget对象,所述Placement对象包括两个Rect成员和一个List成员,两个Rect成员分别表示停泊区和航行区;所述List成员包括多个Widget对象,每个Widget对象持有所述Placement对象的指针,指向Widget对象所属的布局;用于当接收到服务器转发的一个Widget的当前位置和当前大小,根据该Widget的原始位置和原始大小,以动画的形式将该Widge从原位置移动当前位置,将该Widget从原始大小变化到当前大小;还用于当接收到服务器转发的“停泊区或航行区视频窗口数量变更”消息以及Widget标识号,判断该Widget是否在停泊区,若为是,将该Widget以动画方式从停泊区移动到航行区,并调整其窗口大小;否则,将该Widget以动画方式从航行区复位到停泊区。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010090292.8A CN111343409B (zh) | 2020-02-13 | 2020-02-13 | 多个视频窗口动态排布的发起、同步方法及系统 |
PCT/CN2020/096052 WO2021159645A1 (zh) | 2020-02-13 | 2020-06-15 | 多个视频窗口动态排布的发起、同步方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010090292.8A CN111343409B (zh) | 2020-02-13 | 2020-02-13 | 多个视频窗口动态排布的发起、同步方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111343409A CN111343409A (zh) | 2020-06-26 |
CN111343409B true CN111343409B (zh) | 2021-12-28 |
Family
ID=71186847
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010090292.8A Active CN111343409B (zh) | 2020-02-13 | 2020-02-13 | 多个视频窗口动态排布的发起、同步方法及系统 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN111343409B (zh) |
WO (1) | WO2021159645A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111651422B (zh) * | 2020-08-05 | 2020-11-24 | 北京翼鸥教育科技有限公司 | 一种在线多文件多端同步的发起、响应方法及交互系统 |
CN114327325B (zh) * | 2021-04-27 | 2022-06-07 | 北京仁光科技有限公司 | 多窗口处理方法、系统、可读存储介质和电子设备 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006201709A (ja) * | 2005-01-24 | 2006-08-03 | Toshiba Corp | 映像表示装置、映像合成配信装置、プログラム、システム及び方法 |
CN102323887A (zh) * | 2011-06-30 | 2012-01-18 | 中兴通讯股份有限公司 | 基于浏览器引擎的动态加载Widget的方法及移动终端 |
CN102346632A (zh) * | 2010-07-22 | 2012-02-08 | 联发科技股份有限公司 | 电子交互装置与微件呈现的位置调整方法 |
CN102436335A (zh) * | 2010-09-29 | 2012-05-02 | 鸿富锦精密工业(深圳)有限公司 | 微件添加系统及方法 |
CN102938834A (zh) * | 2012-11-21 | 2013-02-20 | 北京佳讯飞鸿电气股份有限公司 | 一种多屏多视频缩微视图调度系统及调度操作方法 |
CN105589682A (zh) * | 2014-10-22 | 2016-05-18 | Tcl集团股份有限公司 | 一种基于Firefox OS的微件信息显示方法及装置 |
CN106569810A (zh) * | 2016-10-31 | 2017-04-19 | 北京奇虎科技有限公司 | 一种微件对象widget的显示方法、装置和便携式移动终端 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5455904A (en) * | 1990-08-02 | 1995-10-03 | Bull S.A. | Method of sizing or moving windows |
JP5185745B2 (ja) * | 2008-09-08 | 2013-04-17 | 株式会社エヌ・ティ・ティ・ドコモ | 情報処理装置及びプログラム |
CN101477436A (zh) * | 2008-12-18 | 2009-07-08 | 腾讯科技(深圳)有限公司 | 对程序窗口的客户区进行交互的方法与系统 |
JP5375338B2 (ja) * | 2009-05-29 | 2013-12-25 | セイコーエプソン株式会社 | 画像表示システム、画像表示装置、画像表示方法、画像供給装置、およびプログラム |
TW201232384A (en) * | 2011-01-31 | 2012-08-01 | Ebsuccess Solutions Inc | System and method of dynamic information display and automatic printing plate integration |
CN102214101A (zh) * | 2011-06-30 | 2011-10-12 | 中兴通讯股份有限公司 | Widget窗口缩放显示的方法及装置 |
CN104572752A (zh) * | 2013-10-24 | 2015-04-29 | 中兴通讯股份有限公司 | 应用程序查找定位方法方法及装置 |
US10277643B2 (en) * | 2014-05-23 | 2019-04-30 | Samsung Electronics Co., Ltd. | Server and method of providing collaboration services and user terminal for receiving collaboration services |
CN107066268B (zh) * | 2017-03-28 | 2022-03-04 | 腾讯科技(深圳)有限公司 | 微件应用的显示位置切换方法及装置 |
CN110489042B (zh) * | 2019-07-17 | 2021-10-19 | 视联动力信息技术股份有限公司 | 一种基于视联网模拟拖拽的方法及系统 |
-
2020
- 2020-02-13 CN CN202010090292.8A patent/CN111343409B/zh active Active
- 2020-06-15 WO PCT/CN2020/096052 patent/WO2021159645A1/zh active Application Filing
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006201709A (ja) * | 2005-01-24 | 2006-08-03 | Toshiba Corp | 映像表示装置、映像合成配信装置、プログラム、システム及び方法 |
CN102346632A (zh) * | 2010-07-22 | 2012-02-08 | 联发科技股份有限公司 | 电子交互装置与微件呈现的位置调整方法 |
CN102436335A (zh) * | 2010-09-29 | 2012-05-02 | 鸿富锦精密工业(深圳)有限公司 | 微件添加系统及方法 |
CN102323887A (zh) * | 2011-06-30 | 2012-01-18 | 中兴通讯股份有限公司 | 基于浏览器引擎的动态加载Widget的方法及移动终端 |
CN102938834A (zh) * | 2012-11-21 | 2013-02-20 | 北京佳讯飞鸿电气股份有限公司 | 一种多屏多视频缩微视图调度系统及调度操作方法 |
CN105589682A (zh) * | 2014-10-22 | 2016-05-18 | Tcl集团股份有限公司 | 一种基于Firefox OS的微件信息显示方法及装置 |
CN106569810A (zh) * | 2016-10-31 | 2017-04-19 | 北京奇虎科技有限公司 | 一种微件对象widget的显示方法、装置和便携式移动终端 |
Also Published As
Publication number | Publication date |
---|---|
WO2021159645A1 (zh) | 2021-08-19 |
CN111343409A (zh) | 2020-06-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110515573B (zh) | 投屏方法、装置、系统和计算机设备 | |
US7973786B2 (en) | System and method for managing interaction in a virtual environment | |
US20220368733A1 (en) | Interaction method and apparatus, and electronic device | |
US8239453B2 (en) | System and method for providing one class of users of an application a view of what another class of users of the application is visually experiencing | |
WO2021244025A1 (zh) | 信息处理方法、设备、系统、存储介质及计算机程序产品 | |
CN111343409B (zh) | 多个视频窗口动态排布的发起、同步方法及系统 | |
US8516143B2 (en) | Transmitting data within remote application | |
US20180295158A1 (en) | Displaying group expressions for teleconference sessions | |
WO2021164154A1 (zh) | 屏幕多方共享的发起、转发、响应、接收方法及互动系统 | |
US11785194B2 (en) | Contextually-aware control of a user interface displaying a video and related user text | |
US20220394077A1 (en) | Receiving virtual relocation during a network conference | |
US20220368553A1 (en) | Interaction method and apparatus, and electronic device | |
JP2023522914A (ja) | 情報の切り替え・共有方法、装置、電子デバイス及び記憶媒体 | |
CN113342247B (zh) | 素材处理方法、装置、电子设备及存储介质 | |
US20230328205A1 (en) | Video conference presentation method and apparatus, and terminal device and storage medium | |
CN112269631A (zh) | 虚拟机共享键鼠系统 | |
EP4184924A1 (en) | Network live broadcast interaction method and device | |
CN110708238A (zh) | 用于处理信息的方法和装置 | |
CN115529485A (zh) | 一种直播视频处理方法、装置、设备及介质 | |
KR102198799B1 (ko) | 다자간 회의 제공 장치 및 상기 장치에서의 콘텐츠 공유 방법 | |
CN108769565B (zh) | 画面布局自动切换方法、服务器及本地录播系统 | |
CN114466218B (zh) | 直播视频人物跟踪方法、装置、设备及存储介质 | |
KR102164315B1 (ko) | 파노라마 콘텐츠의 디스플레이 제어 방법 및 콘텐츠 제공 서버 | |
CN115278275B (zh) | 信息展示方法、装置、设备、存储介质和程序产品 | |
CN117201723A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |