数据传输协作控制系统、方法、存储介质及交互设备与流程

文档序号:15980999发布日期:2018-11-17 00:19阅读:166来源:国知局

本发明涉及数据传输技术领域,尤其涉及一种数据传输协作控制系统、方法、存储介质及交互设备。

背景技术

随着传屏技术的不断发展,将一个设备的屏幕(源屏幕端),分享给多个其他设备屏幕(接收端),并通过触摸回传的方式实现接收端对源屏幕端的交互式操作互动,成为一种趋势。

在这种传屏方式下,同一时间可能会有接收端同时对源屏幕端同一个地方进行点击并触摸回传,如果没有良好的多人协作控制方法,源屏幕端就会发生冲突并导致响应混乱。



技术实现要素:

鉴于上述的分析,本发明旨在提供数据传输协作控制系统、方法、存储介质及交互设备,实现多个接收端和源屏幕端之间数据传输的同步控制,解决多个接收端同时向源屏幕端发送指令导致的冲突和响应混乱。

本发明的目的主要是通过以下技术方案实现的:

第一方面,本发明实施例提供了一种数据传输协作控制系统,包括:视频发送端,通过视频流通道向至少一个接收端发送视频流数据;通过控制指令通道分别接收至少一个接收端发出的控制指令,根据锁定预设条件,选定其中一个接收端,对该接收端发出的控制指令依次进行响应;根据解锁预设条件,结束响应;

至少一个接收端,分别用于通过视频流通道接收视频发送端发送视频流数据;并通过控制指令通道发送控制指令。

第二方面,本发明实施例提供了一种数据传输协作控制方法,包括:

通过视频流通道向至少一个接收端发送视频流数据;

通过控制指令通道分别接收至少一个接收端发出的桌面控制指令;

选定最先能满足锁定预设条件的接收端,接收该接收端的控制指令,并依次进行响应,直到接收到该接收端发出满足解锁预设条件的控制指令。

第三方面,本发明实施例提供了一种交互智能设备,包括:

视频流通道建立模块,用于与至少一个接收端建立视频流通道,通过视频流通道向接收端发送视频流数据;

控制指令通道建立模块,用于与至少一个接收端建立控制指令通道;

控制指令接收模块,用于通过控制指令通道接收至少一个接收端发送的控制指令;

控制指令选定响应模块,用于根据锁定预设条件,选定其中一个接收端,对该接收端发出的控制指令依次进行响应;根据解锁预设条件,结束响应。

第四方面,本发明实施例提供了一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行如本发明实施例所述的数据传输协作控制方法。

本发明有益效果如下:

本发明通过建立的视频流通道,实现了源屏幕端与接收端的桌面同步显示,使用户通过接收端的屏幕即可分享源屏幕端的桌面内容,并将接收端屏幕的触摸事件或鼠标事件形成控制指令回传到源屏幕端,实现对源屏幕端的交互式操作互动;并且源屏幕端根据控制指令是否满足锁定预设条件指令,选定接收端进行控制指令接收响应,有效解决桌面同步多人同时控制导致的冲突和响应混乱;

为了解决接收端数量过多,对源屏幕端的计算能力和网络路由能力要求高的问题,本发明借助于高性能的媒体流转发服务器实现了一对多的屏幕视频流发送,借助控制指令服务器实现了多对一的控制指令接收,大大降低了对源屏幕端的计算能力和网络路由的能力要求。

本发明的其他特征和优点将在随后的说明书中阐述,并且,部分的从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。

附图说明

附图仅用于示出具体实施例的目的,而并不认为是对本发明的限制,在整个附图中,相同的参考符号表示相同的部件。

图1为本发明实施例一的系统组成示意图;

图2为本发明实施例一中源屏幕端组成示意图;

图3为本发明实施例一中接收端的组成示意图;

图4为本发明实施例二的系统组成示意图;

图5为本发明实施例二中控制指令服务器组成示意图;

