多个视频窗口动态排布的发起、同步方法及系统技术方案

技术编号:24692650 阅读:56 留言:0更新日期:2020-06-27 11:36
本发明专利技术公开了多个视频窗口动态排布的发起、同步方法及系统,所述发起方法包括:通过每个Widget对象监控四个鼠标事件,把事件类型和鼠标位置转发给它所属的Placement对象;其中,Placement对象用于记录本地窗口布局,一个Widget对象为一个视频窗口;通过所述Placement对象接收事件类型和鼠标位置并进行处理,实现视频窗口排布的动态调整,并将调整后的消息发送至服务器;所述同步方法包括:接收服务器转发的消息并进行处理,实现与发起客户端的视频窗口的相同排布。本发明专利技术的方法实现了多个客户端的视频窗口的动态、实时调整的同步,该方法占用带宽、CPU资源较少,可增强互动性,能够满足更多应用场景。

The initiation, synchronization method and system of dynamic arrangement of multiple video windows

【技术实现步骤摘要】
多个视频窗口动态排布的发起、同步方法及系统
本专利技术涉及计算机领域,特别涉及多个视频窗口动态排布的发起、同步方法及系统。
技术介绍
在传统的教学软件中,老师和学生的视频窗口大小和位置一般都是固定的,或者有简单的大、小两个尺寸。这种形式的缺点是互动性不好。在多方视频通话类软件中,一般会有多个视频窗口,每个窗口显示一路视频。通常希望这些视频窗口的排布方式在各端是一致的,典型的例子就是在线教学或者在线会议类软件,老师/会议主持人(称之为操作者)把自己的窗口排在最左边,然后依次是学生/参会人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对象所属的布局。作为上述方法的一种改进,所述四个鼠标事件包括:mousepress事件、mousemove事件、mouserelease事件以及mousedoubleclick事件作为上述方法的一种改进,所述Placement对象根据收到的事件类型和鼠标位置进行处理,实现视频窗口的动态调整,并将调整后的消息发送至服务器,具体包括:当Placement对象接收到mousepress事件,则记录该Widget的当前位置和鼠标按下位置;当Placement对象接收到mousemove事件,则根据收到的鼠标按下位置,结合mousepress时记录的该Widget的位置和鼠标位置,计算出该Widget的新位置,并将该Widget移动到新位置;当Placement对象接收到mouserelease事件,判断该Widget是否在停泊区,若为是,则将该Widget以动画方式移动到mousepress时的初始位置;否则,把该Widget的当前位置和当前大小发送至服务器;当Placement对象接收到mousedoubleclick事件,判断该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、本专利技术的方法实现了多个客户端的视频窗口的动态、实时调整本文档来自技高网...

【技术保护点】
1.一种多个视频窗口动态排布的发起方法,所述方法包括:/n通过每个Widget对象监控四个鼠标事件,把事件类型和鼠标位置转发给它所属的Placement对象;其中,Placement对象用于记录本地窗口布局,一个Widget对象为一个视频窗口;/n通过所述Placement对象接收事件类型和鼠标位置并进行处理,实现视频窗口排布的动态调整,并将调整后的消息发送至服务器。/n

【技术特征摘要】
1.一种多个视频窗口动态排布的发起方法,所述方法包括:
通过每个Widget对象监控四个鼠标事件,把事件类型和鼠标位置转发给它所属的Placement对象;其中,Placement对象用于记录本地窗口布局,一个Widget对象为一个视频窗口;
通过所述Placement对象接收事件类型和鼠标位置并进行处理,实现视频窗口排布的动态调整,并将调整后的消息发送至服务器。


2.根据权利要求1所述的多个视频窗口动态排布的发起方法,其特征在于,所述方法还包括:构造相应的Placement对象和多个Widget对象,所述Placement对象包括两个Rect成员和一个List成员,两个Rect成员分别表示停泊区和航行区;所述List成员包括多个Widget对象,每个Widget对象持有所述Placement对象的指针,指向Widget对象所属的布局。


3.根据权利要求2所述的多个视频窗口动态排布的发起方法,其特征在于,所述四个鼠标事件包括:mousepress事件、mousemove事件、mouserelease事件以及mousedoubleclick事件。


4.根据权利要求3所述的多个视频窗口动态排布的发起方法,其特征在于,所述Placement对象根据收到的事件类型和鼠标位置进行处理,实现视频窗口的动态调整,并将调整后的消息发送至服务器,具体包括:
当Placement对象接收到mousepress事件,则记录该Widget的当前位置和鼠标按下位置;
当Placement对象接收到mousemove事件,则根据收到的鼠标按下位置,结合mousepress时记录的该Widget的位置和鼠标位置,计算出该Widget的新位置,并将该Widget移动到新位置;
当Placement对象接收到mouserelease事件,判断该Widget是否在停泊区,若为是,则将该Widget以动画方式移动到mousepress时的初始位置;否则,把该Widget的当前位置和当前大小发送至服务器;
当Placement对象接收到mousedoubleclick事件,判断该Widget是否在停泊区,若为是,将该Widget以动画方式从停泊区移动到航行区,并调整其窗口大小;否则,将该Widget以动画方式从航行区复位到停泊区;然后将“停泊区或航行区视频窗口数量变更”消息以及该Widget标识号发送至服务器。


5.根据权利要求4所述的多个视频窗口动态排布的发起方法,其特征在于,所述将该Widget移动到新位置;具体包括:
若该Widget在停泊区内移动,则将该Widget进行横向平移;
若该Widget在航行区内移动,则将该Widget沿着横向和纵向移动到新位置,该Widget大小不变化;
若该Widget从停泊区移动到航行区,则将该Widget的大小放大指定的比例;
若该Widget从...

【专利技术属性】
技术研发人员:于杰贺骞
申请(专利权)人:北京翼鸥教育科技有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1