基于移动终端的控制信息合成方法及受控终端和移动终端与流程

文档序号:13476616阅读:215来源:国知局
基于移动终端的控制信息合成方法及受控终端和移动终端与流程

本发明涉及投屏控制技术领域,特别涉及基于移动终端的控制信息合成方法及受控终端和移动终端。



背景技术:

随着数字电视技术和互联网技术的不断发展,智能机顶盒成为了家庭和行业应用中越来越重要的设备之一,一方面,它通过接收有线电缆、卫星天线、宽带网络以及地面广播的模拟信号或数字信号,将多媒体内容呈现在屏幕上,另一方面,它还可以通过安卓平台进行各种应用的扩展,为用户提供更多类型的服务功能,增强用户体验。

虽然智能机顶盒上可运行的应用或游戏越来越多,但是因机顶盒投放游戏的显示器本身硬件并不支持直接触摸可对游戏进行控制,因此目前机顶盒还是通过遥控器、游戏手柄等传统设备进行操控,这种方式存在以下缺点:一、通常需要先对按键进行功能映射,设置过程繁琐;二、在操作过程中,用户需要同时兼顾操作按键和屏幕内容,容易出错;三,随着安卓应用特别是游戏应用的复杂化,无法应用手势识别、重力感应、陀螺仪、加速度计等传感器数据,大大降低了用户体验。且机顶盒投放游戏的显示器本身硬件也不支持多点触摸对游戏进行控制,大大降低用户体验。

随着手机、平板等移动终端设备的不断普及,利用各类移动终端设备对智能机顶盒进行操控,逐渐成为一种趋势。

其中申请号为201110295717.x的中国专利,公开了一种机顶盒控制方法,该方法通过建立机顶盒在某一工作状态下的操作动作与移动终端的交互界面内输入动作之间的映射关系,实现通过移动终端操控机顶盒的目的。该方法缺点有:一,通过配置方式实现用户控制指令与机顶盒操作动作的映射关系,不但复杂繁琐,而且无法穷举所有用户可能的输入的控制指令;二,移动终端的屏幕内容与机顶盒屏幕内容不一致,用户无法直观地在移动终端上进行操控;三,这种方式在同一时间内只允许一台移动终端进行操作,无法实现机顶盒同时与多个移动终端之间的同时交互,使用方式不够灵活。



技术实现要素:

为此,需要提供一种基于移动终端的控制信息合成方法及受控终端和移动终端,用以解决同一时间内只允许一台移动终端进行操作,无法实现多个移动终端同时对受控终端进行操作控制实现多点触摸的问题。

为实现上述目的,发明人提供了一种基于移动终端的控制信息合成方法,具体的技术方案如下:

一种基于移动终端的控制信息合成方法,包括以下步骤:受控终端与两台以上的移动终端建立通信连接;移动终端获取输入的控制信息,并实时发送给受控终端;受控终端接收所述控制信息,并将接收到的控制信息实时合成总控制信息;受控终端根据所述总控制信息进行处理。

进一步的,在所述“受控终端与两台以上的移动终端建立通信连接”之后,还包括:受控终端向移动终端实时发送屏幕内容对应的视频流和/或音频数据流;移动终端接收所述视频流和/或音频数据流,并实时进行播放。

进一步的,所述“移动终端获取输入的控制信息,并实时发送给受控终端”包括以下步骤:移动终端获取输入的控制信息,并将控制信息与设备标识码进行封装,并实时发送给受控终端;受控终端中对应每个移动终端设有一消息缓冲队列;受控终端将封装后的控制信息按时间顺序逐一送入对应移动终端的消息缓冲队列中。

进一步的,所述“受控终端接收所述控制信息,并将接收到的控制信息实时合成总控制信息”包括以下步骤:受控终端中预先设有一当前消息队列和存活消息队列;受控终端接收从所有移动终端的消息缓冲队列中获取的控制信息,并按照时间顺序送入当前消息队列;受控终端还设有一判断合成模块,判断合成模块依次从当前消息队列中获取控制信息;判断合成模块将从当前消息队列所提取的控制信息与存活消息队列进行比较,判断所提取的控制信息是否为错误信息或为未更新于存活消息队列中的新增信息;滤除控制信息中的错误信息,并将新增信息更新至存活消息队列中,以及将滤除后剩余的控制信息实时合成总控制信息。

进一步的,还包括步骤:判断存活消息队列中各移动终端的控制信息是否超过预设时间未更新,若是,将所述控制信息从存活消息队列中移除。

