发明内容
本发明所要解决的技术问题在于提供一种远程多媒体控制的方法,旨在解决电子游戏需要专门的控制终端才能使用,不具有通用性,以及现有技术的计算机的控制一般需要用户在其周围通过键盘或者鼠标控制,使得用户无法获得好的体验的问题。
第一方面,本发明提供一种远程多媒体控制的方法,所述方法包括:
控制终端接收被控制终端通过远程控制协议RCP数据报文发送的包含被控制终端的多媒体信息的响应消息;
控制终端播放所述被控制终端的多媒体信息;
控制终端接收用户根据播放的所述被控制终端的多媒体信息,通过输入设备对控制终端的操作指令;
控制终端将所述操作指令转化为远程操作指令,所述远程操作指令包括所要控制的输入设备类型及输入设备数据;
控制终端通过RCP数据报文发送包含所述远程操作指令的请求消息给被控制终端,以由被控制终端将所述远程操作指令中的输入设备数据提供给与所述远程操作指令中的所要控制的输入设备类型对应的虚拟设备,再由所述虚拟设备提供给上层应用,被控制终端的上层应用根据所述输入设备数据对被控制终端进行操作,得到操作结果,被控制终端通过RCP数据报文向控制终端发送包含操作结果的响应消息;
控制终端接收被控制终端通过RCP数据报文发送的包含操作结果的响应消息;
控制终端根据所述响应消息中的操作结果进行多媒体信息的播放。
第二方面,本发明提供一种控制终端,所述控制终端包括RCP数据报文发送模块、RCP数据报文接收模块、播放模块和处理器,其中,
所述RCP数据报文接收模块接收被控制终端通过远程控制协议RCP数据报文发送的包含被控制终端的多媒体信息的响应消息;
所述播放模块播放所述被控制终端的多媒体信息;
所述处理器接收用户根据播放的所述被控制终端的多媒体信息,通过输入设备对控制终端的操作指令;
所述处理器将所述操作指令转化为远程操作指令,所述远程操作指令包括所要控制的输入设备类型及输入设备数据;
所述RCP数据报文发送模块通过RCP数据报文发送包含所述远程操作指令的请求消息给被控制终端,以由被控制终端将所述远程操作指令中的输入设备数据提供给与所述远程操作指令中的所要控制的输入设备类型对应的虚拟设备,再由所述虚拟设备提供给上层应用,被控制终端的上层应用根据所述输入设备数据对被控制终端进行操作,得到操作结果,被控制终端通过RCP数据报文向控制终端发送包含操作结果的响应消息;
所述RCP数据报文接收模块接收被控制终端通过RCP数据报文发送的包含操作结果的响应消息;
所述播放模块根据所述响应消息中的操作结果进行多媒体信息的播放。
第三方面,本发明提供一种远程多媒体控制的方法,所述方法包括:
被控制终端生成与多媒体设备对应的虚拟设备;
被控制终端获取多媒体信息;
被控制终端通过RCP数据报文将包含被控制终端的多媒体信息的响应消息发送给控制终端,以由控制终端发送包含远程操作指令的请求消息给被控制终端,所述远程操作指令包括所要控制的输入设备类型及输入设备数据;
被控制终端接收控制终端通过RCP数据报文发送的包含所述远程操作指令的请求消息;
被控制终端将所述远程操作指令中的输入设备数据提供给与所述远程操作指令中的所要控制的输入设备类型对应的虚拟设备,再由所述虚拟设备提供给上层应用;
被控制终端的上层应用根据所述输入设备数据对被控制终端进行操作,得到操作结果;
被控制终端通过RCP数据报文向控制终端发送包含操作结果的响应消息,以由控制终端根据所述响应消息中的操作结果进行多媒体信息的播放。
第四方面,本发明提供一种被控制终端,所述被控制终端包括RCP数据报文发送模块、RCP数据报文接收模块和处理器,其中,
所述处理器生成与多媒体设备对应的虚拟设备;
所述处理器获取多媒体信息;
所述RCP数据报文发送模块通过RCP数据报文将包含被控制终端的多媒体信息的响应消息发送给控制终端,以由控制终端发送包含远程操作指令的请求消息给被控制终端,所述远程操作指令包括所要控制的输入设备类型及输入设备数据;
所述RCP数据报文接收模块接收控制终端通过RCP数据报文发送的包含所述远程操作指令的请求消息;
所述处理器将所述远程操作指令中的输入设备数据提供给与所述远程操作指令中的所要控制的输入设备类型对应的虚拟设备,再由所述虚拟设备提供给上层应用;上层应用根据所述输入设备数据对被控制终端进行操作,得到操作结果;
所述RCP数据报文发送模块通过RCP数据报文向控制终端发送包含操作结果的响应消息,以由控制终端根据所述响应消息中的操作结果进行多媒体信息的播放。
在本发明实施例中,由于被控制终端生成与多媒体设备对应的虚拟设备,被控制终端通过RCP数据报文将包含被控制终端的多媒体信息的响应消息发送给控制终端,控制终端播放所述被控制终端的多媒体信息,控制终端接收用户根据播放的所述被控制终端的多媒体信息,通过输入设备对控制终端的操作指令,控制终端将所述操作指令转化为远程操作指令发送给被控制终端,所述远程操作指令包括所要控制的输入设备类型及输入设备数据,被控制终端将所述远程操作指令中的输入设备数据提供给与所述远程操作指令中的所要控制的输入设备类型对应的虚拟设备,再由所述虚拟设备提供给上层应用,被控制终端的上层应用根据所述输入设备数据对被控制终端进行操作,得到操作结果,然后将操作结果返回给控制终端,控制终端根据所述响应消息中的操作结果进行多媒体信息的播放。因此使不具备多媒体设备的被控制终端能通过控制终端的输入设备进行控制,且能使被控制终端的多媒体信息在控制终端进行播放,使得用户获得直接面对被控制终端的感受,获得良好的体验,且该远程多媒体控制的方法具有通用性,与被控制终端的上层应用无关,且接口统一,方便调用,具有良好的扩展性,适应控制终端各种可能增加的设备。
具体实施方式
为了使本发明的目的、技术方案及有益效果更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
为了说明本发明所述的技术方案,下面通过具体实施例来进行说明。
本发明具体实施例涉及控制终端和被控制终端,其中控制终端具有待映射多媒体设备,用于将待映射多媒体设备生成的设备数据发送给被控制终端;被控制终端用于将控制终端的待映射多媒体设备映射到被控制终端中。本发明具体实施例中,控制终端可以是移动终端,被控制终端可以是电视。
实施例一:
请参阅图1,本发明实施例一提供的远程多媒体控制的方法包括以下步骤:
S101、控制终端通过远程控制协议(Remote Control Protocol,RCP)数据报文发送远程多媒体控制请求消息给被控制终端,以请求获得被控制终端的系统参数;
在本发明实施例一中,被控制终端的系统参数包括屏幕大小、操作系统的版本号、图形处理器的参数等。
S102、被控制终端接收控制终端通过RCP数据报文发送的远程多媒体控制请求消息后,被控制终端生成与多媒体设备对应的虚拟设备;
在本发明实施例一中,多媒体设备包括触摸屏、键盘、音频设备、振动器等。多媒体设备对应的虚拟设备包括虚拟触摸屏、虚拟键盘、虚拟音频设备、虚拟振动器等。
在本发明实施例一中,S102可以是S101与S105之间的任意步骤。
S103、被控制终端接收控制终端通过RCP数据报文发送的远程多媒体控制请求消息后,被控制终端通过RCP数据报文将包含被控制终端的系统参数的响应消息发送给控制终端;
S104、控制终端接收被控制终端通过RCP数据报文发送的所述包含被控制终端的系统参数的响应消息后,控制终端根据被控制终端的系统参数对控制终端进行初始化;
S105、控制终端通过RCP数据报文发送远程控制请求消息给被控制终端,以请求获得被控制终端的多媒体信息;
在本发明实施例一中,多媒体信息包括屏幕内容信息,还包括声音信息和/或振动信息等。
S106、被控制终端接收控制终端通过RCP数据报文发送的远程控制请求消息后,被控制终端获取多媒体信息;
S107、被控制终端通过RCP数据报文将包含被控制终端的多媒体信息的响应消息发送给控制终端;
S108、控制终端接收被控制终端通过RCP数据报文发送的所述包含被控制终端的多媒体信息的响应消息后,在控制终端播放所述被控制终端的多媒体信息;
在本发明实施例一中,执行了S105之后,S106、S107和S108是实时进行的步骤,以使控制终端能实时播放被控制终端的多媒体信息发。
S109、控制终端接收用户根据播放的所述被控制终端的多媒体信息,通过输入设备对控制终端的操作指令;
在本发明实施例一中,控制终端的输入设备包括触摸屏、键盘、音频设备等。对控制终端的操作指令包括对触摸屏的点击、拖动等操作;通过音频设备输入音频操作;通过键盘进行输入操作;
S110、控制终端将所述操作指令转化为远程操作指令,所述远程操作指令包括所要控制的输入设备类型及输入设备数据;
在本发明实施例一中,如果控制终端想打开被控制终端屏幕上的一个应用,则用户就会点击控制终端,此时的远程操作指令就包括所要控制的输入设备类型(即屏幕)和输入设备数据(即点击的屏幕位置和点击的动作,是单击还是双击)。
S111、控制终端通过RCP数据报文发送包含所述远程操作指令的请求消息给被控制终端;
S112、被控制终端接收控制终端通过RCP数据报文发送的包含所述远程操作指令的请求消息后,被控制终端将所述远程操作指令中的输入设备数据提供给与所述远程操作指令中的所要控制的输入设备类型对应的虚拟设备,再由所述虚拟设备提供给上层应用;
S113、被控制终端的上层应用根据所述输入设备数据对被控制终端进行操作,得到操作结果;
S114、被控制终端通过RCP数据报文向控制终端发送包含操作结果的响应消息。
在本发明实施例一中,操作结果包括屏幕内容信息,还包括声音信息和/或振动信息等多媒体信息。
S115、控制终端接收被控制终端通过RCP数据报文发送的包含操作结果的响应消息,控制终端根据所述响应消息中的操作结果进行多媒体信息的播放,然后重复执行S109至S115,直至控制终端结束对被控制终端的控制。
在本发明实施例一中,RCP数据报文包括RCP报头和RCP数据,RCP报头包括报文类型、命令类型和数据长度。
在本发明实施例一中,S115之后,所述方法还可以包括以下步骤:
当被控制终端的上层应用使用完虚拟设备后,被控制终端注销所述虚拟设备;
被控制终端通过RCP数据报文向控制终端发送注销设备的请求消息;
控制终端接收被控制终端通过RCP数据报文发送的所述注销设备的请求消息后,注销所支持的设备向被控制终端映射,并通过RCP数据报文向被控制终端返回注销结果的响应消息。
在本发明实施例一中,由于被控制终端生成与多媒体设备对应的虚拟设备,被控制终端通过RCP数据报文将包含被控制终端的多媒体信息的响应消息发送给控制终端,控制终端播放所述被控制终端的多媒体信息,控制终端接收用户根据播放的所述被控制终端的多媒体信息,通过输入设备对控制终端的操作指令,控制终端将所述操作指令转化为远程操作指令发送给被控制终端,所述远程操作指令包括所要控制的输入设备类型及输入设备数据,被控制终端将所述远程操作指令中的输入设备数据提供给与所述远程操作指令中的所要控制的输入设备类型对应的虚拟设备,再由所述虚拟设备提供给上层应用,被控制终端的上层应用根据所述输入设备数据对被控制终端进行操作,得到操作结果,然后将操作结果返回给控制终端,控制终端根据所述响应消息中的操作结果进行多媒体信息的播放。因此使不具备多媒体设备的被控制终端能通过控制终端的输入设备进行控制,且能使被控制终端的多媒体信息在控制终端进行播放,使得用户获得直接面对被控制终端的感受,获得良好的体验,且该远程多媒体控制的方法具有通用性,与被控制终端的上层应用无关,且接口统一,方便调用,具有良好的扩展性,适应控制终端各种可能增加的设备。
实施例二:
请参阅图2,本发明实施例二提供的远程多媒体控制的方法是在本发明实施例一提供的远程多媒体控制的方法中的S101前增加以下步骤:
S201、控制终端通过RCP数据报文向全局域网的被控制终端发送广播请求消息,所述广播请求消息用于查找合适的被控制终端;
S202、被控制终端接收控制终端通过RCP数据报文发送的所述广播请求消息后,通过RCP数据报文向控制终端发送响应消息;
S203、控制终端接收被控制终端通过RCP数据报文发送的响应消息后,通过RCP数据报文向被控制终端发送认证请求信息,请求控制连接;
S204、被控制终端接收控制终端通过RCP数据报文发送的认证请求信息后,对所述认证请求信息进行认证,认证成功后通过RCP数据报文向控制终端发送响应消息。
在本发明实施例二中,S203具体为:
控制终端接收被控制终端通过RCP数据报文发送的响应消息后,随机生成第一数据X,使用第一共享密钥Ks对第一数据X进行加密,将加密之后的第一数据X和控制终端的唯一标识符通过RCP数据报文向被控制终端发送认证请求信息,所述第一共享密钥Ks是控制终端和被控制终端共享的密钥;所述认证请求信息中的报文类型是请求报文,命令类型是认证命令,RCP数据部分前4字节为控制终端的唯一标识符,余下部分为共享密钥。
在本发明实施例二中,S204具体为:
被控制终端接收控制终端通过RCP数据报文发送的认证请求信息后,使用第一共享密钥Ks对加密之后的第一数据X进行解密得到第一数据X,然后使用第一共享密钥Ks对第一数据X+D进行加密,其中D为控制终端和被控制终端约定的固定值;同时,随机生成第二数据Y,使用第一共享密钥Ks对第二数据Y进行加密,将加密之后的第二数据Y、加密之后的第一数据X+D和被控制终端的唯一标识符通过RCP数据报文向控制终端发送响应消息;所述响应消息中的报文类型是响应报文,命令类型是认证命令,RCP数据部分前4字节为被控制终端的唯一标识符,后4字节为加密之后的第一数据X+D,最后4字节为加密之后的第二数据Y。
在本发明实施例二中,S204之后,所述方法还包括以下步骤:
S205、控制终端接收被控制终端通过RCP数据报文发送的响应消息后,使用第一共享密钥Ks对加密之后的第二数据Y和加密之后的第一数据X+D进行解密,计算出第一数据X+第二数据Y的值,然后再使用第一共享密钥Ks对计算的结果进行加密;
S206、控制终端将加密后的计算的结果通过RCP数据报文向被控制终端发送请求消息;所述请求信息中的报文类型是请求报文,命令类型是认证命令,RCP数据部分前4字节为控制终端的唯一标识符,后4字节为加密后的第一数据X+第二数据Y的值。
S207、被控制终端接收控制终端通过RCP数据报文发送的请求消息后,使用第一共享密钥Ks对数据进行解密,然后验证计算结果是否正确,若计算结果正确,则随机生成第二共享密钥Ka,并使用第一共享密钥Ks对第二共享密钥Ka进行加密;
S208、被控制终端将加密之后的第二共享密钥Ka和被控制终端的唯一标识符通过RCP数据报文向控制终端发送响应消息,其中,所述第二共享密钥Ka是控制终端和被控制终端共享的用于本次对话的密钥;所述响应消息中的报文类型是响应报文,命令类型是认证命令,RCP数据部分前4字节为被控制终端的唯一标识符,后4字节为加密的第二共享密钥Ka。
在S208之后,所有RCP数据报文的RCP数据部分都经过第二共享密钥Ka进行加密。
在本发明实施例二中,在本发明实施例一提供的远程多媒体控制的方法中的所述控制终端接收被控制终端通过RCP数据报文发送的所述注销设备的请求消息后,注销所支持的设备向被控制终端映射,并通过RCP数据报文向被控制终端返回注销结果的响应消息的步骤后还增加以下步骤:
S209、控制终端完成对被控制终端的操作后,控制终端通过RCP数据报文向被控制终端发送退出请求信息;
S2010:被控制终端接收所述退出请求信息后,清理相应的资源,并通过RCP数据报文向控制终端发送响应消息。
在本发明实施例二中,RCP数据报文的具体格式可以如表1所示:
表1
其中,RCP报头格式可以如表2所示:
表2
各字段的意义如下:
Ver:RCP的版本;
Type:报文类型,可分为2类,包括:
A、请求报文,宏定义为:REQUEST;
B、响应报文,宏定义为:REPLY;
Cmd:命令类型,可分为4类,包括:
A、认证命令
B、设备枚举命令
C、设备参数命令
D、设备数据命令
ErrorCode:错误类型,可分为2类,包括:
A、命令执行成功,宏定义为:OK;
B、命令执行错误,宏定义为:ERROR;
Length:数据长度,不包括报头;
Digest:对整个数据报文计算校验和。
其中,RCP数据报文的报文分为四种类型:
TYPE_AUTH:认证报文。
当进行认证时,数据字段的第一个字节将作为AUTH_PHASE,标记当前所进行的认证阶段。后续字节根据认证交互阶段的描述,用对应阶段的数据进行填充。
TYPE_DEV_LIST:设备枚举报文。
当进行设备枚举时,返回的设备列表包在数据字段依次列出每一个设备。每两个设备信息之间由字符’\0’分隔。
TYPE_DEV_PARA:设备参数报文。
当进行设备参数请求时,返回的数据报文在数据段第一个字节标明设备类型,在其后的字节按照指定的设备参数数据结构填充设备参数。
TYPE_DEV_DATA:设备数据报文。
当返回设备数据时,返回的数据报文在数据段第一个字节标明设备类型,在其后的字节按照指定的设备数据数据结构填充。
RCP数据字段:
数据长度:
RCP通过报头的Length字段来确定数据字段的长度,同时,在每个数据的尾部都会填充不多于8个字节的’\0’字符,以确保数据长度为8的整数倍。
2.数据校验:
在数据段的内容全部准备完毕之后,将会把报头的Digest字段置为全0,然后对整个数据报文进行校验,算法与IP校验和一致。
3.数据格式:
若无特殊说明,所有数据格式都是二进制数据,直接对应各项数据结构。各项数据结构的字节序均采用网络字节序。
4.数据加密:
在认证阶段,RCP的数据字段是明文传输的。但在认证成功之后,RCP的所有数据交互将使用认证协商出来的密钥进行加密,以确保安全。
在本发明实施例二中,由于在认证成功之后,所有RCP数据报文的RCP数据部分都经过协商出来的第二共享密钥Ka进行加密,因此可以防止网络侦听、重放攻击、口令字猜测、跟踪地址攻击等,从而保证了控制终端和被控制终端之间的通信安全。
实施例三:
请参阅图3,本发明实施例三提供的控制终端包括:RCP数据报文发送模块11、RCP数据报文接收模块12、播放模块13和处理器14,其中,
所述RCP数据报文接收模块12接收被控制终端通过远程控制协议RCP数据报文发送的包含被控制终端的多媒体信息的响应消息;
所述播放模块13播放所述被控制终端的多媒体信息;
所述处理器14接收用户根据播放的所述被控制终端的多媒体信息,通过输入设备对控制终端的操作指令;
所述处理器14将所述操作指令转化为远程操作指令,所述远程操作指令包括所要控制的输入设备类型及输入设备数据;
所述RCP数据报文发送模块11通过RCP数据报文发送包含所述远程操作指令的请求消息给被控制终端,以由被控制终端将所述远程操作指令中的输入设备数据提供给与所述远程操作指令中的所要控制的输入设备类型对应的虚拟设备,再由所述虚拟设备提供给上层应用,被控制终端的上层应用根据所述输入设备数据对被控制终端进行操作,得到操作结果,被控制终端通过RCP数据报文向控制终端发送包含操作结果的响应消息;
所述RCP数据报文接收模块12接收被控制终端通过RCP数据报文发送的包含操作结果的响应消息;
所述播放模块14根据所述响应消息中的操作结果进行多媒体信息的播放。
本发明实施例三中,所述RCP数据报文接收模块12接收被控制终端通过远程控制协议RCP数据报文发送的包含被控制终端的多媒体信息的响应消息之前,还包括:
所述RCP数据报文发送模块11通过RCP数据报文发送远程多媒体控制请求消息给被控制终端,以请求获得被控制终端的系统参数;
所述RCP数据报文接收模块12接收被控制终端通过RCP数据报文发送的所述包含被控制终端的系统参数的响应消息;
所述处理器14根据被控制终端的系统参数对控制终端进行初始化;
所述RCP数据报文发送模块11通过RCP数据报文发送远程控制请求消息给被控制终端,以请求获得被控制终端的多媒体信息。
本发明实施例三中,所述播放模块14根据所述响应消息中的操作结果进行多媒体信息的播放之后,还包括:
所述RCP数据报文接收模块12接收被控制终端通过RCP数据报文发送的注销设备的请求消息;
所述处理器14注销所支持的设备向被控制终端映射;
所述RCP数据报文发送模块11通过RCP数据报文向被控制终端返回注销结果的响应消息。
本发明实施例三中,所述RCP数据报文发送模块11通过RCP数据报文发送远程多媒体控制请求消息给被控制终端之前,还包括:
所述RCP数据报文发送模块11通过RCP数据报文向全局域网的被控制终端发送广播请求消息,所述广播请求消息用于查找合适的被控制终端;
所述RCP数据报文接收模块12接收被控制终端通过RCP数据报文发送的响应消息;
所述RCP数据报文发送模块11通过RCP数据报文向被控制终端发送认证请求信息,请求控制连接,以由被控制终端对所述认证请求信息进行认证,认证成功后通过RCP数据报文向控制终端发送响应消息。
实施例四:
请参阅图4,本发明实施例四提供的被控制终端包括:RCP数据报文发送模块21、RCP数据报文接收模块22和处理器23,其中,
所述处理器23生成与多媒体设备对应的虚拟设备;
所述处理器23获取多媒体信息;
所述RCP数据报文发送模块21通过RCP数据报文将包含被控制终端的多媒体信息的响应消息发送给控制终端,以由控制终端发送包含远程操作指令的请求消息给被控制终端,所述远程操作指令包括所要控制的输入设备类型及输入设备数据;
所述RCP数据报文接收模块22接收控制终端通过RCP数据报文发送的包含所述远程操作指令的请求消息;
所述处理器23将所述远程操作指令中的输入设备数据提供给与所述远程操作指令中的所要控制的输入设备类型对应的虚拟设备,再由所述虚拟设备提供给上层应用;上层应用根据所述输入设备数据对被控制终端进行操作,得到操作结果;
所述RCP数据报文发送模块21通过RCP数据报文向控制终端发送包含操作结果的响应消息,以由控制终端根据所述响应消息中的操作结果进行多媒体信息的播放。
本发明实施例四中,所述处理器23生成与多媒体设备对应的虚拟设备之前,还包括:
所述RCP数据报文接收模块22接收控制终端通过RCP数据报文发送的远程多媒体控制请求消息;
所述处理器23获取多媒体信息之前,还包括:
所述RCP数据报文发送模块21通过RCP数据报文将包含被控制终端的系统参数的响应消息发送给控制终端;
所述RCP数据报文接收模块22接收控制终端通过RCP数据报文发送的远程控制请求消息。
本发明实施例四中,所述RCP数据报文发送模块21通过RCP数据报文向控制终端发送包含操作结果的响应消息,以由控制终端根据所述响应消息中的操作结果进行多媒体信息的播放之后,还包括:
当上层应用使用完虚拟设备后,所述处理器23注销所述虚拟设备;
所述RCP数据报文发送模块21通过RCP数据报文向控制终端发送注销设备的请求消息,以由控制终端注销所支持的设备向被控制终端映射。
本发明实施例四中,所述RCP数据报文接收模块22接收控制终端通过RCP数据报文发送的远程多媒体控制请求消息之前,还包括:
所述RCP数据报文接收模块22接收控制终端通过RCP数据报文发送的用于查找合适的被控制终端广播请求消息;
所述RCP数据报文发送模块21通过RCP数据报文向控制终端发送响应消息;
所述RCP数据报文接收模块22接收控制终端通过RCP数据报文发送的认证请求信息;
所述处理器23对所述认证请求信息进行认证,认证成功后通过RCP数据报文向控制终端发送响应消息。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以存储于一计算机可读取存储介质中,所述的存储介质,如ROM/RAM、磁盘、光盘等。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。