图6为本发明实施例二中源屏幕端组成示意图;

图7为本发明实施例的方法流程示意图;

图8为本发明实施例四中的交互智能设备组成示意图。

具体实施方式

下面结合附图来具体描述本发明的优选实施例,其中,附图构成本申请一部分,并与本发明的实施例一起用于阐释本发明的原理。

实施例一

图1为本实施例提供的一种数据传输协作控制系统的组成示意图,如图1所示,包括,视频发送端和4个接收端(120~123);

需要说明的是,接收端的个数不限于本实施例给出的个数,所述接收机的个数以不超过源屏幕端的计算能力和网络路由能力限制为限制。

系统中,视频发送端包括源屏幕端110,该源屏幕端与每个接收端之间建立视频流通道和控制指令通道;每个视频流通道或控制指令通道均可以采用socket通道。

具体的,源屏幕端与所有的接收端设置在同一个局域网下;源屏幕端可以使用固定的ip地址和端口号,接收端通过源屏幕端的ip地址和端口与其建立一个基于tcp或udp的socket连接作为视频流通道,源屏幕端通过该视频流通道将视频流数据发送至所有接收端。

可选的,源屏幕端和接收端都连接在同一个路由器发送的热点下;

可选的,源屏幕端使用udp广播的方式把自己的ip地址和端口广播至局域网内,同一个局域网内的接收端都会收到这个广播。

每个接收端通过源屏幕端的ip地址和端口与其建立一个基于tcp或udp的socket连接作为控制指令通道,接收端通过上述建立的控制指令通道,将相关的控制指令发送至源屏幕端。

源屏幕端110通过视频流通道向每个接收端(120~123)发送屏幕视频流;

源屏幕端110通过同步控制指令通道获取至少一个接收端发出的控制指令。

接收端发出的控制指令可以由接收端根据获取到的自身桌面触摸事件,按照一定的格式包装而成;也可以由接收端鼠标点击屏幕上的桌面坐标所产生的鼠标事件,按照一定的格式包装而成。

具体的,接收端发出的控制指令格式可以定义为:{设备id,指令类型,坐标{x,y}};其中,

设备id是一个随机uuid,代表唯一的一个接收端;

指令类型包括:按下,移动,抬起;

坐标{x,y}是一个二维坐标。

例如,在一个接收端屏幕上产生一个按下的触摸事件,包装成桌面控制指令封装如下{xxjjduududu,按下,{300,200}};其中,“xxjjduududu”为这个接收端的设备id,“按下”为指令的类型,{300,200}为在接收端屏幕按下的具体坐标;

其中,坐标可以采用接收端的屏幕坐标。

特殊的,为了避免由于接收端与源屏幕端屏幕尺寸不一致和坐标空间不一致,引起的坐标位置偏差,还可以选择采取统一坐标空间坐标。

本实施例公开的得到统一坐标空间,包括:

定义接收端的坐标空间为(xr,yr),目标坐标空间为(xo,yo),源屏幕端坐标空间为(xs,ys);

接收端将屏幕触摸事件的坐标值(xr,yr)经过坐标变换变换为目标空间坐标值(xo,yo),

源屏幕端提取目标空间坐标值;并将目标空间坐标值(xo,yo)经过坐标变换变换为源屏幕端的实际坐标值(xs,ys)。其中,目标坐标空间(xo,yo)大于所述接收端屏幕坐标空间(xr,yr)和源屏幕端屏幕坐标空间(xs,ys)。通过本方法使接收端和源屏幕端在进行坐标传输时,在对方的屏幕尺寸大小未知时,实现坐标点的明确定位。

例如,接收端的坐标空间为(1366,768),目标坐标空间为(65535,65535),源屏幕端坐标空间为(1920,1080);