进一步的,所述“判断合成模块将从当前消息队列所提取的控制信息与存活消息队列进行比较,判断所提取的控制信息是否为错误信息或为未更新于存活消息队列中的新增信息,滤除控制信息中的错误信息,并将新增信息更新至存活消息队列中,以及将滤除后剩余的控制信息实时合成总控制信息”还包括:当前消息队列从所有的消息缓冲队列获取当前时刻的控制信息后,判断合成模块从当前消息队列依次获取当前时刻的控制信息,并判断当前获取的控制信息类型;若当前获取的控制信息为按下消息,则继续判断存活消息队列中是否有对应事件的按下消息,若有,则将该按下消息舍弃;若没有,则将对应事件的按下消息存入存活消息队列,遍历存活消息队列中的所有按下消息,合成存活消息队列中的所有按下消息并发送给系统框架层;若当前获取的控制信息为弹起消息,则判断对应事件在存活消息队列中是否存在按下消息或移动消息,若无,则舍弃该弹起消息;若有,将对应事件的按下消息或移动消息更新为弹起消息;待遍历存活消息队列中的所有弹起消息后,合并存活消息队列中的所有弹起消息并发给系统框架层;待发送给系统框架层后,将弹起消息从存活消息队列删除;若当前获取的控制信息为取消消息,则判断对应事件在存活消息队列中是否存在按下消息或移动消息,若无,则舍弃该取消消息;若有,将对应事件的按下消息或移动消息更新为取消消息,待遍历存活消息队列中的所有取消消息后,合并存活消息队列中的所有取消消息并发给系统框架层;待发送给系统框架层后,将取消消息从存活消息队列删除。

进一步的,所述移动终端带触控屏时,所述“判断合成模块将从当前消息队列所提取的控制信息与存活消息队列进行比较,判断所提取的控制信息是否为错误信息或为未更新于存活消息队列中的新增信息,滤除控制信息中的错误信息,并将新增信息更新至存活消息队列中,以及将滤除后剩余的控制信息实时合成总控制信息”还包括:当前消息队列从所有的消息缓冲队列获取当前时刻的控制信息后,判断合成模块从当前消息队列依次获取当前时刻的控制信息,并判断当前获取的控制信息类型;若当前获取的控制信息为移动消息,则判断对应事件在存活消息队列中是否存在按下消息或移动消息,若无,则舍弃该移动消息;若有,则更新对应事件的x、y坐标,并将对应事件的按下消息更新为移动消息;遍历存活消息队列中的所有移动消息,合成存活消息队列中的所有移动消息并发送给系统框架层。

为实现上述目的,发明人还提供了一种受控终端,具体的技术方案如下:

一种受控终端,其中存储有指令集,所述指令集用于执行:与两台以上的移动终端建立通信连接;实时接收移动终端获取的输入的控制信息,并将接收到的控制信息实时合成总控制信息;根据所述总控制信息进行处理。

进一步的,在所述“与两台以上的移动终端建立通信连接”之后,还包括:向移动终端实时发送屏幕内容对应的视频流和/或音频数据流。

进一步的,所述“实时接收移动终端获取的输入的控制信息”,还包括:受控终端中对应每个移动终端设有一消息缓冲队列;实时接收移动终端封装后的控制信息,并将封装后的控制信息按时间顺序逐一送入对应移动终端的消息缓冲队列中;所述封装后的控制信息包括:控制信息与设备标识码。

进一步的,所述“实时接收移动终端获取的输入的控制信息,并将接收到的控制信息实时合成总控制信息”,还包括:预先设有一当前消息队列和存活消息队列;接收从所有移动终端的消息缓冲队列中获取的控制信息,并按照时间顺序送入当前消息队列;还设有一判断合成模块,判断合成模块依次从当前消息队列中获取控制信息;判断合成模块将从当前消息队列所提取的控制信息与存活消息队列进行比较,判断所提取的控制信息是否为错误信息或为未更新于存活消息队列中的新增信息;滤除控制信息中的错误信息,并将新增信息更新至存活消息队列中,以及将滤除后剩余的控制信息实时合成总控制信息。

进一步的,所述“判断合成模块将从当前消息队列所提取的控制信息与存活消息队列进行比较,判断所提取的控制信息是否为错误信息或为未更新于存活消息队列中的新增信息;滤除控制信息中的错误信息,并将新增信息更新至存活消息队列中,以及将滤除后剩余的控制信息实时合成总控制信息”还包括:当前消息队列从所有的消息缓冲队列获取当前时刻的控制信息后,判断合成模块从当前消息队列依次获取当前时刻的控制信息,并判断当前获取的控制信息类型;若当前获取的控制信息为按下消息,则继续判断存活消息队列中是否有对应事件的按下消息,若有,则将该按下消息舍弃;若没有,则将对应事件的按下消息存入存活消息队列,遍历存活消息队列中的所有按下消息,合成存活消息队列中的所有按下消息并发送给系统框架层;若当前获取的控制信息为弹起消息,则判断对应事件在存活消息队列中是否存在按下消息或移动消息,若无,则舍弃该弹起消息;若有,将对应事件的按下消息或移动消息更新为弹起消息;待遍历存活消息队列中的所有弹起消息后,合并存活消息队列中的所有弹起消息并发给系统框架层;待发送给系统框架层后,将弹起消息从存活消息队列删除;若当前获取的控制信息为取消消息,则判断对应事件在存活消息队列中是否存在按下消息或移动消息,若无,则舍弃该取消消息;若有,将对应事件的按下消息或移动消息更新为取消消息,待遍历存活消息队列中的所有取消消息后,合并存活消息队列中的所有取消消息并发给系统框架层;待发送给系统框架层后,将取消消息从存活消息队列删除。

