对于共享会话的手势支持的制作方法

文档序号:6362444阅读:297来源:国知局
专利名称:对于共享会话的手势支持的制作方法
技术领域
本公开总的涉及对于共享会话的手势支持。本公开尤其涉及在共享会话中处理远程手势输入。
背景技术
诸如智能手机和平板电脑之类的移动装置可执行支持触摸、多点触摸或触笔的操作系统。这些操作系统通常允许用户以手指或其他工具或触笔作为输入设备,使用触摸屏与菜单和应用相接口。支持触摸的装置可以被用于网络会议应用中,包括例如共享电子白板的共享会话。

发明内容
本文描述的是用于提供共享会话环境的方法、系统和装置。在一个实施例中,用于提供共享会话环境的方法包括下列步骤:促成与第一远程计算装置的第一连接的建立以向该第一装置提供对共享会话窗口的访问;促成与第二远程计算装置的第二连接的建立以向该第二装置提供对该共享会话窗口的访问;与第一装置(并可与第二远程计算装置,如果其支持手势的话)协商手势能力;经由第一连接接收对应于第一手势的数据,第一手势是在该第一装置处显示的共享会话窗口输入的以与该共享会话窗口交互;经由第二连接接收与在该第二装置处显示的共享会话窗口输入以与该共享会话窗口交互的第二手势(或非手势)对应的数据;协调与第一和第二手势对应的(或者如果第二计算装置不兼容手势输入,则与手势或非手势对应的)数据以生成修改指令,该修改指令表示由在第一和第二远程计算装置处与所述共享会话窗口的交互所限定的操作;以及通过第一和第二连接将经修改的共享会话窗口传输到第一和第二计算装置。在多个实施例中,该方法可包括获取来自第一装置的第一标准化时间戳和来自第二装置的第二标准化时间戳的步骤;其中所述协调步骤还包括基于第一标准化时间戳对准所接收的第一手势的时间戳,以及基于第二标准化时间戳对准所接收的第二手势的时间戳。在多个实施例中,所述协调步骤包括采用映射表,该映射表将对应于第一手势的数据映射到第一共享会话命令并且将对应于第二手势的数据映射到第二共享会话命令。在其他实施例中,第一连接包括屏幕共享通道和第一输入通道并且第二连接包括所述屏幕共享通道和第二输入通道。

在多个实施例中,所述协调步骤可包括确定第一和第二手势的接收时间差以及响应于确定所述时间差小于阈值时间量,丢弃第一和第二手势的其中一个。对应于第一手势的数据可以是原始的多点触摸信息。所述协调步骤还可包括将所述原始的多点触摸信息格式化成可与所述共享会话窗口兼容的格式。所述格式化可考虑所协商的第一远程计算装置的手势能力。所述协商步骤可包括聚集第一和第二远程计算装置的能力。聚集所述能力可包括对第一远程计算装置能接收的触摸输入的数量和第二远程计算装置能接收的触摸输入的数量进行求和。在多个实施例中,通过在第一远程计算装置处对原始的多点触摸信息的处理来格式化所述对应于第一手势的数据以用于进行解释。在其他实施例中,对应于第一手势的数据是滑动。在其他实施例中,第一手势是来自笔或触摸数字转换器的触笔事件。在某 些实施例中,所述协调步骤还包括在共享会话中的低带宽网络情况下和/或慢处理应用中对第一和/或第二手势进行排队、抛弃和/或合并。