当接收端屏幕的一个触摸点坐标为(100,200)时,通过坐标转换,相对于目标空间坐标值为(100/1920*65535,200/1080*65535)=(3414,12136),以此坐标值向源屏幕端发送,源屏幕端收到的坐标值为(3414,12136);再通过坐标转换为自身坐标系的坐标,得到(3414*1366/65535,12136*768/65535)=(71,142),该坐标即为源屏幕自身坐标系中的坐标。

图2给出了源屏幕端的组成示意图,如图2所示,源屏幕端110包括指令接收模块210、指令队列模块220、指令响应模块230和桌面视频流发送模块240;

其中,

指令接收模块210,用于接收所述至少一个接收端发送的控制指令,根据锁定预设条件,选定其中一个接收端,对该接收端发出的控制指令依次输出到指令队列模块220;根据解锁预设条件,结束输出;

指令接收模块210的初始状态为未加锁状态;

其中,锁定预设条件为当前为未加锁状态,且收到指令类型为按下的控制指令;

其中,解锁预设条件为当前为加锁状态,且收到指令类型为抬起的控制指令。

特殊的,当选定了接收机的指令接收模块210超过预设时间未收到指令,也会解锁;其中,所述预设时间可以自定义,例如2秒。

通常的,在选定后,后续存放在指令队列的桌面控制指令为:设备id与选定时指令相同,指令类型为“移动”的控制指令。

具体的工作过程:指令接收模块210的初始状态为未加锁状态;指令接收模块210接收从不同接收端发出的控制指令,判断是否有指令类型为“按下”的控制指令,如果有,则将该控制指令输出至指令队列模块,选定发出该控制指令的接收端,后续只接收与该控制指令设备id相同,指令类型为“移动”的控制指令,依次输出至指令队列模块;直到接收到设备id相同,指令类型为“抬起”的控制指令,将该指令输出至指令队列模块后,指令接收模块210转为未加锁状态。

指令队列模块220,是一个先进先出的存储队列,依次将所述指令接收模块210输出的控制指令保存在存储队列的尾部;

指令响应模块230,用于从所述指令队列模块的存储队列头部顺序读取控制指令,对指令依次进行响应。

桌面视频流发送模块240,获取源屏幕端的桌面数据,通过视频流通道发送到接收端,实现源屏幕端与接收端的桌面同步显示。

图3给出了接收端的组成示意图,如图3所示,接收端通过视频流通道接收源屏幕端发送视频流数据;并通过控制指令通道发送控制指令,具体包括:视频流接收模块310,坐标采集模块320和指令发送模块330;

视频流接收模块310,用于通过视频流通道接收源屏幕端发送的屏幕视频流,实现源屏幕端与接收端的桌面同步显示;

坐标采集模块320,用于采集接收端屏幕的触摸事件,发送到指令发送模块,

指令发送模块330,用于根据获取的触摸事件,包装成控制指令,通过控制指令通道发送到源屏幕端。

综上所述,本发明实施例的数据传输协作控制系统,通过建立的视频流通道,实现了源屏幕端与接收端的桌面同步显示,使用户通过接收端的屏幕即可分享源屏幕端的桌面内容,并将接收端屏幕的触摸事件或鼠标事件形成控制指令回传到源屏幕端,实现对源屏幕端的交互式操作互动;并且源屏幕端根据控制指令是否满足锁定预设条件指令,选定接收端进行控制指令接收响应,有效解决桌面同步多人同时控制导致的冲突和响应混乱;

由于源屏幕端直接发送多路屏幕视频流数据,对源屏幕端的计算能力和网络路由能力要求较高。本实施例的桌面同步多人协作控制设备适合一个源屏幕端对比较少的接收端进行通信。

实施例二

图4为本实施例提供的一种数据传输协作控制系统的组成示意图,如4所示,包括,源屏幕端410、媒体流转发服务器430、控制指令服务器440和多个接收端(420~42n),其中,源屏幕端410、媒体流转发服务器430和控制指令服务器440组成视频发送端,接收机的个数以媒体流转发服务器和控制指令服务器的计算能力和网络路由能力限制为限制。