进一步的,所述移动终端带触控屏时,所述“判断合成模块将从当前消息队列所提取的控制信息与存活消息队列进行比较,判断所提取的控制信息是否为错误信息或为未更新于存活消息队列中的新增信息,滤除控制信息中的错误信息,并将新增信息更新至存活消息队列中,以及将滤除后剩余的控制信息实时合成总控制信息”还包括:当前消息队列从所有的消息缓冲队列获取当前时刻的控制信息后,判断合成模块从当前消息队列依次获取当前时刻的控制信息,并判断当前获取的控制信息类型;若当前获取的控制信息为移动消息,则判断对应事件在存活消息队列中是否存在按下消息或移动消息,若无,则舍弃该移动消息;若有,则更新对应事件的x、y坐标,并将对应事件的按下消息更新为移动消息;遍历存活消息队列中的所有移动消息,合成存活消息队列中的所有移动消息并发送给系统框架层。

为实现上述目的,发明人还提供了一种移动终端,具体的技术方案如下:

一种移动终端,其中存储有指令集,所述指令集用于执行:与受控终端连接;获取输入的控制信息,并将控制信息与设备标识码进行封装,并实时发送给受控终端;接收受控终端实时发送的屏幕内容对应的视频流和/或音频数据流,并实时进行播放。

本发明的有益效果是:受控终端通过与两台以上的移动终端建立通信连接,移动终端获取输入的控制信息,并实时发送给受控终端,受控终端接收所述控制信息,并将接收到的控制信息实时合成总控制信息,并根据所述总控制信息进行处理,可实现多个移动终端同时对受控终端进行准确控制,实现多点触摸的效果。同时可实现多个移动终端之间的互动,使得多个移动终端的用户可以同时进行操作,增强用户体验。

附图说明

图1为具体实施方式所述一种基于移动终端的控制信息合成方法的流程图;

图2为具体实施方式所述将所提取的控制信息与存活消息队列进行比较的流程图;

图3为具体实施方式所述合并存活消息队列中的所有控制信息并发送给系统框架层的流程图;

图4为具体实施方式所述一种受控终端的模块图;

图5为具体实施方式所述一种移动终端的模块图。

附图标记说明:

400、受控终端,

500、移动终端。

具体实施方式

为详细说明技术方案的技术内容、构造特征、所实现目的及效果,以下结合具体实施例并配合附图详予说明。

请参阅图1,本实施例提供一种基于移动终端的控制信息合成方法,在本实施方式中,受控终端可以为机顶盒,所述机顶盒是指类似智能手机一样,具有全开放式平台,搭载了安卓操作系统,可以由用户自行安装和卸载软件、游戏等第三方服务商提供的程序,通过此类程序来不断对点歌系统或电视的功能进行扩充,并可以通过网线、无线网络来实现上网冲浪的的新一代机顶盒。移动终端可以为智能手机,平板电脑、智能手表等具有显示屏幕或带触摸屏的终端设备,也可以为不具有显示屏幕的终端设备,如单纯具有物理按键的游戏手柄等。

本实施例包括以下步骤:步骤s101:受控终端与两台以上的移动终端建立通信连接。可采用如下方式:受控终端与移动终端建立通信连接前,在受控终端上安装有多点虚拟触摸合成系统,受控终端开机,启动多点虚拟触摸合成系统,多点虚拟触摸合成系统启动用户连接服务,用户连接服务等待用户连接。移动终端通过扫码连接多点虚拟触摸合成系统,从而与受控终端建立起通信连接。

通信连接建立好后,用户连接服务即为每个与受控终端连接的移动终端启动一个用户线程处理该连接。该用户线程会创建一个消息队列(该消息队列即以下步骤s102中的消息缓冲队列,其中每个用户线程对应一个移动终端,每个用户线程维护对应移动终端专属的消息队列,移动终端的设备标识码是该消息队列的唯一标识)。通信连接好后,执行步骤s102:移动终端获取输入的控制信息,并实时发送给受控终端。可采用如下方式:移动终端获取输入的控制信息,并将控制信息与设备标识码进行封装,并实时发送给受控终端;受控终端中对应每个移动终端设有一消息缓冲队列;受控终端将封装后的控制信息按时间顺序逐一送入对应移动终端的消息缓冲队列中。具体如下:若移动终端为具有触摸屏的设备,则移动终端获取触摸屏上输入的触屏信息,并将触屏信息与设备标识码进行封装;并实时发送给受控终端;受控终端将封装后的触屏信息按时间顺序逐一送入对应移动终端的消息缓冲队列中。若移动终端为不具有触摸屏的设备,则移动终端获取物理按键输入的控制信息,并将控制信息与设备标识码进行封装;并实时发送给受控终端;受控终端将封装后的控制信息按时间顺序逐一送入对应移动终端的消息缓冲队列中。