下面的附图描述了本文所述的方法和系统的某些示例性实施例,其中相同的参考标记指示相同的元素。这些所描述的实施例应被理解为对所公开的方法和系统的举例说明而非以任何方式对其进行限制:图1A描述了提供对能执行应用程序的计算装置的远程访问的网络环境的实施例;图1B和图1C是描述计算装置的实施例的框图;图2是描述用于在移动装置上显示远程应用的系统的实施例的框图;图3是描述用于提供多点触摸支持的方法的实施例的流程图;图4是多个同时触摸输入的屏幕截图;图5是具有共享会话窗口的远程提供的桌面环境的屏幕截图;以及图6示出了对应于其滑动动作的八种笔滑动的图。
具体实施例方式图1A示出了共享会话或在线协作环境101的一个实施例,其包括通过一个或多个网络104连接服务器106的一个或多个客户机或参与装置102。服务器106和客户参与装置102可以是任何计算装置,包括但不限于计算机、平板电脑、移动电话或虚拟机。服务器106和客户参与装置102可支持手势。本文所使用的术语“手势”包括触摸(例如,使手指接触I/O显示器)、轻扫(swipe)(例如,在I/O显示器上接触并移动手指)、多点触摸(例如,使两个或更多手指接触到I/O显示器)、多点轻扫(例如,在I/O显示器上接触并移动两个或更多手指)、触笔(例如在I/O显示器上接触或轻扫笔型装置)、动作(在摄像头前面移动手指)、滑动(flick)(在下文中更详细描述)等等。在一个实施例中,环境101可包括在服务器106和装置102之间安装的设备(未示出)。这个设备可管理客户机/服务器连接,并且在一些情况中可以在多个后端服务器(未示出)之间负载平衡客户机连接。在多个实施例中,该环境101能提供在多个装置102间共享的会话,包括例如共享的电子白板空间。这样的共享会话可以被包含在或被增加到网络会议应用中,例如GOTOMEETING、WEBEX,MICROSOFT LIVE、LOTUS SAMETIME,WEBHHUDDLE,TOKBOX,OPENMEETINGS 或任何其他网络会议应用。网络会议应用通常允许多个用户聚集在公共空间,以及可以准许用户共享和显示共享会话或共享空间中的内容并与其交互。如本文所使用的,共享会话或共享空间指的是在服务器106处执行的窗口,参与装置102可以与该窗口交互,所述窗口例如共享电子白板。图1B示出了计算装置100的一个实施例,其可以被用作客户机器102或服务器106。在这个实施例中,计算装置100可以具有一个或多个显示器124a-n、一个或多个1/0装置130a-n、网络接口 118、键盘126、指示装置127、中央处理单元121和/或存储软件的存储装置128。在一个实施例中,例如,对于为平板电脑或移动电话的计算装置100,显示装置124a也可以是1/0装置130a。图1C示出了计算装置100的另一个实施例,其可以被用作客户机器102或服务器106。在计算装置100中包含系统总线150,其与下列组件通信:桥170和第一 1/0装置130A。在又一个实施例中,桥170还与中央处理单元121通信,中央处理单元121又与第二1/0装置130B、主存储器122和高速缓存存储器140通信。中央处理单元121内包含1/0端口、存储器端口 103和主处理器。图2中所示的是参与装置102的实施例的框图。该装置102执行诸如窗口管理服务206之类的应用。窗口管理服务206能与在该装置102上执行的应用204通信,并且在一些实施例中,能与虚拟图形驱动器208通信。窗口管理服务206的主要作用是将装置102的显示器201和1/0装置126、127、130与在装置102上的窗口中本地或远程执行的应用相接口。如所示出的,在装置102的显示器201上并不显示在装置102上执行的所有应用204a-n。图1A、IB、IC和2中的装置可以接收并处理手势输入(例如,移动电话、平板电脑或其他手势敏感装置)。在一些实施例中,服务器106是执行一个或多个应用505A-N的远程计算装置501。在用于共享协作的网络会议环境101中,一个这样的应用可以是共享会话窗口,例如共享的电子白板空间。在具有共·享会话窗口的网络会议应用的一个实施例中,参与者102和服务器106之间的不同通道承载参与者102和服务器106之间不同类型的通信。例如,在在线会议环境中,第一通道可承载屏幕数据,而第二通道(其可以被共享)可提供参与者之间的实时通信。在又一个示例中,装置102可以通过一个或多个虚通道与服务器106通信。在一些实施例中,通过网络104建立的第一通道可以被称为控制虚通道。在一些实施例中,通过网络104建立的第二通道可以被称为无缝虚通道。控制虚通道可以被用于发送控制命令和其他各种命令,而无缝虚通道可以被用于发送共享空间窗口、应用窗口、任务栏、系统托盘等。在一些实施例中,第一通道可以被用于传输手势命令。因此,每个虚通道可以承载不同的功能和内容。在一些实施例中,可以通过参与装置102或服务器106的其中一个或两者来建立虚通道。在一个实施例中,在移动装置102上执行的窗口管理服务206或者在远程计算机106上执行的远程客户端510可以被用来建立虚通道。在一些实施例中,远程计算机501可执行远程客户端510。远程客户端510可与控制虚通道或无缝虚通道通信并且可以传输和接收去往或来自移动装置102的数据。在一些实施例中,远程客户端510可以与窗口管理服务206协作来修改在远程计算机501上执行的远程应用505 (例如共享会话窗口)以用于在移动装置102上进行远程显示。在一些实施例中,窗口管理服务206是由CITRIX SYSTEMS公司发布的CITRIX RECEIVER。在一个实施例中,在客户装置102的存储装置128中存储的参与者软件与参与者102的各种组件(例如,操作系统)通信以向该软件和装置提供这些特征或其他特征。例如,该参与者软件可以创建并维护共享通道的本地副本。该参与者软件也可提供方法来对虚通道读写数据并传输变化到其他参与者102和/或服务器106。该参与者软件也可提供从屏幕数据通道和/或无缝虚通道进行读取的方法。在一个实施例中,服务器106的存储装置128中的服务器软件与服务器106的各种组件(例如,操作系统)通信以向该软件和服务器106提供这些特征和其他各种特征。例如,该服务器软件可以创建共享通道并维护该共享通道状态的本地副本。服务器软件可提供方法来通过屏幕数据通道或无缝虚通道向参与者传输屏幕数据。在本文公开的一个实施例中,支持手势的客户机或参与者102可以参与共享会话。这样的手势输入的示例包括触摸、多点触摸、触笔或其他类型的输入。这样的装置102包括平板电脑、PDA和移动电话。可以由位于该装置102的数字转换器来对手势输入进行数字化。该装置102可以 执行被配置为接受手势输入的应用204。该应用204可以自然地接受手势输入或者可以被修改来接受手势输入。例如,应用204可以接收由用户通过该装置102的触摸屏输入的数据,并且可以被修改为适应类似虚拟键盘和虚拟滚动菜单的典型触摸屏输入功能。图3中所示的是用于远程地提供手势信息给在远程计算机501 (例如服务器106)处执行的远程应用505 (例如共享会话窗口)的方法600的一个实施例。在移动装置102上执行的窗口管理服务206可以提取手势信息并且将所提取的信息传输到远程计算机501(步骤605)。远程计算机501可以接收手势信息(步骤610)然后按照所选择的格式生成新的手势信息(步骤615)。接着,远程计算机501可以将该手势信息转换成公共格式(步骤620)并且可对在远程计算机501上执行的远程应用505重放该手势信息(步骤625)。在一个实施例中,窗口管理服务206可以从在移动装置102处的输入提取手势信息并且将该信息传输到远程计算机501(步骤605)。在一些实施例中,当向应用窗口发出一个或多个手势输入时,移动装置102上执行的操作系统将这些事件转发到对应的应用。该应用窗口可以是本地执行的应用的窗口、可以是显示远程执行桌面的窗口或者可以是显示远程执行应用的窗口。在许多情况下,操作系统可以接收向移动装置102上所显示的任一应用窗口发出的手势输入。在一些实施例中,操作系统确定该手势输入被发给忽略该输入的应用窗口。例如,这个窗口可能显示不能处理手势输入的远程应用或桌面。忽略该输入可导致对默认窗口过程的调用,该默认窗口过程通过尝试将该手势输入转换成鼠标事件来处理该输入。在一些情况下,可以将窗口管理服务206修改为包含能处理手势事件的子功能或模块。这种修改可使得窗口管理服务206拦截发向与远程执行应用或桌面对应的应用窗口的手势事件,并且将所拦截的手势传输到远程计算机501。在一些实施例中,响应于拦截或检测到手势输入消息,窗口管理服务206可提取关于该手势或触摸输入的信息。
一旦该手势信息被拦截或检索并被传输到远程计算机501,该远程计算机接收到该手势信息(步骤610)并按照所选择的格式生成手势信息(步骤615)。在一些实施例中,在远程计算机501上执行的远程客户端510或数字转换器可直接按照公共手势结构或以另一格式来创建手势信息。当创建手势信息时,远程客户端510可发送该手势事件或手势信息至IJ应用505的目标窗口,例如共享会话窗口。可以调用一个功能以便通过向操作系统传递定义对特定手势的禁用/启用消息的内存结构的数组来向该操作系统通知所支持的手势类型和配置。例如,可以向该操作系统传递内存结构,例如定义下列手势的形态(aspect)的内存结构:平移、旋转、惯性等。该结构可控制手势的形态,例如允许水平平移而不是垂直平移,或不允许惯性。在向操作系统发送这些内存结构后,操作系统接着可以被配置为对于指定的应用窗口支持在内存结构中定义的特定手势。在一些实施例中,远程计算机501可以对移动装置102远程进行这些调用,并且移动装置102可以将在该功能调用期间所传递的内存结构应用到在该移动装置102上执行的操作系统。可以在移动装置102上的窗口管理服务206在该移动装置102上所显示的应用窗口上调用该功能时完成上述操作。例如,如果共享会话窗口不支持旋转,那么远程计算机501可以传输一个内存结构,该内存结构识别与该共享会话关联的应用输出窗口不支持旋转。这个功能调用被发送到移动装置102,移动装置102进而将具有声明不支持旋转的参数的本地功能调用发送给显示由在远程计算机501上执行的共享会话的实例生成的应用输出的应用输出窗口。在一些实施例中,如果窗口管理服务206拦截或接收到来自移动装置102上执行的操作系统且发送给显示远程执行应用或桌面的应用窗口(例如共享会话窗口)的手势消息,该窗口管理服务206可阻塞来自本地消息处理器的返回。然后,窗口管理服务206可将WM_GESTURENOTIFY消息传输到远程计算机501,在远程计算机501上对于与在移动装置102处的共享会话窗口对应的共享会话重放该消息。在一些实施例中,方法600可包括不同的步骤集合,其包括传输手势输入而不考虑接收该输入的应用窗口是否能够处理手势。在这些实施例中,窗口管理服务206可拦截所有的手势事件并将这些事件发送到`远程计算机501,在那里为对应的远程应用505,例如共享会话窗口,重放这些事件。在远程应用不能处理触摸输入的情况下,该输入或消息被传播到默认窗口过程,该默认窗口过程使得在远程计算机501上执行的操作系统尝试并将触摸输入转换成鼠标事件。例如,垂直平移手势可以使操作系统检测到滚动条并执行对应的Ctrl-Scroll Wheel生成。操作系统也可检测应用窗口中的可编辑区域并在接收到触摸输入时能显示触摸键盘选项等。在一些实施例中,方法600可以与高保真应用或要求对原始触摸事件的定制处理的应用联合使用。就像手势多点触摸输入,应用可以将窗口注册为能接收原始的多点触摸输入。当应用将窗口注册为能接收原始输入时,远程客户端510可将该调用转发到移动装置102,移动装置102进而将对应窗口通告为可触摸的。该功能调用可包括任一数量的配置参数,例如:关闭合并并打开精细触觉使得对原始触摸输入的合并成为该处理应用的责任;禁用手掌抑制,该手掌抑制阻塞来自无意的手掌接触的消息;以及任何其他配置参数。在其他实施例中,移动装置102可将发送给注册为接受原始触摸输入的窗口的触摸事件发到远程进行处理。当移动装置102发送该触摸输入时,在移动装置102上执行的窗口管理服务206或其他客户端应用提取该原始的触摸信息。在一些实施例中,移动装置102也发送从触摸部件落下的点开始直到该触摸部件回到上方的接触点序列的标识符。这个标识符考虑到多个同时的序列或多点触摸(多个手指或人);X和Y坐标对应于物理屏幕坐标的像素的百分之一。这提供了下列内容:对于需要高分辨率的应用(例如,手写识别)的高精度;接触区域的宽度和高度;时间戳;这是否是主触点,例如所建立的第一触点;该触点/序列的各个方面例如向下、移动、向上或悬浮事件、输入是否曾被合并、它是否来自用户的手掌等等;以及可被用于检索关于输入装置的信息的装置句柄。在一些实施例中,该装置句柄可以被用于检索关于移动装置的信息。在远程计算机501接收该触摸输入之后,该计算机501可将该触摸输入重放到该远程计算机501上对应的应用窗口。图4中所示的是支持多点触摸输入的共享会话应用窗口(例如白板)的屏幕截图的实施例。书写板(scratch pad)上的多条线对应于不同的触摸输入,例如来自一个参与装置102上的一个或多个用户的和/或来自一个或多个参与装置102的四个手指或四只触笔。而且,所述多条线说明同时输入多个触摸事件。本文所述的方法和系统可支持任何数量的同时多点触摸输入。在一些实施例中,该支持可以仅被移动装置102的硬件、移动装置102的操作系统或移动装置的驱动器限制。图5所示的是将该系统和方法应用到具有共享电子白板空间的网络会议应用的桌面环境的屏幕截图的实施例。在一个实施例中,该桌面环境可包括全屏窗口和多监控器窗口两种模式。可以在每窗口基础上协商触摸,因此不同级别的触摸可以被分配给该桌面中的不同窗口并且可以修改该桌面内的窗口而其余窗口保持不变。如图5所示,在右边示出的是共享会话应用窗口,例如白板。在一个实施例中,本文所述的方法和系统可包括用于获取输入数字转换器(例如,移动装置102的输入数字转换器)的触摸屏能力的方法。窗口管理服务206或远程客户端510可以使用API来查询环境101中装置的手势能力,例如,对多点触摸、笔或触摸的支持,装置102是否就绪、该手势能力是集成的还是外部的。在一些实施例中,所接收的信息可以使窗口管理服务206 了解关于移动装置102的触摸能力。这些能力可以被传输到远程计算机501,在那里它们可以被远程应用(例如共享会话)用来协商可接受的输入和命令。当查询这些能力时,远程计算机501可接收这些能力并使它们对在远程计算机501上执行的应用可用。在一些实施例中,上文所述的方法和系统可以支持坐标转换。在一些情况下,在移动装置102上所显示的且显示由远程执行应用生成的应用输出的应用输出窗口,例如共享窗口,采用空初始位置
。而且,共享窗口可以创建具有大体上与移动装置102的显示器相同分辨率的远程会话。在一些实施例中,该分辨率可以是多监控器环境的组合桌面分辨率。当该应用输出窗口显示部分或整个远程桌面时,该应用输出窗口可以具有相对于本地物理显示器的偏移坐标。在一些情况下,这可适用于窗口和全屏远程桌面(在多监控器环境的情况下)。因此,准确处理手势输入可要求移动装置102或窗口管理服务206将物理屏幕坐标转换成逻辑屏幕坐标,然后将其作为手势或原始触摸事件的部分发送到主机。例如,如 果手势输入的物理坐标是[PhysicalX, PhysicalY]并且远程桌面的左上角处于物理偏移[DesktopX, DesktopY],那么该桌面内的逻辑坐标为[PhysicalX-DesktopX, PhysicalY - DesktopY],其被发送给主机。
除了坐标转换之外,移动装置102或窗口管理服务206可执行坐标缩放。例如,对于被发送到位于自左上角[WindowX,WindowY]处的窗口的手势,且以因子[ScaleX, ScaleY]对其进行缩放,所产生的发送给主机的逻辑坐标可以是:[WindowX-DesktopX+(PhysicalX-WindowX)/ScaleX, WindowY - DesktopY+(PhysicalY-ffindowY)/ScaleYJ0可以执行类似的转换和缩放以用于平移或缩放桌面窗口来适合移动装置102的窗口大小。在其他实施例中,上述方法和系统可以支持三维图像共享会话,例如使用诸如Aero技术的三维图像的三维图像和桌面。在这些实施例中,可以将三维绘图从远程计算机501传输到移动装置102。在其他实施例中,该方法和系统可以在具有高延迟连接的环境中基本上实现零延迟。基本上实现零延迟可包括允许在移动装置102上执行的窗口管理服务206或其他客户端应用给显示远程执行应用505的应用窗口 204 (例如,共享会话窗口)提供本地反馈。可以基于历史或近似信息来确定这个本地反馈,并且在一些情况下,该本地反馈之后紧接着来自远程执行应用的真实反馈。将窗口管理服务206或其他客户端应用配置为能够本地响应可包括向窗口管理服务206或其他客户端应用传送窗口的能力和应用的能力以处理特定的手势。例如,如果窗口能处理滚动和缩放并且确定网络延迟在预定阈值之上,那么窗口管理服务206或其他客户端应用可以在检测到手势时基本上立即执行该手势。此外,窗口管理服务206或其他客户端应用也可将该手势传输到能处理该手势的远程应用。在这些实施例中,窗口管理服务206或其他客户端应用可以使用来自视频或图像缓冲器的图形并通过在应用窗口上执行StretchBitBit或BitBit操作来对手势进行本地处理。例如,窗口管理服务206或其他客户端应用能对在应用窗口中显示的图片进行放大,但能允许该窗口的标题 和边界保持完整。一旦远程应用505处理该手势,远程应用505可将应用输出传输到移动装置102,移动装置102接收该应用输出并更新应用窗口 204以显示应用对该手势输入的真实响应。在其他实施例中,本文所述的方法和系统可支持排队和抛弃(toss)使得窗口管理服务206或其他客户端应用能合并原始的触摸输入事件以防止传输管道过载以及保护该会话的交互性。合并可以通过如下方式完成:测量网络的带宽、将来自客户机的信息通过该网络以特定速率传输到远程计算机,以及通过丢弃事件来限制本地客户机原始触摸输入队列的大小。在应用505执行例如手势输入事件处理的速度较慢时也可以使用合并。例如,在一些情况下,尽管到服务器106的带宽可能是足够的,但应用505可能在解释手势输入时较慢,例如,如果服务器负载高,在这样的情况下,服务器106上的远程客户端510可合并输入以保护该应用的交互性。在不合并的情况下,应用可能忙于消化旧手势的潜在长队列并延迟对用户反应。在本公开的多个实施例中,手势输入可以是滑动(flick)。图6展示了滑动手势的示例。滑动是与滚动动作和命令相关联的快速的线性笔(或单指)运动。除了手势输入之夕卜,滑动也可以从参与装置102远程传送到在主机会话505中执行对应远程应用窗口(例如共享会话窗口)的服务器106。滑动可以与诸如左右击、滚动和书写(inking)之类的正常用户动作并存。滑动可以是单向笔手势。滑动可以通过高速度和高笔直度来表征。滑动可以通过其方向来识别。可以在对应于基本的和次级的指南针方向的八个方向来进行滑动。动作或滑动动作是响应于滑动执行的动作或快捷方式。滑动被映射到动作。图6示出了八种笔滑动,其对应各自的滑动动作。这些滑动可以被传输到服务器106以与共享会话窗口交互。现转到网络会议应用和共享会话窗口,在许多情况下,网络会议应用显示主应用窗口,其可允许至少一个用户显示应用输出。可以给这些网络会议应用提供手势支持。而且,该方法和系统可以给网络会议应用提供高保真度多点触摸支持,使得网络会议应用能允许多个用户在基本上相同的时间与一个共享会话窗口交互。例如,一个会议成员可显示共享会话窗口,而多个其他会议成员可以在基本上相同的时间与该共享会话窗口交互并修改该共享会话窗口。在一些实施例中,本文所述的方法和系统可以被扩展到投影(shadowing),即显示在服务器106 (被投影者)上执行的应用的窗口。虚通道的实例能处理手势输入,由此允许投影者和被投影者能使用触摸输入与在共享会话内生成和显示的共享会话窗口交互。在一些实施例中,虚通道实例可以是同一虚通道的多个实例(无缝虚通道或控制虚通道)。每个虚通道实例上可以进来输入并且可以通过服务器106的会话中的主虚通道协调或聚集这些输入。完成该工作可包括协调参与者102和服务器106 (投影者和被投影者)的能力并聚集各方的能力。在一些实施例中,协调不同客户机装置102能力可包括聚集所有装置102的能力而不是默认为最小公分母规则。例如,如果第一装置102支持两个同时多点触摸输入并且第二装置102支持十个同时多点触摸输入,那么协调第一和第二装置的能力可包括能够支持12个同时多点触摸输入的共享会话。在一些实施例中,组合由多个投影者和一个被投影者生成的多点触摸输入可包括采用映射表,该映射表可将用 户(例如投影者或被投影者)的触摸标识符映射到用户会话标识符(例如,Citrix生成的会话唯一标识符)。在一个实施例中,这个映射表也可用于避免来自不同用户的接触点序列ID之间的冲突。例如,映射表可用于从实际参与者触摸ID映射到服务器生成的会话唯一 ID。在又一个实施例中,映射表可用于在多点触摸环境中协调主触点。例如,从参与者102报告为主要的第一触点可以被指定为主触点而所有其他触点保持为次要的。在其他实施例中,组合由多个投影者和一个被投影者生成的多点触摸输入可包括对准来自不同用户的手势和触摸输入的时间戳。这可以作为能力协商的部分通过从每个用户收集当前时间来完成。可以确定每个用户的时间之间的差异和对于该被投影者的基准时间。接着,这些所确定的时间差异可以被用于通过减去用户时间之间的差异与该基准时间来标准化手势和触摸输入的时间戳。在其他实施例中,组合或聚集由多个投影者和一个被投影者生成的手势输入可包括丢弃输入。服务器106可确定是否处理多个输入中的每一个。在一个不例中,服务器106可确定两个输入之间的时间戳的差异是否小于所指定的阈值。例如,如果互相在I秒或更少时间内收到两个输入,可以仅处理这两个输入的其中一个以避免在修改应用显示或其他输出或执行应用功能时的潜在冲突。可以使用各种阈值并且所采用的阈值可取决于输入的类型、应用的功能或者所产生的对应用的修改。例如,缩放应用窗口可能要两秒来完成,例如对于视觉动画所要求的时间。相应地,在缩放输入的两秒内所接收的其他输入可以被丢弃或以其他方式忽略。如果一个或多个输入将要被忽略,服务器106可以选择要处理的输入。例如,相对于投影者输入,服务器106可能总是处理被投影者输入。在又一个示例中,服务器可以处理两个或多个冲突的输入中的第一输入(在时间方面)。可选择地或附加地,可实现其他规则来解决输入之间的冲突。服务器106可在应用的上下文中连续处理所接收的输入或所选择的输入,例如以影响该应用的功能或显示,以及可以将输出传输到参与装置102和用户。尽管已在附图中显示和描述了某些示例性实施例,应理解这样的实施例仅是举例说明而非对本文所述的方法和系统进行限制。此外,可以在硬件、可编程装置、固件、软件或上述的组合中实现本文所述的方法和系统或其特征中的一些特征。本文所述的方法和系统或本文所述的方法和系统的部分也可以在处理器可读介质或机器可读介质中实现,例如在磁性存储介质(例如,硬盘、软盘)、光学存储介质(例如,光盘、数字通用光盘等),或半导体存储介质(易失的和 非易失的)中。
权利要求
1.一种用于提供共享会话环境的方法,所述方法包括: 促成与第一远程计算装置的第一连接的建立以向该第一装置提供对共享会话窗口的访问; 促成与第二远程计算装置的第二连接的建立以向该第二装置提供对所述共享会话窗口的访问; 与第一和第二远程计算装置协商手势能力; 经由第一连接接收对应于第一手势的数据,该第一手势是在该第一装置处显示的共享会话窗口输入的以与所述共享会话窗口交互; 经由第二连接接收对应于第二手势的数据,该第二手势是在该第二装置处显示的共享会话窗口输入的以与所述共享会话窗口交互; 协调对应于第一和第二手势的数据以生成修改指令,该修改指令表示由在第一和第二远程计算装置处与所述共享会话窗口的交互所限定的操作;以及 通过第一和第二连接将经修改的共享会话窗口传输到第一和第二计算装置。
2.根据权利要求1所述的方法,还包括: 获取来自第一装置的第一标准化时间戳和来自第二装置的第二标准化时间戳; 其中,所述协调步骤还包括: 基于第一标准化时间戳对准所接收的第一手势的时间戳,以及 基于第二标准化时间戳对准所接收的第二手势的时间戳。
3.根据权利要求1所述的方法,其中,所述协调步骤包括采用映射表,该映射表将对应于第一手势的数据映射到第一共享会话命令并且将对应于第二手势的数据映射到第二共享会话命令。
4.根据权利要求1所述的方法,其中,第一连接包括屏幕共享通道和第一输入通道并且第二连接包括所述屏幕共享通道和第二输入通道。
5.根据权利要求1所述的方法,其中,对应于第一手势的数据是原始的多点触摸信息。
6.根据权利要求5所述的方法,其中,所述协调步骤还包括将所述原始的多点触摸信息格式化成能够与所述共享会话窗口兼容的格式。
7.根据权利要求6所述的方法,其中,所述格式化考虑所协商的第一远程计算装置的手势能力。
8.根据权利要求1所述的方法,其中,所述协商步骤包括聚集所述第一和第二远程计算装置的能力。
9.根据权利要求8所述的方法,其中,聚集所述能力包括对第一远程计算装置能接收的触摸输入的数量和第二远程计算装置能接收的触摸输入的数量进行求和。
10.根据权利要求1所述的方法,其中,通过在第一远程计算装置处对原始的多点触摸信息的处理来格式化所述对应于第一手势的数据以用于进行解释。
11.根据权利要求1所述的方法,其中,对应于第一手势的数据是滑动。
12.根据权利要求1所述的方法,其中,对应于第一手势的数据是来自笔或触摸数字转换器的触笔事件。
13.根据权利要求1所述的方法,其中,所述协调步骤还包括在共享会话中的低带宽网络情况下和/或慢处理应用中对第一和/或第二手势进行排队、抛弃和/或合并。
14.根据权利要求1所述的方法,其中,所述协调步骤还包括: 确定第一和第二手势的接收时间差;以及 响应于确定所述时间差小于阈值时间量,丢弃第一和第二手势的其中一个。
15.一种用于提供共享会话环境的方法,所述方法包括: 促成与第一远程计算装置的第一连接的建立以向该第一装置提供对共享会话窗口的访问; 促成与第二远程计算装置的第二连接的建立以向该第二装置提供对该共享会话窗口的访问; 与第一远程计算装置协商手势能力; 经由第一连接接收与在该第一装置处显示的共享会话窗口输入的以与该共享会话窗口交互的手势对应的数据; 经由第二连接接收与在该第二装置处显示的共享会话窗口输入的以与该共享会话窗口交互的非手势对应的数据; 协调与所述手势和非手势对应的数据以生成修改指令,该修改指令表示由在第一和第二远程计算装置处与所述共享会话窗口的交互所限定的操作;以及 通过第一和第二连接将经修改的共享会话窗口传输到第一和第二计算装置。
16.根据权利要求15所述的方法,还包括: 获取来自第一装置的第一标准 化时间戳和来自第二装置的第二标准化时间戳; 其中,所述协调步骤还包括: 基于第一标准化时间戳对准所接收的手势的时间戳,以及 基于第二标准化时间戳对准所接收的非手势的时间戳。
17.根据权利要求15所述的方法,其中,所述协调步骤包括采用映射表,该映射表将与所述手势对应的数据映射到第一共享会话命令并且将与所述非手势对应的数据映射到第二共享会话命令。
18.根据权利要求15所述的方法,其中,第一连接包括屏幕共享通道和第一输入通道并且第二连接包括所述屏幕共享通道和第二输入通道。
19.根据权利要求15所述的方法,其中,所述非手势是鼠标点击或键盘输入。
20.根据权利要求15所述的方法,其中,与所述手势对应的数据是原始的多点触摸信肩、O
21.根据权利要求20所述的方法,其中,所述协调步骤还包括将所述原始的多点触摸信息格式化成能够与所述共享会话窗口兼容的格式。
22.根据权利要求21所述的方法,其中,所述格式化考虑所协商的第一远程计算装置的手势能力。
23.根据权利要求15所述的方法,其中,所述协商步骤包括聚集所述第一和第二远程计算装置的能力。
24.根据权利要求23所述的方法,其中,聚集所述能力包括对第一远程计算装置能接收的触摸输入的数量和第二远程计算装置能接收的触摸输入的数量进行求和。
25.根据权利要求15所述的方法,其中,通过在第一远程计算装置处对原始的多点触摸信息的处理来格式化与所述手势对应的数据以用于进行解释。
26.根据权利要求15所述的方法,其中,与所述手势对应的数据是滑动。
27.根据权利要求15所述的方法,其中,与所述手势对应的数据是来自笔或触摸数字转换器的触笔事件。
28.根据权利要求15所述的方法,其中,所述协调步骤还包括在共享会话中的低带宽网络情况下和/或慢处理应用中对所述手势和非手势进行排队、抛弃和/或合并。
29.根据权利要求15所述的方法,其中,所述协调步骤还包括: 确定所述手势和非手势的接收时间差;以及 响应于确定所述时间差小于阈值时间量,丢弃所述手势和非手势的其中一个。
30.一种用于提供共享会话环境的装置,所述装置包括: 网络接口,其被配置为: 促成与第一远程计算装置的第一连接的建立以向该第一装置提供对共享会话窗口的访问; 促成与第二远程计算装置的第二连接的建立以向该第二装置提供对所述共享会话窗口的访问; 处理器,其被配置为执行软件以便: 与第一和第二远程计算装置协商手势能力; 从第一连接接收对应于第一手 势的数据,该第一手势是在该第一装置处显示的共享会话窗口输入的以与该共享会话窗口交互; 从第二连接接收对应于第二手势的数据,该第二手势是在该第二装置处显示的共享会话窗口输入的以与该共享会话窗口交互; 协调对应于第一和第二手势的数据以生成修改指令,该修改指令表示由在第一和第二远程计算装置处与所述共享会话窗口的交互所限定的操作;以及 通过第一和第二连接将经修改的共享会话窗口传输到第一和第二计算装置。
31.根据权利要求30所述的装置,其中,所述处理器被配置为还执行软件以便: 获取来自第一装置的第一标准化时间戳和来自第二装置的第二标准化时间戳; 其中执行所述协调指令的软件还: 基于第一标准化时间戳对准所接收的第一手势的时间戳,以及 基于第二标准化时间戳对准所接收的第二手势的时间戳。
32.根据权利要求30所述的装置,其中,所述协调指令包括采用映射表,该映射表将对应于第一手势的数据映射到第一共享会话命令并且将对应于第二手势的数据映射到第二共享会话命令。
33.根据权利要求30所述的装置,其中,第一连接包括屏幕共享通道和第一输入通道并且第二连接包括所述屏幕共享通道和第二输入通道。
34.根据权利要求30所述的装置,其中,对应于第一手势的数据是原始的多点触摸信肩、O
35.根据权利要求34所述的装置,其中,所述协调步骤还包括将所述原始的多点触摸信息格式化成能够与所述共享会话窗口兼容的格式。
36.根据权利要求35所述的装置,其中,所述格式化考虑所协商的第一远程计算装置的手势能力。
37.根据权利要求30所述的装置,其中,所述协商指令包括聚集所述第一和第二远程计算装置的能力。
38.根据权利要求37所述的方法,其中,聚集所述能力包括对第一远程计算装置能接收的触摸输入的数量和第二远程计算装置能接收的触摸输入的数量进行求和。
39.根据权利要求30所述的装置,其中,通过在第一远程计算装置处对原始的多点触摸信息的处理来格式化所述对应于第一手势的数据以用于进行解释。
40.根据权利要求30所述的装置,其中,对应于第一手势的数据是滑动。
41.根据权利要求30所述的装置,其中,对应于第一手势的数据是来自笔或触摸数字转换器的触笔事件。
42.根据权利要求30所述的装置,其中,执行所述协调指令的软件还在共享会话中的低带宽网络情况下和/或慢处理应用中对第一和/或第二手势进行排队、抛弃和/或合并。
43.根据权利要求30所述的装置,其中,所述协调指令包括: 确定第一和第二手势的接收时间差;以及 响应于确定所述时间差小于阈值时间量,丢弃第一和第二手势的其中一个。
44.一种用于提供共享会话环境的装置,所述装置包括: 网络接口,其被配置为: 促成与第一远程计算装置的第一连接的建立以向该第一装置提供对共享会话窗口的访问;· 促成与第二远程计算装置的第二连接的建立以向该第二装置提供对所述共享会话窗口的访问; 处理器,其被配置为执行软件以便: 与所述第一装置协商手势能力; 从第一连接接收与在该第一装置处显示的共享会话窗口输入的以与该共享会话窗口交互的手势对应的数据; 从第二连接接收与在该第二装置处显示的共享会话窗口输入的以与该共享会话窗口交互的非手势对应的数据; 协调与所述手势和非手势对应的数据以生成修改指令,该修改指令表示由在第一和第二远程计算装置处与所述共享会话窗口的交互所限定的操作;以及 通过第一和第二连接将经修改的共享会话窗口传输到第一和第二计算装置。
45.根据权利要求44所述的装置,其中,所述处理器被配置为还执行软件以便: 获取来自第一装置的第一标准化时间戳和来自第二装置的第二标准化时间戳; 其中执行所述协调指令的软件还: 基于第一标准化时间戳对准所接收的手势的时间戳,以及 基于第二标准化时间戳对准所接收的非手势的时间戳。
46.根据权利要求44所述的装置,其中,所述协调指令包括采用映射表,该映射表将与所述多点触摸手势对应的数据映射到第一共享会话命令并且将与所述动作对应的数据映射到第二共享会话命令。
47.根据权利要求44所述的装置,其中,第一连接包括屏幕共享通道和第一输入通道并且第二连接包括所述屏幕共享通道和第二输入通道。
48.根据权利要求44所述的装置,其中,所述非手势是鼠标点击或键盘输入。
49.根据权利要求44所述的装置,其中,对应于第一手势的数据是原始的多点触摸信息。
50.根据权利要求49所述的装置,其中,所述协调步骤还包括将所述原始的多点触摸信息格式化成能够与所述共享会话窗口兼容的格式。
51.根据权利要求50所述的装置,其中,所述格式化考虑所协商的第一远程计算装置的手势能力。
52.根据权利要求44所述的装置,其中,所述协商指令包括聚集所述第一和第二远程计算装置的能力。
53.根据权利要求52所述的方法,其中,聚集所述能力包括对第一远程计算装置能接收的触摸输入的数量和第二远程计算装置能接收的触摸输入的数量进行求和。
54.根据权利要求44所述的装置,其中,通过在第一远程计算装置处对原始的多点触摸信息的处理来格式化与所述手势对应的数据以用于进行解释。
55.根据权利要求44所述的装置,其中,与所述手势对应的数据是滑动。
56.根据权利要求41所述的装置,其中,与所述手势对应的数据是来自笔或触摸数字转换器的触笔事件。
57.根据权利要求44所述的装置,其中,执行所述协调指令的软件还在共享会话中的低带宽网络情况下和/或慢处理应用中对所述手势和非手势进行排队、抛弃和/或合并。
58.根据权利要求44所述的装置,其中,所述协调指令包括: 确定所述手势和非手势的接收时间差;以及 响应于确定所述时间差小于阈值时间量,丢弃所述手势和非手势的其中一个。
全文摘要
示出和描述了用于为共享会话提供手势支持的方法和系统。一种方法包括促成与第一和第二计算装置的第一和第二连接的建立、与第一和第二计算装置协商手势能力、接收来自第一和第二计算装置的手势输入、协调这些手势输入,以及将经修改的共享会话窗口传输到第一和第二计算装置。
文档编号G06F9/44GK103238135SQ201180058214
公开日2013年8月7日 申请日期2011年10月5日 优先权日2010年10月5日
发明者G·莫姆驰劳威 申请人:思杰系统有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1