媒体流转发服务器430建立源屏幕端410与多个接收端的视频流通道,通过视频流通道,源屏幕端410发送屏幕视频流至每一个接收端;实现源屏幕端与接收端的桌面同步显示;

控制指令服务器440建立源屏幕端410与多个接收端的控制指令通道,通过控制指令通道,使源屏幕端410获取接收端的控制指令。

源屏幕端410、媒体流转发服务器430、控制指令服务器440和多个接收端(420~42n)设置在同一个局域网下,媒体流转发服务器430和控制指令服务器440的ip地址和端口使用固定或者动态的ip地址和端口号,接收端(420~42n)和屏幕源端410分别与媒体服务器建立基于tcp或者udp的socket连接作为视频流通道;接收端(420~42n)和屏幕源端410分别与控制指令服务器440建立基于tcp或udp的socket连接作为控制指令通道。

进一步地,使用udp广播方式时,媒体流转发服务器430或控制指令服务器440把自己的ip地址和端口广播至局域网内,同一个局域网内的接收端或屏幕源端都会收到这个广播。

系统中,控制指令服务器440通过控制指令通道,分别接收至少一个接收端发出的控制指令;选定最先能满足锁定预设条件的接收端,接收该接收端的控制指令,并依次输出到源屏幕端410,直到接收到该接收端发出满足解锁预设条件的控制指令。控制指令的格式与实施例一中相同。

具体的,如图5所示,控制指令服务器440包括指令接收模块510、指令队列520和指令发送模块530;

其中,

指令接收模块510,用于接收所述至少一个接收端发送的控制指令,根据锁定预设条件,选定其中一个接收端,将该接收端发出的控制指令依次输出到指令队列模块520;根据解锁预设条件,结束输出;其中,锁定预设条件和解锁预设条件均可以选择与实施例一中的相同的预设条件;

指令队列模块520,是一个先进先出的存储队列,依次将所述指令接收模块510输出的控制指令保存在存储队列的尾部;

指令响应模块530,用于从所述指令队列模块的存储队列头部顺序读取控制指令,发送到源屏幕端410。

如图6所示,源屏幕端410包括指令接收模块610和指令响应模块620;

指令接收模块610顺序接收指令发送模块530发送的指令,输出到指令响应模块620;

指令响应模块620,依次对指令接收模块610输出的指令进行响应,完成触摸回传。

由于源屏幕端只会发送一路屏幕视频流数据,计算能力和网络路由能力都转移给了高性能媒体流转发服务器;因此,对源屏幕端的计算能力和网络路由能力没有要求,本实施例的桌面同步多人协作控制设备适合一个源屏幕端对比较多的接收端进行通信,例如,1个源屏幕端对50个接收端。

综上所述,本实施例采用媒体流转发服务器建立的视频流通道,实现了源屏幕端与接收端的桌面同步显示,使用户通过接收端的屏幕即可分享源屏幕端的桌面内容;采用控制指令服务器建立的控制指令通道,将接收端屏幕的触摸事件或鼠标事件形成控制指令回传到源屏幕端,实现对源屏幕端的交互式操作互动;并有效解决桌面同步多人同时控制导致的冲突和响应混乱;

为了解决接收端数量过多,对源屏幕端的计算能力和网络路由能力要求高的问题,本发明借助于高性能的媒体流转发服务器实现了一对多的屏幕视频流发送,借助控制指令服务器实现了多对一的控制指令接收,大大降低了对源屏幕端的计算能力和网络路由的能力要求。

实施例三

图7为本实施例提供的一种数据传输协作控制方法的流程图,如7所示,具体包括:

步骤s710、建立视频流通道;

通过视频流通道向至少一个接收端发送视频流数据;

具体的,可以采用与实施例一中相同的方法建立视频流通道。

步骤s720、建立控制指令通道;

具体的,可以采用与实施例一中相同的方法建立控制指令通道。