所述设备标识码用于区分不同的移动终端,控制信息的类型一般包括:按下消息、弹起消息和取消消息,其中按下消息还包括:单点按下和多点按下,弹起消息包括:单点弹起和多点弹起。若是带触摸屏的移动终端,则还包括移动消息。其中控制信息还可带有消息id,用于区分同一个移动终端的不同消息。获取好控制信息后,对控制信息进行封装,并实时发送给受控终端,受控终端将封装后的控制信息按时间顺序逐一送入对应移动终端的消息缓冲队列。

在本实施方式中,可通过将控制信息封装成通信消息发送给受控终端,通信消息的格式,根据受控终端和移动终端之间相互通信的协议决定,通常包括消息头部和数据体两部分,其中消息头部为网络协议规定的各种属性信息,根据不同的网络协议而不同,数据体是本发明技术方案受控终端和移动终端之间使用的内部数据,具体格式可以根据应用需要设置,通常,该数据体会包含有设备标识码,以便受控终端进行消息的区分。将封装好的通信消息发送给受控终端后,受控终端按时间顺序逐一送入消息缓冲队列。

然后执行步骤s103:受控终端接收所述控制信息,并将接收到的控制信息实时合成总控制信息。可采用如下方式:受控终端中预先设有一当前消息队列和存活消息队列;受控终端接收从所有的消息缓冲队列中获取的控制信息,并按照时间顺序送入当前消息队列;受控终端从当前消息队列提取各移动终端的控制信息,并实时合成总控制信息。其中在步骤s101中移动终端通过扫码连接多点虚拟触摸合成系统,从而与受控终端建立起通信连接后。多点虚拟触摸合成系统启动多点虚拟触摸事件合成服务,该多点虚拟触摸事件合成服务线程为高优先级,上述提及的用户连接服务启动的用户线程为普通优先级。所述多点虚拟触摸事件合成服务线程会创建一个当前消息队列,受控终端将从消息缓冲队列中逐一提取封装好的控制信息,并对控制信息逐一进行解封装处理,根据传输网络协议去除通信消息头部,得到所需的数据体,并按照时间顺序送入当前消息队列,受控终端再从当前消息队列提取各移动终端的控制信息,并实时合成总控制信息。

其中“受控终端从当前消息队列提取各移动终端的控制信息,并实时合成总控制信息”可采用如下方式:受控终端设有一判断合成模块,判断合成模块依次从当前消息队列中获取控制信息;判断合成模块将从当前消息队列所提取的控制信息与存活消息队列进行比较,判断所提取的控制信息是否为错误信息或为未更新于存活消息队列中的新增信息;滤除控制信息中的错误信息,并将新增信息更新至存活消息队列中,以及将滤除后剩余的控制信息实时合成总控制信息。以上步骤具体可如下:通过多点虚拟触摸事件合成服务线程预先创建一个存活消息队列,该存活消息队列中存储有当前时刻各移动终端的控制信息,存活消息队列中的控制信息均为有效信息,其中存活消息队列中的控制信息与当前消息队列中的控制信息的区别之一是,当前消息队列中的控制信息可能为无效信息,如某个点在存活消息队列中已经存在,且类型为按下消息,此时当前消息队列中存在同样的点,对应的类型也为按下消息,则当前消息队列中该消息为无效消息。存活消息队列中的存储的控制信息除了包含有:设备标识码、触屏消息的类型、消息id,还包含有消息索引,所述消息索引从0开始,按照0,1,2,3……从小到大顺序逐个增一排列,即消息索引是公差为1的等差数列。所述消息索引唯一对应一个事件,其用于判断哪个触摸点发生事件,多点虚拟触摸合成系统将依据消息索引取出消息。其中消息id依队列存放顺序从小到大排列,如:3,5,8……,消息id不一定是公差为1的等差数列。多点虚拟触摸事件合成服务还会初始化触摸点的唯一标识码,该唯一标识码用于标识唯一的触摸点。

请参阅图2,若移动终端带触摸屏,判断合成模块将从当前消息队列所提取的控制信息与存活消息队列进行比较,判断所提取的控制信息是否为错误信息或为未更新于存活消息队列中的新增信息,滤除控制信息中的错误信息,并将新增信息更新至存活消息队列中,以及将滤除后剩余的控制信息实时合成总控制信息。具体可如下:

步骤s201:当前消息队列从所有的消息缓冲队列获取当前时刻的控制信息后,判断合成模块从当前消息队列依次获取当前时刻的控制信息,并判断当前获取的控制信息类型。

