为Web实时通信(WebRTC)交互流提供智能管理的方法和系统的制作方法_2

文档序号:8285318阅读:来源:国知局
4和WebRTC功能提供者26经由一组定义的API通信地耦合,如双向箭头32所指示。类似地,脚本处理引擎28和WebRTC功能提供者30如双向箭头34所示通信地耦合。WebRTC客户端12和18被配置为分别接收来自用户36和38的输入,用于建立、参与和/或终止WebRTC交互流。
[0026]提供了 WebRTC应用服务器40来用于向作出请求的WebRTC客户端12、18提供使能了 WebRTC的web应用(未示出)。在一些实施例中,WebRTC应用服务器40可以是单个服务器,而在一些应用中,WebRTC应用服务器40可包括与彼此通信地耦合多个服务器。要理解,WebRTC应用服务器40可与计算设备14和/或16驻留在同一公共或私有网络内,或者可位于单独的、通信耦合的公共或私有网络内。
[0027]图1还示出了由于在WebRTC客户端12与WebRTC客户端18之间建立WebRTC交互流42而产生的特征WebRTC拓扑。为了建立WebRTC交互流42,WebRTC客户端12和WebRTC客户端18两者都从WebRTC应用服务器40下载相同的WebRTC web应用或兼容的WebRTCweb应用(未示出)。在一些实施例中,WebRTC web应用包括利用HTML5提供丰富用户界面并且使用JavaScript来处理用户输入并与WebRTC应用服务器40通信的HTML/JavaScriptweb应用。
[0028]WebRTC客户端12和WebRTC客户端18随后参与发起对话44,发起对话44可包括在WebRTC客户端12、WebRTC客户端18和/或WebRTC应用服务器40之间传送以便为WebRTC交互流42建立对等连接的任何数据。作为非限制性示例,发起对话44可包括WebRTC会话描述对象、HTTP头部数据、凭证、密钥和/或网络路由数据。在一些实施例中,发起对话44可包括WebRTC要约/应答(offer/answer)交换。在发起对话44期间交换的数据可用于为期望的WebRTC交互流42确定媒体类型和能力。一旦发起对话44完成,就可经由WebRTC客户端12和WebRTC客户端18之间的安全对等连接46来建立WebRTC交互流42。
[0029]在一些实施例中,安全对等连接46可经过网络元件48。网络元件48可以是具有网络通信能力并且提供媒体传输和/或媒体处理功能的计算设备。作为非限制性示例,网络兀件48可以是网络地址转换(Network Address Translat1n, NAT)服务器、NAT会话穿越实用工具(Sess1n Traversal Utilities for NAT, STUN)月艮务器、利用中继穿越NAT (Traversal Using Relays around NAT, TURN)服务器和/或媒体服务器。要理解,虽然图1的示例示出了对等情况,但本文公开的其他实施例可包括其他网络拓扑。作为非限制性示例,可经由诸如网络元件48之类的共同的媒体服务器来连接WebRTC客户端12和WebRTC客户端18。
[0030]如上所述,WebRTC客户端12和18可包括使能了 WebRTC的web浏览器,这些web浏览器已演进为支持文本和数据驱动的交互。因此,典型WebRTC客户端的响应于诸如拖放输入之类的用户输入手势的行为一般而言在WebRTC交互流的情境中可能未被明确定义。当多于两个用户在参与给定的WebRTC交互式会话,和/或多个WebRTC交互式会话在WebRTC客户端的多个实例内同时活动时,可能尤其如此。
[0031]因此,提供了图1的WebRTC客户端12来智能地管理WebRTC交互流。WebRTC客户端12被配置为接收用户输入手势49,用户输入手势49可针对与一个或多个WebRTC用户相对应的一个或多个视觉表示,并且可指示出要对相应的(一个或多个)WebRTC用户执行的期望动作,这将在下文更详细论述。可经由鼠标、触摸屏或其他输入设备来接收用户输入手势49,并且可通过按钮点击、触摸或挥手手势来发起用户输入手势49。作为非限制性示例,用户输入手势49可包括拖曳、拖放手势、左键或右键点击操作、多点触摸界面操作或者菜单选择。在一些实施例中,用户输入手势49所针对的视觉表示可具体对应于关于一WebRTC用户的特定类型的WebRTC交互流(例如,WebRTC视频、音频和/或聊天WebRTC交互流),或者可表示关于一 WebRTC用户的所有可用WebRTC交互流。作为非限制性示例,视觉表示可以是静态视觉表示,例如文本元素、图标、图像或者文本串(例如电子邮件地址),或者可以是动态视觉表示,例如示出正在进行的WebRTC视频或文本流的窗口。
[0032]WebRTC客户端12可基于情境50确定响应于用户输入手势49要采取的适当动作。情境50可包括对WebRTC客户端12的一个或多个实例的状态的知晓,和/或对与WebRTC客户端12同时执行的一个或多个其他应用的状态的知晓。WebRTC客户端12还可获得与一个或多个WebRTC用户相关联的一个或多个身份属性52,这一个或多个WebRTC用户与用户输入手势49所针对的(一个或多个)视觉表不相关联。(一个或多个)身份属性52可基于WebRTC客户端12可访问的身份信息,或者可由外部应用和/或WebRTC客户端12在其上执行的操作系统来提供。
[0033]WebRTC客户端12可选地可基于其他输入确定适当的动作,例如默认54。在一些实施例中,默认54可包括定义在给定的情形中将自动使用的行为或响应的管理性默认。默认54可一般地指定WebRTC客户端12的行为,或者可与特定的WebRTC用户或用户输入手势相关联。WebRTC客户端12还可基于诸如所请求的WebRTC交互流的具体类型(例如,音频和视频,或者仅音频)之类的额外的情境性信息来确定适当的动作。
[0034]基于用户输入手势49、情境50、( 一个或多个)身份属性52和诸如默认54之类的其他提供的输入,WebRTC客户端12可提供包括与用户输入手势49所针对的(一个或多个)视觉表示相关联的一个或多个WebRTC用户的一个或多个WebRTC交互流42。在一些实施例中,提供一个或多个WebRTC交互流42可包括建立新的WebRTC交互流42、修改现有的WebRTC交互流42和/或终止现有的WebRTC交互流42。这样,WebRTC客户端12可提供直观且灵活的WebRTC交互流管理,包括静音和解除静音以及创建和合并WebRTC交互式会话,以及提供个体WebRTC交互流的内容、抑制个体WebRTC交互流的内容和/或对个体WebRTC交互流进行静音和解除静音。要理解,本文公开的WebRTC客户端12的功能可由被WebRTC客户端12执行的web应用、由集成到WebRTC客户端12中的浏览器扩展或插件和/或由WebRTC客户端12本身的原生功能来提供。
[0035]图2是示出图1的WebRTC客户端12对WebRTC交互流的智能管理的示范性操作的流程图。为了清晰起见,在描述图2时引用了图1的元素。在图2中,操作开始于在计算设备14上执行的WebRTC客户端12接收针对与一个或多个WebRTC用户相对应的一个或多个视觉表示的用户输入手势49(方框56)。一些实施例可规定,作为非限制性示例,用户输入手势49包括拖放手势、按钮点击、触摸、挥手和/或菜单选择。WebRTC客户端12接下来基于WebRTC客户端12的当前状态为WebRTC客户端12确定情境50 (方框58)。在一些实施例中,情境50可包括对WebRTC客户端12的一个或多个实例的状态的知晓,和/或对与WebRTC客户端12同时执行的一个或多个其他应用的状态的知晓。
[0036]WebRTC客户端获得与一个或多个WebRTC用户相关联的一个或多个身份属性52 (方框60)。(一个或多个)身份属性52可基于WebRTC客户端可访问的身份信息,或者可由外部应用和/或WebRTC客户端在其上执行的操作系统来提供。WebRTC客户端随后基于情境50、用户输入手势49和一个或多个身份属性52来提供包括一个或多个WebRTC用户的一个或多个WebRTC交互流42 (方框62)。
[0037]图3A和3B是示出根据本文公开的实施例利用拖放用户输入手势72将图1的WebRTC客户端12的第一实例66中的第一 WebRTC交互式会话64的参与者添加到WebRTC客户端12的第二实例70中的现有WebRTC交互式会话68中的图。图3A示出了第一实例66和第二实例70的初始状态,而图3B示出了拖放用户输入手势72的结果。在图3A和3B中,为了清晰起见,WebRTC客户端12的第一实例66和第二实例70被示为分开的窗口。然而,要理解,一些实施例可规定,第一实例66和第二实例70可包括单个应用窗口内的分开的浏览器选项卡、根据需求创建的空浏览器选项卡和/或可包括其他用户界面配置。
[0038]在图3A中,WebRTC客户端12的第一实例66显示包括用户Alice的视觉表示74 (I)、用户Bob的视觉表示74 (2)、用户Charlie的视觉表示74 (3)和用户David的视觉表示74 (4)的第一 WebRTC交互式会话64。每个视觉表示74指示出在WebRTC客户端12的第一实例66内发生的Alice、Bob、Charlie和David之间的第一 WebRTC交互式会话64中的一个参与者。类似地,WebRTC客户端12的第二实例70显示用户Alice的视觉表示74(5)和用户Ed的视觉表示74 (6),这表示Alice与Ed之间的第二 WebRTC交互式会话68。在一些实施例中,每个视觉表示74可以是动态表示,例如由WebRTC实时视频流提供的实况视频馈送,或者动态更新的图像或文本串。一些实施例——例如WebRTC交互式会话仅包括WebRTC音频或数据流的那些实施例——可规定每个参与者的视觉表示可以是静态图像,例如图标或头像或者静态文本串。根据本文公开的一些实施例,视觉表示74可以如图3A中所示布置成行和列,或者视觉表示74可以布置成其他配置(例如,隐藏或最小化WebRTC客户端12的用户的视觉表示)。
[0039]在图3A的示例中,WebRTC客户端12接收用户输入手势72,该用户输入手势72是针对用户David的视觉表示74(4)的。在一些实施例中,用户输入手势72可包括通过在视觉表示74(4)上点击鼠标或其他指点设备或者通过在触摸屏上触摸视觉表示74(4)来发起的拖放手势。用户David的视觉表示74(4)随后被从WebRTC客户端12的第一实例66拖曳,并且被放在WebRTC客户端12的第二实例70中的第二 WebRTC交互式会话68上。
[0040]此时,WebRTC客户端12确定当前情境50。情境50包括对第一实例66和第二实例70的当前状态和活动的知晓(即,对于第一和第二 WebRTC交互式会话64、68当前分别在第一实例66和第二实例70中活动的知晓)。WebRTC客户端12还获得与第一实例66和第二实例70中的WebRTC交互式会话所涉及的参与者相关联的身份属性52。身份属性52可包括例如被WebRTC客户端12用于建立WebRTC交互式会话的身份信息。
[0041]基于用户输入手势72、情境50和身份属性52,WebRTC客户端12将用户David添加到WebRTC客户端12的第二实例70的第二 WebRTC交互式会话68中。在一些实施例中,这可通过WebRTC客户端12在用户David与第二实例70中的第二 WebRTC交互式会话68的
当前第2页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1