步骤s730、通过控制指令通道分别接收至少一个接收端发出的控制指令;

接收端发出的控制指令可以由接收端根据获取到的自身桌面触摸事件,按照一定的格式包装而成;也可以由接收端鼠标点击屏幕上的桌面坐标所产生的鼠标事件,按照一定的格式包装而成。

具体的,接收端发出的控制指令格式定义包括:{设备id,指令类型,坐标{x,y}};其中,

设备id是一个随机uuid,代表唯一的一个接收端;

指令类型包括:按下,移动,抬起;

坐标{x,y}是一个二维坐标。

例如,在一个接收端屏幕上产生一个按下的触摸事件,包装成桌面控制指令封装如下{xxjjduududu,按下,{300,200}};其中,“xxjjduududu”为这个接收端的设备id,“按下”为指令的类型,{300,200}为在接收端屏幕按下的具体坐标;

其中,坐标可以采用接收端的屏幕坐标。

特殊的,为了避免由于接收端与源屏幕端屏幕尺寸不一致和坐标空间不一致,引起的坐标位置偏差,可以选择采取统一坐标空间坐标;

具体的,可以采用与实施例一中相同的方法统一坐标空间。

步骤s740、根据锁定预设条件,选定其中一个接收端,对该接收端发出的控制指令依次进行响应;根据解锁预设条件,结束响应;

具体包括:

步骤s741、选定发出满足锁定预设条件指令的接收端,将该接收端持续发出的控制指令,顺序存放至指令队列尾部;

初始状态为未加锁状态;从多个接收端发出的控制指令中,判断是否有满足锁定预设条件的桌面控制指令,如果有,则将该桌面控制指令存放至指令队列尾部,选定发出该桌面控制指令的接收端,后续只接收该接收端发送的桌面控制指令,依次放至指令队列尾部;

其中,锁定预设条件为当前为未加锁状态,且收到指令类型为“按下”的控制指令;

步骤s742、循环从指令队列头部获取桌面控制指令,对选定的接收端发送桌面控制指令进行响应;

通常的,指令队列在选定后,即接收到指令类型为“按下”的指令后,后续存放在指令队列的桌面控制指令为:设备id与选定时指令相同,指令类型为“移动”的桌面控制指令。

步骤s743、直到接收并响应该接收端发出满足解锁预设条件的控制指令后,转入未加锁状态;

其中,解锁预设条件为当前为加锁状态,且收到指令类型为“抬起”的控制指令。

特殊的,当超过预设时间未收到指令,转入未加锁状态,重新选定发出满足锁定预设条件指令的接收端;其中,所述预设时间可以自定义,例如2秒。

本实施例中的方法,在接收端数量少于源屏幕端的计算能力和网络路由能力时,由源屏幕端建立视频流通道和控制指令通道,选定最先能满足锁定预设条件的接收端,接收该接收端的控制指令,并依次进行响应,直到接收到该接收端发出满足解锁预设条件的控制指令;

在接收端数量多于源屏幕端的计算能力和网络路由能力时,由媒体流转发服务器建立视频流通道,由控制指令服务器建立控制指令通道;由控制指令服务器通过控制指令通道,分别接收至少一个接收端发出的控制指令,选定最先能满足锁定预设条件的接收端,接收该接收端的控制指令,并依次输出到所述源屏幕端,直到接收到该接收端发出满足解锁预设条件的控制指令。

综上所述,本发明实施例的数据传输协作控制方法,通过建立的视频流通道,实现了源屏幕端与接收端的桌面同步显示,使用户通过接收端的屏幕即可分享源屏幕端的桌面内容,并将接收端屏幕的触摸事件或鼠标事件形成控制指令回传到源屏幕端,实现对源屏幕端的交互式操作互动;并且源屏幕端根据控制指令是否满足锁定预设条件指令,选定接收端进行控制指令接收响应,有效解决桌面同步多人同时控制导致的冲突和响应混乱。

实施例四