若当前获取的控制信息为按下消息,则执行步骤s202:判断存活消息队列中是否有对应事件的按下消息?若有,执行步骤s203:将该按下消息舍弃。若否,执行步骤s204:将对应事件的按下消息存入存活消息队列,遍历存活消息队列中的所有按下消息,合成存活消息队列中的所有按下消息并发送给系统框架层。对一个事件来说,其发展过程一般为按下、弹起或取消;若是带触摸屏的移动终端,其对应事情的发展一般为按下、一个以上的移动、弹起或取消。因此,一个事情对应的控制消息在存活队列中,且已存在按下消息,则其下一步只会是移动消息、弹起消息或者取消消息,而不会再次获得按下消息,因此若此时再次获得的控制信息为按下消息,则表明该消息已经发生错误,须将该消息舍弃。

若当前获取的控制信息为移动消息,则执行步骤s205:判断对应事件在存活消息队列中是否存在按下消息或移动消息。若否,则执行步骤s206:舍弃该移动消息。若是,则执行步骤s207:更新对应事件的x、y坐标,并将对应事件的按下消息更新为移动消息;遍历存活消息队列中的所有移动消息,合成存活消息队列中的所有移动消息并发送给系统框架层。因移动消息的前一步肯定是按下消息或者移动消息,即只有先按下才能移动,或者是先移动到a位置,这个时候再移动到b位置,若在存活消息队列中并不存在对应事件的按下消息或移动消息,则表明该消息已经发生错误,须将该消息舍弃。

若当前获取的控制信息为弹起消息,则执行步骤s208:判断对应事件在存活消息队列中是否存在按下消息或移动消息。若否,则执行步骤s209:舍弃该弹起消息。若是,则执行步骤s210:将对应事件的按下消息或移动消息更新为弹起消息;待遍历存活消息队列中的所有弹起消息后,合并存活消息队列中的所有弹起消息并发给系统框架层,待发送给系统框架层后,将弹起消息从存活队列删除。因弹起消息的前一步肯定是按下消息或者移动消息,若在存活消息队列中并不存在对应事件的按下消息或移动消息,则表明该消息已经发生错误,须将该消息舍弃。而当弹起消息发送给系统框架层后,其就不存活了,需从存活消息队列中删除。

若当前获取的控制信息为取消消息,则执行步骤s211:判断对应事件在存活消息队列中是否存在按下消息或移动消息。若否,则执行步骤s212:舍弃该取消消息。若是,则执行步骤s213:将对应事件的按下消息或移动消息更新为取消消息,待遍历存活消息队列中的所有取消消息后,合并存活消息队列中的所有取消消息并发给系统框架层,待发送给系统框架层后,将取消消息从存活队列删除。因取消消息的前一步肯定是按下消息或者移动消息,若在存活消息队列中并不存在对应事件的按下消息或移动消息,则表明该消息已经发生错误,须将该消息舍弃。而当取消消息发送给系统框架层后,其就不存活了,需从存活消息队列中删除。

在上述控制消息类型的判断过程中,在移动终端为不带触摸屏的实施例中,则不存在移动消息,因此没有步骤s205-步骤s207。

对于以上所有新增加至存活消息队列中的新增信息,均为其分配一个空余的消息id。其中每个新增消息的格式为:设备标识码+消息id+按下/弹起/移动/取消+位置消息(x,y)+最新存活时间。请参阅图3,上述“合并存活消息队列中的所有按下消息并发给系统框架层”、“合并存活消息队列中的所有移动消息并发给系统框架层”、“合并存活消息队列中的所有弹起消息并发给系统框架层”或“合并存活消息队列中的所有取消消息并发给系统框架层”可采用如下方式:根据消息类型的不同,设置合成参数中的action参数,见图:多点弹起、单点弹起、单点按下、多点按下、取消和移动分别对应不同的action参数,将action参数与pointcount(存活队列消息数)、eventime(系统时间)、pointids(系统维护的唯一id)、pointercoords(存活队列中所有点的x和y坐标)合并一起生成多点触摸消息。将生成的多点触摸消息注入受控终端的系统框架层,系统框架层上传事件分发给上层app。消息参数设置如下:

设置action_up=2,

action_down=0,

action_move=1,

action_cancle=3,

action_mask=256,

action_pointer_down=5,

action_pointer_up=6;

(1)若是按下消息,如果pointcount等于1,则action=action_down;

若是按下消息,如果pointcount大于1,则action=256*消息索引index+action_pointer_down;

(2)若是弹起消息,如果pointcount等于1,则action=action_up;

若是弹起消息,如果pointcount大于1,则action=256*消息索引index+action_pointer_up;

(3)若是取消消息,action=256*消息索引index+action_cancel;

(4)若是移动消息action=action_move;

(5)pointcount为存活队列消息数。

(6)ventime为系统时间。