如图8所示,本实施例提供了一种智能交互设备,包括:视频流通道模块810、控制指令通道模块820、控制指令接收模块830和控制指令选定响应模块840;

其中,视频流通道建立模块810,与至少一个接收端建立视频流通道,通过视频流通道向接收端发送视频流数据;

具体的,视频流通道可与实施例一中的视频流通道相同。

控制指令通道建立模块820,与至少一个接收端建立控制指令通道;

具体的,控制指令通道可与实施例一中的控制指令通道相同。

控制指令接收模块830,接收至少一个接收端发送的控制指令;

具体的,接收端发出的控制指令可以由接收端根据获取到的自身桌面触摸事件,按照一定的格式包装而成;也可以由接收端鼠标点击屏幕上的桌面坐标所产生的鼠标事件,按照一定的格式包装而成。

具体的接收端控制指令格式与实施例一中的指令格式相同。

控制指令选定响应模块840,用于根据锁定预设条件,选定其中一个接收端,对该接收端发出的控制指令依次进行响应;根据解锁预设条件,结束响应;

进一步地,指令选定响应模块840具体包括选定模块841、存储模块842和响应模块843。

选定模块841,用于选定发出控制指令满足锁定预设条件的接收端,将该接收端持续发出的控制指令,顺序输出到存储模块842;

指令选定模块841的初始状态为未加锁状态;从至少一个接收端发出的控制指令中,判断是否有满足锁定预设条件的桌面控制指令,如果有,则将该桌面控制指令输出至存储模块842,选定发出该桌面控制指令的接收端,后续只接收该接收端发送的控制指令,依次输出至存储模块842;直到接收到的控制指令满足解锁预设条件后,转入未加锁状态。

其中,锁定预设条件为当前为未加锁状态,且收到指令类型为按下的控制指令;

其中,解锁预设条件为当前为加锁状态,且收到指令类型为抬起的控制指令。

特殊的,当超过预设时间未收到指令,也转入未加锁状态,重新选定发出满足锁定预设条件指令的接收端;其中,所述预设时间可以自定义,例如2秒。

通常的,指令队列在选定后,即接收到指令类型为“按下”的指令后,后续存放在指令队列的桌面控制指令为:设备id与选定时指令相同,指令类型为“移动”的桌面控制指令。

存储模块842包括一个先进先出存储队列,依次将选定模块841输出的控制指令保存在存储队列的尾部。

响应模块843循环从存储模块842的存储队列的头部获取控制指令,并对控制指令进行响应。

与本实施例交互智能设备进行连接的接收端与实施例一中的接收端相同。

综上所述,本发明实施例的智能交互设备,通过建立的视频流通道,实现了源屏幕端与接收端的桌面同步显示,使用户通过接收端的屏幕即可分享源屏幕端的桌面内容,并将接收端屏幕的触摸事件或鼠标事件形成控制指令回传到交互智能设备,实现了交互式操作互动;并且交互智能设备根据控制指令是否满足锁定预设条件指令,选定接收端进行控制指令接收响应,有效解决桌面同步多人同时控制导致的冲突和响应混乱。

实施例五

本实施例提供了一种计算机程序产品,当所述计算机程序产品中的指令处理器执行时,执行上述任一实施例的数据传输协作控制方法。

本发明实施例四还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行实施例三中的任一技术方案。

当然,本发明实施例所提供的数据传输协作控制方法。其计算机可执行指令不限于如上所述的数据传输协作控制方法,还可以执行本发明任意实施例所提供的数据传输协作控制方法中的相关操作,具备相应的功能和有益效果。

通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、闪存(flash)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明实施例所述的方法。

值得注意的是,上述采样点有效性判断的设备的实施例中,所包括的各个模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。

本领域技术人员可以理解,实现上述实施例方法的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于计算机可读存储介质中。其中,所述计算机可读存储介质为磁盘、光盘、只读存储记忆体或随机存储记忆体等。

以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1