(7)pointids为系统维护的唯一id。

(8)pointercoords为存活队列中所有点的x和y坐标。

将接收到的控制信息实时合成总控制信息后,执行步骤s104:受控终端根据所述总控制信息进行处理。

受控终端通过与两台以上的移动终端建立通信连接,移动终端获取输入的控制信息,并实时发送给受控终端,受控终端接收所述控制信息,并将接收到的控制信息实时合成总控制信息,并根据所述总控制信息进行处理,可实现多个移动终端同时对受控终端进行准确控制,实现多点触摸的效果。同时可实现多个移动终端之间的互动,使得多个移动终端的用户可以同时进行操作,增强用户体验。且极大节约了成本,不需要多点触摸的硬件支持,只需植入多点虚拟触摸合成系统即可。支持多个移动终端对受控终端同时进行控制,可用于多人娱乐的游戏场景,大大提升用户体验。

在其它实施方式中,在所述“受控终端与两台以上的移动终端建立通信连接”之后,还包括:受控终端向移动终端实时发送屏幕内容对应的视频流和/或音频数据流;移动终端接收所述视频流和/或音频数据流,并实时进行播放。可采用如下方式:

为实现将受控终端播放的音视频内容实时显示在移动终端屏幕上,首先,受控终端需要进行屏幕视频和音频数据的采集,生成音视频数据流。通过采用文件流的方式,移动终端可以在接收多媒体流数据的同时进行已接收部分的播放,而不必等待所有数据传输完毕,从而减少用户的等待时间。

其次,为减少在网络传输过程中的网络带宽占用,还需要对采集的屏幕图像数据和音频数据进行编码处理,音视频的编码可以通过受控终端集成的硬件编码模块进行处理,例如,常见的视频编码格式有h264、xvid等,音频编码格式有mp3、aac等,通过这些高质量的编码算法,可以在较高分辨率,例如,720p分辨率下实现较好的画质效果并尽量地减少网络传输数据量,降低传输延时,提升视频播放的流畅度。

在对采集的屏幕图像数据和音频数据进行编码处理之后,就可以通过流媒体传输协议将音视频数据流发送给受控终端,常见的流媒体传输协议有rtmp协议、rtsp协议、mms协议、hls协议等。在一具体的实施例中,采用rtsp协议将编码后的音视频数据流发送给移动终端,协议交互流程为:启动rtsp服务端;移动终端向rtsp服务器发送建立会话请求;rtsp服务器为移动终端建立会话并返回应答消息;移动终端向rtsp服务器发送播放请求;rtsp服务器向移动终端发送应答消息,同时开始发送流媒体数据;播放结束时,移动终端向rtsp服务器发送关闭会话请求;rtsp服务器结束该移动终端的会话。

移动终端通过流媒体传输协议接收到所述视频流和/或音频数据流后,可用支持相应传输协议的播放软件进行解码实时播放,大部分的常见播放软件均支持各种协议流媒体的点播功能。移动终端的屏幕上同步显示受控终端的显示内容,不但使得播放形式多样化,同时也使得用户的操控输入更加直观,无需在移动终端输入的同时还要去兼顾显示器上的显示内容,大大方便用户操作。

在其它实施方式中,为及时清除存活消息队列中的死消息,让用户体验更好,还包括步骤:判断存活消息队列中各移动终端的控制信息是否超过预设时间未更新,若是,将所述控制信息从存活消息队列中移除。可采用如下方式:多点虚拟触摸事件合成服务启动时,启动一个定时器,可设置定时器每隔5s设置“检查变量”为需要检查状态,所述“检查变量”用于控制是否进行检查。在实际使用过程中,不同移动终端的使用用户的手指在不停地微弱颤抖,此时向多点虚拟触摸事件合成服务发送移动消息或其它类型的消息,多点虚拟触摸事件合成服务更新该消息的最新存活时间。当系统检测到“检查变量”为需要检查的状态,此时检查存活消息队列中是否有超过3s未更新最新存活时间的消息,若有,则舍弃该消息,使之成为死消息,并从存活消息列表中删除。在本实施方式中,是设置超过3s则视为死消息,在其它实施方式中,可结合实际的业务情况,设置其它时间。通过以上纠错处理,一旦用户发现操作卡顿时(如:网络丢包引起),该纠错机制可以通过用户操作清除死消息,从而恢复到正常操作,将大大改善用户体验。

请参阅图4,在本实施方式中,一种受控终端400的具体实施方案如下:

其中所述受控终端400可以为机顶盒,所述机顶盒是指类似智能手机一样,具有全开放式平台,搭载了安卓操作系统,可以由用户自行安装和卸载软件、游戏等第三方服务商提供的程序,通过此类程序来不断对点歌系统或电视的功能进行扩充,并可以通过网线、无线网络来实现上网冲浪的的新一代机顶盒。

具体方案如下:

一种受控终端400,其中存储有指令集,所述指令集用于执行:与两台以上的移动终端建立通信连接;实时接收移动终端获取的输入的控制信息,并将接收到的控制信息实时合成总控制信息;根据所述总控制信息进行处理。可采用如下方式:受控终端400与移动终端建立通信连接前,在受控终端400上安装有多点虚拟触摸合成系统,受控终端400开机,启动多点虚拟触摸合成系统,多点虚拟触摸合成系统启动用户连接服务,用户连接服务等待用户连接。移动终端通过扫码连接多点虚拟触摸合成系统,从而与受控终端400建立起通信连接。

通信连接建立好后,用户连接服务即为每个与受控终端400连接的移动终端启动一个用户线程处理该连接。该用户线程会创建一个消息队列(该消息队列即以下提到的消息缓冲队列,其中每个用户线程对应一个移动终端,每个用户线程维护对应移动终端专属的消息队列,移动终端的设备标识码是该消息队列的唯一标识)。通信连接好后,受控终端400中对应每个移动终端设有一消息缓冲队列;受控终端400实时接收移动终端封装后的控制信息,并将封装后的控制信息按时间顺序逐一送入对应移动终端的消息缓冲队列中;所述封装后的控制信息包括:控制信息与设备标识码。

进一步的,所述“实时接收移动终端获取的输入的控制信息,并将接收到的控制信息实时合成总控制信息”,还包括:预先设有一当前消息队列和存活消息队列;接收从所有的消息缓冲队列中获取的控制信息,并按照时间顺序送入当前消息队列;还设有一判断合成模块,判断合成模块依次从当前消息队列中获取控制信息;判断合成模块将从当前消息队列所提取的控制信息与存活消息队列进行比较,判断所提取的控制信息是否为错误信息或为未更新于存活消息队列中的新增信息;滤除控制信息中的错误信息,并将新增信息更新至存活消息队列中,以及将滤除后剩余的控制信息实时合成总控制信息。可采用如下方式:受控终端400与移动终端建立通信连接后。多点虚拟触摸合成系统启动多点虚拟触摸事件合成服务,该多点虚拟触摸事件合成服务线程为高优先级,上述提及的用户连接服务启动的用户线程为普通优先级。所述多点虚拟触摸事件合成服务线程会创建一个当前消息队列,受控终端400将从消息缓冲队列中逐一提取封装好的控制信息,并对控制信息逐一进行解封装处理,根据传输网络协议去除通信消息头部,得到所需的数据体,并按照时间顺序送入当前消息队列,受控终端400再从当前消息队列提取各移动终端的控制信息,并实时合成总控制信息。

进一步的,所述“判断合成模块将从当前消息队列所提取的控制信息与存活消息队列进行比较,判断所提取的控制信息是否为错误信息或为未更新于存活消息队列中的新增信息;滤除控制信息中的错误信息,并将新增信息更新至存活消息队列中,以及将滤除后剩余的控制信息实时合成总控制信息”还包括:当前消息队列从所有的消息缓冲队列获取当前时刻的控制信息后,判断合成模块从当前消息队列依次获取当前时刻的控制信息,并判断当前获取的控制信息类型;若当前获取的控制信息为按下消息,则继续判断存活消息队列中是否有对应事件的按下消息,若有,则将该按下消息舍弃;若没有,则将对应事件的按下消息存入存活消息队列,遍历存活消息队列中的所有按下消息,合成存活消息队列中的所有按下消息并发送给系统框架层;若当前获取的控制信息为弹起消息,则判断对应事件在存活消息队列中是否存在按下消息或移动消息,若无,则舍弃该弹起消息;若有,将对应事件的按下消息或移动消息更新为弹起消息;待遍历存活消息队列中的所有弹起消息后,合并存活消息队列中的所有弹起消息并发给系统框架层;待发送给系统框架层后,将弹起消息从存活消息队列删除;若当前获取的控制信息为取消消息,则判断对应事件在存活消息队列中是否存在按下消息或移动消息,若无,则舍弃该取消消息;若有,将对应事件的按下消息或移动消息更新为取消消息,待遍历存活消息队列中的所有取消消息后,合并存活消息队列中的所有取消消息并发给系统框架层;待发送给系统框架层后,将取消消息从存活消息队列删除。

进一步的,所述移动终端带触控屏时,所述“判断合成模块将从当前消息队列所提取的控制信息与存活消息队列进行比较,判断所提取的控制信息是否为错误信息或为未更新于存活消息队列中的新增信息,滤除控制信息中的错误信息,并将新增信息更新至存活消息队列中,以及将滤除后剩余的控制信息实时合成总控制信息”还包括:当前消息队列从所有的消息缓冲队列获取当前时刻的控制信息后,判断合成模块从当前消息队列依次获取当前时刻的控制信息,并判断当前获取的控制信息类型;若当前获取的控制信息为移动消息,则判断对应事件在存活消息队列中是否存在按下消息或移动消息,若无,则舍弃该移动消息;若有,则更新对应事件的x、y坐标,并将对应事件的按下消息更新为移动消息;遍历存活消息队列中的所有移动消息,合成存活消息队列中的所有移动消息并发送给系统框架层。

受控终端400通过与两台以上的移动终端建立通信连接,实时接收移动终端获取的输入的控制信息,并将接收到的控制信息实时合成总控制信息,并根据所述总控制信息进行处理,可实现多个移动终端同时对受控终端400进行准确控制,实现多点触摸的效果。同时可实现多个移动终端之间的互动,使得多个移动终端的用户可以同时进行操作,增强用户体验。且极大节约了成本,不需要多点触摸的硬件支持,只需植入多点虚拟触摸合成系统即可。支持多个移动终端对受控终端400同时进行控制,可用于多人娱乐的游戏场景,大大提升用户体验。

在其它实施方式中,在所述“与两台以上的移动终端建立通信连接”之后,还包括:向移动终端实时发送屏幕内容对应的视频流和/或音频数据流。可采用如下方式:为实现将受控终端400播放的音视频内容实时显示在移动终端屏幕上,首先,受控终端400需要进行屏幕视频和音频数据的采集,生成音视频数据流。通过采用文件流的方式,移动终端可以在接收多媒体流数据的同时进行已接收部分的播放,而不必等待所有数据传输完毕,从而减少用户的等待时间。

在其它实施方式中,为及时清除存活消息队列中的死消息,让用户体验更好,所述指令集还用于执行:判断存活消息队列中各移动终端的控制信息是否超过预设时间未更新,若是,将所述控制信息从存活消息队列中移除。可采用如下方式:多点虚拟触摸事件合成服务启动时,启动一个定时器,可设置定时器每隔5s设置“检查变量”为需要检查状态,所述“检查变量”用于控制是否进行检查。在实际使用过程中,不同移动终端的使用用户的手指在不停地微弱颤抖,此时向多点虚拟触摸事件合成服务发送移动消息,多点虚拟触摸事件合成服务更新该消息的最新存活时间。当系统检测到“检查变量”为需要检查的状态,此时检查存活消息队列中是否有超过3s未更新最新存活时间的消息,若有,则舍弃该消息,使之成为死消息,并从存活消息列表中删除。在本实施方式中,是设置超过3s则视为死消息,在其它实施方式中,可结合实际的业务情况,设置其它时间。

请参阅图5,在本实施方式中,一种移动终端500的具体实施方案如下:

其中,移动终端500可以为智能手机,平板电脑、智能手表等具有显示屏幕或带触摸屏的终端设备,也可以为不具有显示屏幕的终端设备,如单纯具有物理按键的游戏手柄等。

具体方案如下:

一种移动终端500,其中存储有指令集,所述指令集用于执行:与受控终端连接;获取输入的控制信息,并将控制信息与设备标识码进行封装,并实时发送给受控终端;接收受控终端实时发送的屏幕内容对应的视频流和/或音频数据流,并实时进行播放。

两台以上的移动终端500通过与受控终端建立通信连接,获取输入的控制信息,并实时发送给受控终端。可实现多个移动终端500同时对受控终端进行准确控制,实现多点触摸的效果。同时可实现多个移动终端500之间的互动,使得多个移动终端500的用户可以同时进行操作,增强用户体验。且极大节约了成本,不需要多点触摸的硬件支持,只需植入多点虚拟触摸合成系统即可。支持多个移动终端500对受控终端同时进行控制,可用于多人娱乐的游戏场景,大大提升用户体验。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括……”或“包含……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的要素。此外,在本文中,“大于”、“小于”、“超过”等理解为不包括本数;“以上”、“以下”、“以内”等理解为包括本数。

本领域内的技术人员应明白,上述各实施例可提供为方法、装置、或计算机程序产品。这些实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。上述各实施例涉及的方法中的全部或部分步骤可以通过程序来指令相关的硬件来完成,所述的程序可以存储于计算机设备可读取的存储介质中,用于执行上述各实施例方法所述的全部或部分步骤。所述计算机设备,包括但不限于:个人计算机、服务器、通用计算机、专用计算机、网络设备、嵌入式设备、可编程设备、智能移动终端、智能家居设备、穿戴式智能设备、车载智能设备等;所述的存储介质,包括但不限于:ram、rom、磁碟、磁带、光盘、闪存、u盘、移动硬盘、存储卡、记忆棒、网络服务器存储、网络云存储等。

上述各实施例是参照根据实施例所述的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到计算机设备的处理器以产生一个机器,使得通过计算机设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机设备以特定方式工作的计算机设备可读存储器中,使得存储在该计算机设备可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机设备上,使得在计算机设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

尽管已经对上述各实施例进行了描述,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改,所以以上所述仅为本发明的实施例,并非因此限制本发明的专利保护范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围之内。

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