视频通信数据的动态显示的制作方法

文档序号:12287720阅读:316来源:国知局
视频通信数据的动态显示的制作方法与工艺

移动计算的到来与更强联网能力的结合已经改变了个人通信的方式。以前,为了提供不同类型的通信,专门的网络必须与特定设备一起配置。例如视频会议依赖于专门的电话网络、无线电频率或闭路式电视系统来提供不同位置(并且经常固定的)位置处的用户之间的双方或多方视频通信。由于宽带或其它高容量联网技术已经允许例如经由互联网更大更灵活地访问多个不同系统或设备,所以不同类型的通信已经发展或演化以利用这些更强的联网能力。例如,即时消息技术可通过互联网提供文本消息的实时传输,从而允许参与方在两个支持互联网的设备之间进行聊天。

视频会议也已经演化以方便连接到网络的设备之间的视频通信。视频通信数据可通过网络诸如互联网传输到其他参与方,从而提供类似视频会议的用户体验,而不受到过去且更静态通信技术的限制。然而,由于很多设备诸如膝上型电脑、移动电话、平板电脑、或其他移动计算设备现在便于多个程序或功能同时操作,所以视频通信可能受到执行视频通信的设备的计算资源的中断、忽视或者竞争,从而消弱了新的视频通信技术的范围或效用。



技术实现要素:

本文介绍了动态显示的视频通信数据的多个实施方案。可基于两个或更多个参与方之间视频通信数据的传输来促进这些参与方之间的视频通信。然而,其他应用程序可能当前正在这些参与方中的一者或多者处执行,其可能正在控制或显示电子显示器上的图像数据或视频数据。作为视频通信一部分而接收的视频通信数据然后可显示在可由当前正在执行的应用程序配置的电子显示器的一部分内。当前正在执行的应用程序可配置运行时的一个或多个显示属性,所述显示属性指示视频通信数据的显示位置。在一些实施方案中,视频通信数据可混入到当前正在执行的应用程序的其他图像或视频数据中,以生成单个视频流供显示。对于视频通信可经由视频通信数据的显示位置中的触摸输入来接收各种输入,诸如暂停、恢复、或结束视频通信。

附图说明

图1A和图1B根据一些实施方案示出不同参与方之间的对等管理的视频通信。

图2A是根据一些实施方案示出视频通信参与方处视频通信数据的动态显示的框图。

图2B根据一些实施方案示出一种为视频通信以集成显示模式显示视频通信数据的参与方设备。

图2C根据一些实施方案示出一种为视频通信以全屏显示模式显示视频通信数据的参与方设备。

图3是根据一些实施方案的一种视频通信模块的框图。

图4是根据一些实施方案示出用于动态显示视频通信数据的方法和技术的高阶流程图。

图5至图6C根据一些实施方案示出参与方设备的电子显示器中动态显示的视频通信数据。

图7是根据一些实施方案示出用于为多个视频通信参与方动态显示视频通信数据的方法和技术的高阶流程图。

图8根据一些实施方案示出参与方设备的电子显示器中对于多个视频通信参与方动态显示的视频通信数据。

图9是根据一些实施方案示出用于处理用于所动态显示的视频通信数据的输入的方法和技术的高阶流程图。

图10A至图10C根据一些实施方案示出用于处理用于所动态显示的视频通信数据的输入的示例。

图11是根据一些实施方案示出对于视频通信数据的传输实施动态暂停和恢复的视频通信模块的示例性传输/接收管理器模块的框图。

图12是根据一些实施方案示出用于动态地检测视频通信的暂停或恢复事件的方法和技术的高阶流程图。

图13是根据一些实施方案示出用于确定视频通信的活跃交换指示符的方法和技术的高阶流程图。

图14是根据一些实施方案示出用于从视频消息向视频通信的动态转变的方法和技术的高阶流程图。

图15是根据一些实施方案示出用于为视频通信与视频消息之间的动态转变监视视频通信连接的质量的方法和技术的高阶流程图。

图16A和图16B根据一些实施方案示出视频消息中的多个参与方向视频通信的动态转变。

图17是根据一些实施方案示出实施视频通信与视频消息之间的动态转变的视频通信模块的连接管理器的框图。

图18是根据一些实施方案示出用于即时视频通信的方法和技术的高阶流程图。

图19A和图19B是根据一些实施方案示出用于获取建立即时视频通信连接的授权的方法和技术的高阶流程图。

图20是根据一些实施方案示出用于经由即时视频通信连接显示视频通信数据的方法和技术的高阶流程图。

图21是根据一些实施方案示出实施即时视频通信的视频通信模块的连接管理器的框图。

图22至图24是根据一些实施方案示出示例性便携式多功能计算设备的框图。

图25示出根据一些实施方案的一种示例性计算系统。

虽然在这里借助于几个实施方案和示例性附图的示例介绍了本发明,但是本领域的技术人员将认识到,本发明并不限于所介绍的实施方案或附图。应当理解,附图和对其的详细描述并不是要将本发明限制到所公开的具体形式,而相反,本发明旨在涵盖落入到本发明的实质和范围内的所有修改形式、等价形式和替代形式。本文所使用的标题仅用于组织的目的,并非意在用于限制说明书的范围。如在整个专利申请中所使用的那样,以允许的意义(即,意味着具有可能性)而不是强制的意义(即,意味着必须)来使用字词“可能”。类似地,词语“包括”、“包含”、和“具有”是指包括、但不限于。

具体实施方式

本文介绍了视频通信的动态显示的多个实施方案。视频通信可在不同参与方设备之间进行。这些参与方设备可在相应参与方设备处捕获(通常是用户的)视频和音频数据,并将所采集的视频通信数据传输到视频通信中的其他参与方以进行显示。虽然视频通信数据可在视频通信应用程序控制下显示,例如以全屏显示模式进行显示,但是其他应用程序可同时正在参与方设备处运行。这些应用程序可控制或使用所述应用程序的图像数据或其他图形的部分或全部显示。视频通信的动态显示可允许当前正在运行的应用程序控制、指示或以其他方式配置为视频通信所接收的视频通信数据被显示在参与方设备的什么地方。

本文介绍了视频通信的动态暂停和恢复的多个实施方案。如上所述,视频通信中的参与方设备上可正在运行其他应用程序或任务。因此,经由视频通信的信息参与或活跃交换的水平有时可能波动。为视频通信捕获的通信数据的评估可指示视频通信数据中的一些是否有必要传输或者是否没有任何视频通信数据有必要传输。视频通信的动态暂停和恢复可提供对暂停事件的自动化或智能检测,其中可暂停部分或全部视频通信数据的活跃传输,而不禁止活跃参与方之间经由视频通信的信息交换。类似地,恢复事件的自动化或智能检测可允许恢复被暂停的视频通信数据传输。因此可动态地节省参与方设备处的计算资源。

本文介绍了从视频消息向视频通信的动态转变的多个实施方案。视频消息用来向接收方设备发送可在接收方方便时回放的视频。对于用户而言,以这种方式交换信息可能比多方通信(诸如视频通信)效率低。可实施从视频消息的动态转变,使得如果接收方设备的用户接收到视频消息并且希望进行响应或者进行进一步通信,则可建立视频通信,而不是用另一视频消息进行应答。以这种方式,用户可以更大的灵活性对视频消息进行响应:可建立视频通信,也可保存视频消息以供随后回放和/或响应。

本文介绍了即时视频通信连接的多个实施方案。对于某些用户之间的通信,可能有利的是,相比于其他通信技术诸如语音或文本更偏向视频通信。家庭成员、朋友、同事或其他通信关系可利用快速高效的视频通信。即时视频通信可允许用户授权在相应参与方设备之间预先建立的视频通信连接,使得视频通信可以看起来即刻开始。例如,视频通信一被接收到就可被显示,从而使进行视频通信之前所需的时间最小化。用户可管理或授权哪些其他用户(或其相应参与方设备)可与其自己的相应参与方设备建立即时视频通信。

视频通信可通过广域网在两个或更多个参与方设备之间进行。参与方设备可实施可促进视频通信(从建立连接到捕获、传输和处理所接收的视频通信数据)的某种类型的应用程序、模块或部件。不同类型的参与方设备以及不同数量的参与方可建立或参与视频通信,诸如双方或多方视频通信。在各种实施方案中,视频通信可被对等协调或管理。例如,进行视频通信的参与方设备可利用对等通信策略或协议来传输和接收通信数据。需注意,对等管理的视频通信可以不排除使用第三方系统或服务来促进视频通信的部分,诸如可为参与方设备提供对广域网的接入的蜂窝或其他类型的无线网络服务、鉴权或标识服务、或者简单地中继或重新传输消息或数据以确保视频通信到达所有参与方。在至少一些实施方案中,对等管理的视频通信可以不包括中央视频通信协调器、服务器、系统或服务,而是相反可允许参与方设备作为对等方来管理或协调参与方设备之间视频通信数据的转发。

图1A和图1B根据一些实施方案示出不同参与方之间的对等管理的视频通信。参与方设备(例如参与方设备102,112,122,132,142,152和162)可实施在不同设备或不同设备类型上。参与方设备的示例可包括图22至图24所示的便携式多功能设备诸如多功能设备3000、其他类型的移动计算设备诸如电话、计算机、膝上型电脑、个人数字助理(PDA)、或任何计算系统诸如下文参考图25所述的计算系统4000。相应视频通信模块(例如视频通信模块104,114,124,134,144,154和164)可实施在每个参与方设备处以便促进通过广域网100的视频通信。视频通信模块可以多种不同方式来实施。下文中详细介绍的图3提供了一种视频通信模块的一些实施方案的一个示例。

不同视频通信可由通过广域网100(例如互联网)的视频通信连接来建立。例如在图1A中,双方视频通信可在参与方设备102与参与方设备104之间建立。而在图1B中,多方视频通信可在参与方设备124,134,144,154和164之间建立。参与方设备可被配置为以不同方式接入广域网100。例如,参与方设备102可被配置为可利用网关接入可与广域网100通信的特定无线网络诸如蜂窝网络。网关可以提供面向分组的移动数据服务(诸如通用分组无线电服务(GPRS))、或者允许无线网络传输数据到其他网络(诸如广域网100)的其他移动数据服务。同样地,不同接入设备或接入点(例如IEEE 802.11g无线接入路由器或设备)可提供对广域网100的通信接入。参与方设备112例如可被配置为(或被授权)利用接入设备来获得对广域网100的接入。因此在各种实施方案中,参与方设备可以不同方式接入广域网100并且仍然可建立视频通信。因此,前面的示例并非旨在是对于可为参与方设备获得对广域网100的接入的其他方式的限制。

视频通信的视频通信数据自身可利用各种适于或能够经由广域网100通信的传输格式或协议来进行交换,包括但不限于SIP(会话发起协议)、STUN(用于NAT的会话穿越实用工具)、TURN(利用中继NAT的穿越)、ICE(交互式连接建立)、RTP(实时传输协议)、SRTP(安全RTP)。视频通信模块可被配置为根据各种传输协议格式化、处理、传输、发送或接收视频通信数据(例如音频和/或视频数据),以及加密、压缩、编码、解密、解压缩和解码视频通信数据。

图2A是根据一些实施方案示出视频通信中参与方设备处视频通信数据的动态显示的框图。参与方设备200可以是参与方设备102,112,122,132,142,152或162、下文参考图22至图24所述的便携式多功能设备3000、或者下文参考图25所述的计算系统4000中任何一者。

参与方设备200可实施用于执行各种任务或应用(诸如视频通信)的多层功能。应用层210可允许实施应用程序(诸如视频通信应用程序214(类似于上文参考图1所述的视频通信模块))以及多个其他应用程序212。在应用层210中实施的当前正在参与方设备200上运行的应用程序可经由在中间件/操作系统层220中实施的用于参与方设备200的数据、特征、服务、控制、或其它功能的一个或多个不同对象或编程接口(API)访问参与方设备200的相应数据、特征、服务、控制、或其它功能。参与方设备200可实施各种中间件层220和/或操作系统层220以提供服务。操作系统例如可提供对在硬件层230中实施的硬件设备(诸如显示设备232或其它设备、部件、或子系统或电路)的访问和/或管理。参与方设备200可包括硬件层230,硬件层包括各种硬件部件诸如电子显示器232、其它输入/输出设备(例如麦克风、键盘、触敏区域(触敏区域也可以是电子显示器232)、扬声器)或者实施参与方设备200的其它硬件部件、处理器、图形加速器、或其它部件(诸如下文参考便携式多功能设备3000或计算系统4000所述的那些)。

如图2A所示,视频通信应用程序214可实施在应用层210中。视频通信应用程序214(诸如上文参考图1所述或者下文参考图3更详细所述的那些视频通信模块)可执行通过网络与其它参与方的视频通信,如上文参考图1A和图1B所述。视频通信数据202可作为当前(或所发起的)与一个或多个其它参与方设备的视频通信的一部分在视频通信应用程序214处被接收。视频通信应用程序214可被配置为处理视频通信数据202(例如解密、解压缩、解码)或以其它方式准备用于显示的视频通信数据。然后作为执行当前视频通信的一部分,视频通信应用程序214可进行对音频/视频管理模块222的一个或多个调用或请求,以便最终在显示器232上显示视频通信数据。在各种实施方案中,视频通信数据可包括来自作为同一视频通信(例如多方视频通信)一部分参与的多个不同参与方的视频通信数据。

在各种实施方案中,视频通信214可以不同的显示模式工作。例如全屏显示模式可允许视频通信应用程序214控制显示器232的大部分或全部来实施视频通信,包括对所显示的视频通信数据格式化或帧处理的用户界面元素或图形(例如窗口、工具条、或按钮)的其它视频/图像数据。在至少一些实施方案中,可在其它应用程序212或部件(例如操作系统接口)正在显示器232上显示图像数据、视频数据、或任何其它形式的图形显示时使用集成显示模式。音频/视频管理部件222可提供软件钩、显示属性、或其它技术来指示视频通信数据在全屏模式或集成显示模式中的显示。例如,如果视频通信应用程序214以全屏模式工作,则音频/视频管理部件可为视频通信应用程序214指定或请求的视频通信数据202确定显示器232内的显示位置,这可能消耗显示器232的大部分。例如图2C根据一些实施方案示出一种为视频通信以全屏模式显示视频通信数据的参与方设备。

在一些实施方案中,视频应用程序模块214可工作于集成显示模式。例如,其它应用程序212可当前正在运行。作为其它应用程序212的运行的一部分,应用程序图像数据204(或视频或其它图形数据)可被获得、接收、或生成并在显示器232上显示,如从其它应用程序212通过音频/视频管理模块222到显示器232的箭头所示。同样仍然可接收在其它应用程序212运行之前或期间发起的视频通信的视频通信数据202。音频/视频管理模块222可被配置为标识显示器232内用于视频通信数据202的显示位置。这个标识可动态地进行,因为用于视频通信数据的显示属性可在运行时由其它应用程序212来配置。例如,其它应用程序212可定义在接收到视频通信数据用于显示的情况下配置显示属性的事件检测机构或软件钩。这样,视频通信数据202可显示在为了允许应用图像数据204如期望的那样被显示而优化的位置中,即使当前视频通信可能正在进行也是如此,如音频/视频管理模块222内的箭头所示。在至少一些实施方案中,视频通信数据可直接与应用图像数据204或其它编码为用于显示的单个数据流的视频或图形数据混合或集成,如下文参考图5所述。音频/视频管理模块222可协调或管理可用于应用图像数据204和视频通信数据202的软件或硬件资源(例如视频编码器)。

图2B根据一些实施方案示出一种为视频通信以集成显示模式显示视频通信数据的参与方设备。视频通信数据202根据其它应用程序212配置的显示属性与应用图像数据204集成,将视频通信数据202放置在参与方设备显示器232内不妨碍应用图像数据204的显示的位置(例如空白区或死区,或者在可容易地调整以在视频通信数据202周围工作的图像数据内)。需注意,虽然参考应用层210中的应用程序给出了以上示例性集成显示模式,但是同样可能的是,中间件/操作系统层220的部件(例如操作系统用户接口)也可配置视频通信数据的显示属性,以便以适应为中间件/操作系统层220的部件显示的图像或其它图形数据的方式显示视频通信数据202。

在各种实施方案中,音频/视频管理模块222可被配置为确定当前视频通信的显示模式,是全屏模式还是集成显示模式。然而在一些实施方案中,视频模块应用程序214可确定或保持显示模式的状态,并提供音频/视频管理部件222的指示或格式化对音频/视频管理部件222的请求,使得音频/视频管理模块222根据当前显示模式处理视频通信数据202。在一些实施方案中,可接收输入来在全屏显示模式和集成显示模式之间进行切换。

视频应用程序214还可被配置为向音频/视频管理模块222提供用户界面元素用于显示。这些用户界面元素也可根据所确定的位置(例如在视频应用程序模块214指定的所确定位置内)或显示器232中的各个其它位置(例如可由其它应用程序212在运行时配置的其他显示属性来指示)来显示。视频通信应用程序214可处理经由这些用户界面元素接收的输入(例如暂停、恢复、结束)。

视频通信应用程序可以多种不同方式实施,以便促进通过网络的视频通信。图3是根据一些实施方案的一种视频通信模块的框图,该视频通信模块可实施视频通信。需注意,图3中所示的各个部件可在硬件、软件或它们的任意组合中实现。在示出单个部件的地方,可以理解,可以另选地实施多个部件来提供相同功能。因此,以下关于图3的讨论并非旨在对于视频通信模块的具体实施进行限制。视频通信模块300可实施在多种不同类型的参与方设备上,诸如移动计算设备、移动电话、膝上型电脑、或其它便携式多功能设备(诸如作为图22中便携式多功能设备3000的一部分实施的视频通信模块3039)或者计算设备(诸如下文参考图25所述的计算系统4000)。

在各种实施方案中,视频通信模块300可实施用户界面310来接收、处理、解析或操纵来自用户的用于视频通信模块300的输入。例如在一些实施方案中,用户界面310可提供能够经由I/O设备选择的多个用户界面元素。例如如果参与方设备实施触敏显示器,则用户界面元素可通过触摸、作手势、或以其它方式传递对特定用户界面元素的选择来选择。在具有触敏显示器的一些实施方案中,用户界面元素不需要被显示,而是相反触摸手势自身可被解释或解析为指示或传递经由用户界面对某些动作的选择。用户界面310可为视频通信模块300实施多个不同元素,包括但不限于发起视频通信(与其它参与方设备的双方或多方模式)、结束视频通信、暂停视频通信、恢复视频通信、在显示模式之间进行切换、对视频通信数据的显示格式化、选择输入设备(例如相机)、对音频静音、记录视频通信数据的音频/视频/静态图像、或任何其它从用户向视频通信模块300提供输入或指示的部件。在一些实施方案中,其它输入设备诸如计算机鼠标、键盘、语音命令或识别、参与方设备的物理移动(转动、倾斜、或翻转设备)也可以是输入,经由用户界面部件310来转变或检测。

在各种实施方案中,视频通信模块300可实施连接管理器320。连接管理器320可被配置为与视频通信参与方304建立用于视频通信的连接。例如,连接管理器320可针对标识信息访问接收方联系数据250,以与一个或多个参与方设备建立连接(如用户可请求的那样)。连接管理器320可实施各种不同协议或格式以建立视频通信连接,诸如上文参考图1A和图1B所述的那些。在一些实施方案中,连接管理器320可被配置为保持即时或预先建立的连接,使得一些视频通信可能看起来是实时发起和/或显示(如下文参考图18至图21所述)。在各种实施方案中,连接管理器320还可被配置为处理从在参与方设备处接收到的视频消息动态转变成实时视频通信、以及转变回离线视频消息格式(如下文参考图14至图17所述)。

在至少一些实施方案中,视频通信模块300可具有对保持接收方联系数据350和所存储的视频通信数据360的一个或多个持久性存储设备或数据存储的访问。在一些实施方案中,接收方联系数据350可以是用于与特定视频通信参与方建立视频通信连接以及经由视频通信连接传输/接收视频通信数据的身份、地址或其它网络/传输信息。在一些实施方案中,所存储的视频通信数据360可以是当前正在进行的或先前的视频通信的所存储版本(以及与其相关的其它数据,诸如静态图像或音频记录)。所存储的视频通信数据360可被参与方设备的视频通信模块300或另一应用程序、部件访问以用于回放或显示。在一些实施方案中,所存储的视频通信数据360相对于实施视频通信模块300的参与方设备可以不是本地存储的,而相反可以被存储在视频通信模块300能够访问的远程存储位置(例如媒体服务器)中。

如图3所示,视频通信模块300可接收来自视频通信捕获设备302的视频通信数据(视频和/或音频数据)。例如,板上摄像机和/或板上麦克风(例如图22中的光学传感器3064和/或音频电路3030)、外部耦接的摄像机和/或外部耦接的麦克风可用于捕获用于传输到视频通信参与方304的视频和/或音频数据。在一些实施方案中,视频通信模块300可实施传输/接收管理器300,用于处理用于视频通信的传出和传入视频通信数据。例如,传输/接收管理器可对所捕获的用于传输到视频通信参与方304的视频通信数据进行编码、加密、压缩和/或以其它方式格式化,并指示根据各种通信协议将视频通信数据发送到视频通信参与方304,诸如上文参考图1A和图1B所述。对于视频通信的传入的视频通信数据,传输/接收管理器330可被配置为对数据进行解码、解密、解压缩或以其它方式重新格式化,以用于显示。在一些实施方案中,显示管理器340可指示根据全屏显示模式和/或集成显示模式显示所接收的视频通信数据。显示管理器340还可将视频通信数据提供给音频/视频管理部件(例如图2中的音频/视频管理模块222)或另一应用程序,用于在显示之前进一步处理。

在各种实施方案中,通信模块300可实施下文参考图4至图21所述的方法、技术和/或部件中的每一者。然而,一些实施方案可只实施特定的一些,诸如只实施图4、图12、图14或图17的技术。因此,图3并不受限于下文所述的部件的任何特定组合或布置或者技术的具体实施。

如前所述,视频通信数据的动态显示可作为参与方设备的各种不同部件或设备的一部分来实施。本身正在参与方设备上运行的应用程序可执行以下技术,以便将视频通信数据并入到为所述应用程序在电子屏幕上显示的图形中。类似地,视频应用程序模块自身可被配置为实施所述技术,使得即使另一应用程序可能正在控制电子显示器,也动态地确定视频通信数据的显示位置。另选地,如上面在图2A中所示,中间件/操作系统部件可实施以下技术。图4因此是根据一些实施方案示出可由各种系统部件或设备实施的用于动态集成视频通信数据的方法和技术的高阶流程图。

如410所示,可接收视频通信数据,以用于作为当前视频通信的一部分来显示。视频通信数据可包括要显示或展示的视频和/或音频数据。在各种实施方案中,如果视频通信应用程序正工作于全屏模式,则视频通信数据可根据全屏模式显示在电子显示器中,如420所示。在一些实施方案中,全屏显示模式可由视频通信应用程序来控制。然而,在一些实施方案中,其它应用程序也可触发或发起全屏显示模式。在一些实施方案中,视频通信可默认地在全屏显示模式中进行显示,除非另一应用程序、操作系统/中间件部件、或视频通信应用程序另外指明。如果没有其它应用程序正在控制电子显示器,如430的否定分支所示,则视频通信数据可继续以全屏显示模式(或者如视频通信应用程序另外指明的那样)进行显示。

在各种实施方案中,如果另一应用程序被启动、发起、恢复、唤醒、或以其它方式开始,使得所述另一应用程序正在控制电子显示器以显示图像数据,如430的肯定分支所示,则视频通信数据的显示位置可根据作为执行所述另一应用程序的一部分而在运行时配置的显示属性来动态确定,如440所示。启动的其它应用程序可以是任何使用或控制电子显示器的应用程序,从游戏和其它媒体,到其它通信应用程序(包括其它视频通信应用程序或屏幕分享应用程序)、以及应用程序可被配置为执行的各种工具、任务、或其它过程。软件钩、事件监听器、中间件或操作系统提供的API调用或其它设备可允许其它应用程序限定视频通信数据在哪里、如何、和/或何时被显示,从而限定以及重新限定应用程序认为适当的显示属性。在多个实施方案中,动态确定显示位置就可允许所述另一应用程序将视频通信数据混入或集成到经由当前视频应用程序接收、生成、或以其它方式获得的数据中。例如,图5示出显示集成的视频通信数据500的参与方设备200。在图5中,游戏应用程序可接收视频通信数据(例如所述另一参与方设备的用户的图像),其可在电子显示器内的特定位置将用户的图像数据混入到游戏的特定场景中(例如作为多米诺游戏中的对手)。更一般性地来讲,所述另一应用程序可以能够控制、转化、修改、或以其它方式调整视频通信数据,以便以与视频通信数据在原始接收时原本会被显示的方式不同的方式在电子显示器上不同地呈现。因此,视频通信数据可依赖于所述另一应用程序,使得可生成单个视频流来用于进行包括视频通信数据的显示,而不是仅仅显示独立的视频数据流。

如450所示,视频通信数据然后可在电子显示器内被显示在所确定的显示位置处。如果没有进行显示模式改变(例如切换到全屏显示模式),如460的否定分支所示,则可重复440所示的对视频通信数据的显示位置的确定以及对视频通信数据的显示450。这样,所述另一应用程序可随着时间推移而改变视频通信数据的显示位置。图6A至图6C示出可随着时间推移确定的视频通信数据的不同显示位置。例如,可在所述另一应用程序刚开始运行时初始地确定图6A中视频通信数据的显示位置610。然而,如果所述另一应用程序(例如响应于用户输入)改变电子显示器上对数据的显示,则视频通信数据的显示位置也可改变。例如,考虑所述另一应用程序是经由电子显示器的共享书本阅读体验的一个示例。在图6A和图6B之间,共享书本应用程序中的虚拟页面被“翻动”,使得视频通信数据可最佳显示的位置已经变为显示位置620。类似地,显示位置可在图6B和图6C之间再次改变,从显示位置620变为显示位置630。

如460的肯定分支所示,变为全屏显示模式就可将显示视频通信数据的控制变回到视频通信应用程序。需注意,在一些实施方案中,视频通信可以在视频通信应用程序被认为处于集成显示模式期间被启动。例如,所述另一应用程序可能已经在运行并且正在电子显示器上显示图形。因此,在接收到视频通信数据之后,如元素410所示,然后可动态地确定用于所接收的视频通信数据的显示位置,如440所示(而不是首先以全屏显示模式显示视频通信)。下文讨论的图7提供了以集成显示模式发起视频通信的一个类似示例,尽管其描述的是多方视频通信,但是在至少一些实施方案中,同样的技术可应用于两个参与方之间的视频通信。

图7是根据一些实施方案示出用于为多个视频通信参与方动态显示视频通信数据的方法和技术的高阶流程图。如710所示,可为应用程序在电子显示器内显示图像数据(或其他视频或图形)。在该应用程序正在运行期间,可与多个用户发起视频通信,如720所示。例如,可选择界面元素或其他部件来启动视频通信。另选地,在一些实施方案中,可接收用于与多个参与方的视频通信的传入连接。

如730所示,在各种实施方案中,可接收所述视频通信的视频通信数据,其包括用于所述多个参与方中每一者的视频通信数据。例如,可接收从每个所述参与方传输的单独数据流。可根据作为运行该应用程序的一部分而在运行时配置的显示属性来在电子显示器内为视频通信数据动态确定一个或多个显示位置,如740所示。一旦为所述多个参与方确定了显示位置,对应于每个参与方的相应视频通信数据就可显示在所确定的显示位置中,如750所示。需注意,各个不同参与方的视频通信数据可能在不同时间到达,因此每个参与方的视频通信数据可独立于其他参与方来进行显示。例如,参与方C的视频通信数据可先于其他参与方的视频通信数据被显示。在一些实施方案中,当参与方加入或退出视频通信时,可(根据动态确定的显示位置)添加或移除这个附加参与方的相应视频通信数据的显示。

例如图8根据一些实施方案示出参与方设备的电子显示器中对于多个视频通信参与方动态显示的视频通信数据。可为多个参与方确定参与方设备200的电子显示器中相应的不同显示位置。对于参与方A的视频通信数据,确定显示位置810。对于参与方B的视频通信数据,确定显示位置820。对于参与方C的视频通信数据,确定显示位置830。在一些实施方案中,所述另一应用程序可以是另一视频通信或传输应用程序,诸如屏幕共享应用程序。例如,其他视频通信数据840可以是对于视频通信参与方经由屏幕共享应用程序在相应电子显示器之间共享的信息。

即使另一应用程序正在运行且控制电子显示器,也仍然可处理集成显示模式中视频通信的输入。在一些实施方案中,视频通信应用程序可处理所接收的输入,并模拟适当的响应。图9是根据一些实施方案示出用于处理用于所动态显示的视频通信数据的输入的方法和技术的高阶流程图。如910所示,视频通信数据可根据所动态确定的显示位置显示在电子显示器内。如上所述,可参照作为不同于视频通信应用程序的应用程序的运行的一部分而配置的显示属性来执行对显示位置的确定。如920所示,可检测用于视频通信的输入。例如,在一些实施方案中,电子显示器可以是触敏的,并且可经由电子显示器检测一个或多个触摸手势或输入。其它输入设备诸如计算机鼠标、轨迹球、键盘、或语音命令也可传送用于视频通信的输入。

在各种实施方案中,如果检测到输入,如920的肯定分支所示,则可分析或解析所述输入以确定响应,如930所示。例如,可显示一个或多个用户界面元素,并且可确定对应于特定响应的对特定用户界面元素的选择。在一些实施方案中,这些用户界面元素也可在所述另一应用程序的控制下动态地显示。又如,用于触敏输入设备(诸如触敏电子显示器)的特定手势可被解释并对应于特定动作。

可确定的一个响应是结束视频通信,如940所示。例如,用于结束视频通信的用户界面元素可被选择,并且作为响应,视频通信连接可被终止。又如,特定手势(诸如特定方向上的特定触摸轻扫)也可被解释为请求结束视频通信,诸如图10A中所示的触摸输入1012。

可确定的一个响应是显示用于视频通信的用户界面元素,如950所示。例如,图10A示出参与方设备200在显示位置1010显示用于当前视频通信的视频通信数据。可在显示位置1010内检测触摸输入1012。如图10B所示,可在显示位置1020内显示附加用户界面元素1020,这可允许对视频通信的另外控制(例如暂停、恢复、结束、或切换到全屏显示模式)。在一些实施方案中,然后可检测相对于这些用户界面元素1020的另外触摸输入。

可确定的另一响应是恢复视频通信,如960所示。在一些实施方案中,例如,图10A中的触摸输入可以是用于从暂停状态恢复视频通信的特定手势(例如单击)。类似地,可确定的另一响应是暂停视频通信,如970所示。例如可选定暂停用户界面元素,或者对于参与方设备进行特定动作或触摸手势(例如沿另一方向转动参与方设备)。

一个响应可以是从集成显示模式切换到全屏显示模式,如980所示。在一些实施方案中,例如,图10A中的触摸输入1012可以是用于切换到全屏显示模式的特定手势(例如双击或定向轻扫)。如图10C所示,参与方设备200在图10A中所示的输入1020之后以全屏显示模式1030显示视频通信。

如上所述,根据一些实施方案,可为视频通信实施动态暂停和恢复。移动计算设备诸如移动电话、膝上型电脑、个人数字助理(PDA)、便携式多功能计算设备(例如图22至图24中的便携式多功能计算设备3000)或计算系统(例如计算系统4000)所具有的对视频通信可在其上进行传输的网络的连接或接入可能是有限的。视频通信就像面对面会谈一样在活跃信息交换方面可能经历波动。然而,即使正在进行非常少的活跃信息交换或者没有进行任何活跃信息交换,视频通信可能仍然继续传输视频通信数据。动态暂停和恢复可允许视频通信数据的传输对应于视频通信参与方之间的信息交换。可评估来自参与方设备的用于视频通信的数据传输,以动态地确定视频通信数据(或者至少一些所述视频通信数据)的传输是否可暂停或恢复。

图11是根据一些实施方案示出对于视频通信数据的传输实施动态暂停和恢复的视频通信模块的示例性传输/接收管理器模块的框图。视频通信模块300可实施传输/接收管理器330,如上文参考图3所述。可在传输/接收管理器330处接收所捕获的视频通信数据1102,以作为视频通信的一部分被传输1106给参与方设备。可评估所捕获的视频通信数据的流。例如,传输/接收管理器330可实施活跃交换动态评估器1110,用于动态地评估视频通信数据流以检测暂停或恢复事件。活跃交换动态评估器1110可实施各种不同视频分析技术(例如面部识别)、音频分析技术、其他传感器信息、以及用户提供的信息(例如在参与方设备处与应用程序的交互),以评估视频通信数据流。下文讨论的图13提供了可被实施用于检测暂停或恢复事件的技术的另外的示例。一旦检测到,暂停或恢复事件就可被传送给传输状态管理器1140。

传输/接收管理器330可实施传输状态管理器1140,以保持视频通信的当前传输状态。例如,传输状态管理器1140可指示视频通信是否被暂停,以及当视频通信暂停时可允许什么视频通信数据被传输(如果有的话)。例如如果视频数据被滤除,而视频通信的音频数据仍然被传输,则传输状态管理器1140可指示视频数据被滤除。在各种实施方案中,用于手动暂停和恢复视频通信的用户选择1104的指示(而不是活跃交换动态评估器检测到的暂停和恢复事件)也可被接收,并更新传输状态管理器1140处所指示的传输状态。

在一些实施方案中,传输/接收管理器330可实施视频通信数据流过滤器1120。在一些实施方案中,根据当前传输状态,视频通信数据流过滤器1120可暂停或过滤一些传输数据,诸如视频数据、音频数据、或者视频和音频数据二者。即使在不处于暂停状态时(当一些接收方设备可能只接收视频通信数据流的部分时),过滤器1120也可过滤或选择不同量的视频通信数据流来传输(例如仅音频或少量视频数据)。传输/接收管理器330可实施视频通信数据流传送格式化器1130。过滤后的数据(或者如果恢复完全传输的话,未过滤的数据)然后可在视频通信数据流传送格式化器1130处被格式化,以根据所建立的用于视频通信的连接来进行发送。可实施各种用于编码、加密、压缩和/或格式化通信数据以及构建符合通信协议格式(诸如实时协议(RTP)格式)的消息、分组、或其他传送容器的技术,以准备用于传输的视频通信数据。然后可传输1106视频通信数据。

图12是根据一些实施方案示出用于动态地检测视频通信的暂停或恢复事件的方法和技术的高阶流程图。在一些实施方案中,如1210所示,可捕获视频通信数据流,以用于传输到当前视频通信的参与方。如上文参考图3所述的对视频通信数据的捕获可由各种光学和/或听觉传感器(例如相机和/或麦克风)来执行。在各种实施方案中,视频通信可对等管理,如上文参考图1所述。如1222所示,在一些实施方案中,可动态评估视频通信数据流。下文讨论的图13提供对各种评估技术的讨论。例如,可分析视频通信数据内的视频数据和/或音频数据,以及来自其他传感器或部件的各种其他输入。基于所述评估,可检测暂停事件,如1230所示。

如果检测到暂停事件,如1230的肯定分支所示,则可暂停视频通信(为此,然后所捕获视频通信数据流的至少一部分不被传输到视频通信中的参与方)。需注意,在各种实施方案中,并非所有作为视频通信参与方的接收方设备可接收相同量的数据。例如,一些参与方设备与其他参与方设备相比可能资源缺乏更严重(例如阻止设备有效地处理整个视频通信数据流)。又如,不同用户可能对于来自发送设备的视频通信数据流可能具有对不同量的访问权限或权益,或者发送设备的用户可能希望对多方视频通信中的特定接收方遮蔽图形效果或其他信息。相当地,暂停视频通信数据的传输可根据原始传输的视频通信数据流的相应量来减少或停止传输。如果例如一个接收方只接收作为视频通信一部分的音频数据,而另一接收方接收音频和视频数据,则在发送设备处暂停的情况下,第一接收方可接收不到任何视频通信数据流,而第二接收方可只接收到音频数据。另选地,在一些实施方案中,暂停可将视频通信数据流的所有传输减少到特定量(或者根本不传输)。

另选地,如果视频通信的当前传输状态是暂停,则可检测恢复事件,如1250的肯定分支所示。视频通信数据的至少部分流的传输可被恢复或再次传输,如1260所示。例如,如果在暂停状态,没有任何数据(或仅音频数据)被传输,则在检测到恢复事件时,音频数据和视频数据二者可被传输到接收参与方。同样,如上所述,多方视频通信中的不同接收方可接收不同量的视频通信数据流。当恢复传输视频通信数据流的至少一部分时,原来发送到参与接收方的视频通信数据的量可被恢复(例如如果之前只发送音频,并且在暂停期间没有发送任何数据,则在恢复时,可只发送音频)。多方视频通信中参与方的情况可能在发送设备暂停状态期间改变。例如,本来资源缺乏的接收方设备可能不再资源缺乏(并且另选地,接收方设备可能变得资源缺乏)。在一些实施方案中,不管是什么暂停,在恢复时,与暂停之前原来进行发送的量不同量的视频通信数据流可被发送到接收方设备。

在一些实施方案中,可接收用于暂停和恢复事件的手动输入。如1220所示,可接收对于视频通信传输状态的用户选择的指示。例如,用户界面元素可被选择,触摸输入、音频输入或某种其他形式的输入可被接收,并且被解释为对应于暂停或恢复视频通信。

在操作多方视频通信和/或在集成显示模式中显示视频通信数据时,暂停和恢复事件的动态检测可能是有利的。例如当多个不同参与方正在传输和接收视频通信的视频通信数据时,视频通信数据的动态暂停可减轻对于传输和接收参与方设备的计算负担。类似地,检测暂停和恢复事件的自动化或动态实质可阻止用户在视频通信的同时操作其他应用程序时手动暂停和恢复传输(在集成显示模式中可能出现这样的情况)。

图13是根据一些实施方案示出用于确定视频通信的活跃交换指示符的方法和技术的高阶流程图。如上所述,视频通信数据可被捕获1300以用于传输。在各种实施方案中,视频数据可被分析1310。例如,可执行面部识别技术来标识是否有人在参与方设备视线内。可使用其他形式的视频分析。例如,可确定光水平,或者可检测运动量。如1312所示,在一些实施方案中,可分析音频数据。可使用语言分析来检测会话或语言的量。也可评估或识别(并忽略)背景噪音或其他音频信号。例如,可确定正在进行的语言不是针对视频通信的其他参与方。也可分析其他传感器输入1314。例如,诸如包括在下文参考图22所述的便携式多功能设备3000中的取向传感器可用于检测参与方设备的运动。在一些实施方案中,其他传感器输入1314可指示与传输数据的设备链接到同一用户帐号的另一参与方设备是否也正在传输视频通信数据和/或链接到同一用户帐号的其他参与方设备是否在所述设备附近。如果可基于分析从所述其他设备接收的音频或视频数据而确定用户相反正在使用所述其他设备参与视频通信,则可指示是否在所述设备处暂停视频通信。例如,如果移动电话和平板电脑都链接到同一用户帐号,并且这两个设备都正在参与视频通信,则可基于移动电话处所确定的活跃信息交换和/或基于移动电话在平板电脑附近而在这些设备之一(例如平板电脑)上检测暂停事件。

如1320所示,在一些实施方案中,可进行对活跃交换指示符的确定。例如,在一些实施方案中,可实施对于元素1310、1312、和1314处进行的各种不同确定的加权方案。在参与方设备的视线内识别的面部如果结合特定量的所检测语音,可被加权为更可能指示活跃信息交换。在确定活跃交换指示符时可考虑其他用户提供的信息。例如,如果没有识别到面部,但是还知道面向外的相机被选择(不会指向用户,而是指向来显示并非用户的接收方事物的相机),则可否定面部识别的缺少。因此,在各种实施方案中,在评估数据流来检测暂停和恢复事件时可考虑捕获视频通信数据流的源或特定设备。

一旦确定了活跃交换指示符,就可将活跃交换指示符与特定交换阈值进行比较。其触发恢复事件还是暂停事件可取决于视频通信的当前传输状态。如1330的否定分支所示,如果当前传输状态是未暂停,则可将活跃交换指示符与交换阈值进行比较。如果活跃交换指示符低于交换阈值,如1340的肯定分支所示,则可触发暂停事件,如1350所示。否则,如1340的否定分支所示,则可捕获1300更多数据,并再次执行分析。如1330的肯定分支所示,可进行活跃交换指示符以及其是否高于交换阈值之间的比较,如1360所示。如果活跃交换指示符高于交换阈值,如1360的肯定分支所示,则可触发恢复事件。否则,如1360的否定分支所示,则可捕获1300更多数据,并再次执行分析。

发起视频通信通常涉及发起设备和接收方设备二者。如果接收方接受视频通信,则可建立视频连接。随着视频通信变得更普遍,接收方不认识的很多实体可能请求视频通信,或者即使在已知方之间也可能试图进行更多视频通信。然而,视频通信可能并非总是所期望的,除非能够对通信的主题进行判定。不是发起视频通信,而是可发送视频消息给接收方,视频消息可被重放以判定视频通信的实质。如果期望,则接收方设备可发起视频消息向视频通信的动态转变。图14是根据一些实施方案示出用于从视频消息向视频通信的动态转变的方法和技术的高阶流程图。

在各种实施方案中,如1410所示,可经由视频消息协议从远程移动计算设备接收视频通信数据,其作为来自远程移动计算设备的视频消息的一部分。例如,视频通信数据可经由(可部分地在与可传输视频通信的广域网不同的网络诸如无线电话网络上执行的)多媒体消息(MMS)协议来发送和/或接收。另选地,视频消息的视频通信数据可经由即时消息或聊天协议来发送。

当视频消息的视频通信数据被接收时,视频消息可被显示在接收方设备处的电子显示器上,如1420所示。例如,视频消息可近乎实时地显示在接收方设备处,其可“弹出”或自动显示,即使另一应用程序当前正在显示或控制电子显示器或者电子显示器处于“休眠”或不活跃,类似于上文讨论的集成显示模式。视频消息也可被记录以供随后在接收方设备处显示,如1430所示。例如,视频消息的视频通信数据可被存储在接收方存储设备上的本地存储处。在各种实施方案中,视频通信数据可以与接收时的数据质量或版本相比更低质量或不同版本来记录(诸如可由另一视频编码如开放格式编码来实现)。

在至少一些实施方案中,可接收对于发起与远程移动计算设备的视频通信的指示,如1440的肯定分支所示。在各种实施方案中,接收方设备处所接收的对用户界面元素的用户选择或某种其他形式的输入可指示要发起视频通信。例如,触摸手势诸如轻击触敏电子显示器上所显示的视频消息可指示期望发起视频通信。

在各种实施方案中,响应于接收到对于发起视频通信的指示,可与远程移动计算设备建立视频通信连接,如1450所示。例如,可执行各种握手消息或其他凭据交换,以便建立连接。随后接收的视频通信数据然后可经由所建立的视频通信连接来接收,所建立的视频通信连接可不同于视频消息协议。例如,视频通信可经由视频传输协议诸如实施传输协议(RTP)的对等和/或对等管理的具体实施来执行。此外,视频通信数据可被捕获并且经由所建立的连接从接收方设备传输到远程移动计算设备(如可作为双方或多方视频通信的一部分来执行)。在至少一些实施方案中,在所建立的视频通信连接上接收的视频通信数据可继续被记录并与经由视频消息协议接收的视频通信数据一起存储,以供随后回放。

在至少一些实施方案中,虽然视频通信连接被建立并且可允许实时通信,但是所捕获的视频通信数据仍然可作为消息经由所建立的视频通信信道来交换。例如,用户可在对于建立视频通信连接的选择中指示会话仍然可“离线”进行(即通过发送和接收视频消息)。所交换的视频消息可经由所建立的连接(并且根据各种协议要求)发送。此外,可接收指示来在通过已经建立的视频通信连接的离线会话和实时会话之间切换。然而在一些实施方案中,可基于成本或响应性测定来确定可传输“离线”视频消息的方式。例如,如果用于建立视频通信连接的资源可用于其他目的,则视频通信可被放弃,并且经由视频消息协议交换视频消息。

在至少一些实施方案中,可能没有接收到任何指示要发起视频通信,或者可能接收到不发起视频通信的否定指示,如1440的否定分支所示。在一些实施方案中,这个指示可指示期望在接收到视频通信数据时停止显示视频通信数据,如1460所示例如,触摸手势诸如轻扫离开触敏电子显示器上所显示的视频消息可指示期望停止显示视频通信数据(并且不发起视频通信)。然而,可继续对视频消息的记录。在一些实施方案中,记录的所存储视频通信数据可随后响应于回放请求而被显示。虽然未示出,但是在一些实施方案中,随后可接收指示来建立视频通信(在最初接收到不显示视频通信的指示之后)。例如,可检测语音命令来指示显示和建立与发送了(或者仍然正在发送)视频消息的发送设备的视频通信。

也可使用单方或单向的视频消息通信向双方或多方视频通信之间的转变来应对可能使视频通信不能持续的网络变化(例如由于网络连接质量差)。图15是根据一些实施方案示出用于为视频通信与视频消息之间的动态转变监视视频通信连接的质量的方法和技术的高阶流程图。如1510所示,可捕获视频通信数据,以用于作为视频通信的一部分传输到远程移动计算设备。所捕获的视频通信数据可经由所建立的连接发送到一个或多个远程移动计算设备。如1520所示,可监视视频通信以确定连接质量指示符。例如,可使用各种信号强度指标(对于无线连接)或网络性能指标(例如可用带宽或连接速度)来确定连接质量指示符。

如果视频通信将连接质量指示符保持在某个容忍阈值处或之上,则视频通信可继续,如1530的否定分支所示。然而,在各种实施方案中,如果连接质量指示符降到低于所述容忍阈值,则可进行向视频消息协议的转变。例如,如1530的肯定分支所示,可提供向视频消息协议转变的指示,如1540所示。在各种实施方案中,这个指示可以是传输参与方设备处的提示、通知、消息或信息显示。在一些实施方案中,也可向视频通信中的其他参与方提供通知或其他指示,来指示特定参与方设备已经切换到视频消息协议。如1550所示,所捕获的视频通信数据可被记录以作为视频消息经由视频消息协议发送到远程移动计算设备。虽然没有示出,但是在至少一些实施方案中,可进行相反转变,例如如果连接质量指示符达到或提高到高于所述容忍阈值,则所捕获的视频通信数据可再次经由所建立的视频通信连接发送。例如在一些实施方案中,可能确定连接质量指示符等于或高于连接容忍阈值,并且作为响应,可经由视频通信连接恢复对所捕获的视频通信数据的传输。

虽然前面在接收视频消息来发起双方视频通信的语境中进行了讨论,但是同样的技术可适用于更大的参与方设备群组。例如,经由群消息线程或视频聊天线程进行通信的多个参与方设备可实施上述技术。图16A和图16B根据一些实施方案示出视频消息中的多个参与方向视频通信的动态转变。图16A示出群消息线程1600。群消息线程1600中的不同参与方可发送/发布不同视频消息,诸如参与方A视频消息1610、参与方B视频消息1620、和参与方C视频消息1630。视频消息可在被接收时被显示。此外,如上文参考图14所述,可接收对于发起视频通信的指示,诸如一个或多个所述视频消息1610、1620、和/或1630上的触摸输入。图16B示出动态转变为与群消息线程1600的参与方的视频通信。参与方A的视频通信数据1612、参与方B的视频通信数据1622、和参与方C的视频通信数据1632可作为多方视频通信的一部分被显示。需注意,虽然所有参与方都被图示为参与多方通信,但是并非所有群消息线程参与方都需要或接受参与实时视频通信。在一些实施方案中,对于不参与的那些参与方,包含通信数据的视频消息可被传输或发布到群消息线程。这样,群消息线程的一些参与方可被动地参与群通信。在一些实施方案中,后来加入群聊天、消息线程、或多方视频通信的参与方也可接收(并且可能显示)群通信的先前视频通信或消息(例如重放会话历史)。

如上文参考图14所述,在各种实施方案中,可记录视频通信数据,不管是经由视频消息协议还是视频通信连接传输的。在一些实施方案中,通信数据可本地地存储在每个参与方的设备处。然而,视频通信数据的较大量可能超过本地存储资源。因此,视频通信数据可以另一(例如分辨率较低)格式存储。在一些实施方案中,视频通信数据可存储在远程存储设备或数据存储处,诸如上文参考图3中的所存储视频通信数据360所述。

然而,可为远程存储的任何视频通信数据实施各种隐私保护和协议。例如,可必须明确地获得同意远程(或在其他参与方设备本地)记录视频通信(例如可必须选择或批准确认对话界面元素)。视频通信数据可被加密,使得只有视频通信中的参与方才可以能够访问所存储的视频通信数据。在一些实施方案中,可实施严格的数据保持策略,以在短的时间段(例如24小时或3天)之后删除所存储的通信数据。对于另一参与方对所存储视频通信数据的每次访问,可要求来自这些参与方的当前同意。另选地,在一些实施方案中,参与方设备可以能够流式传输或发送可仅仅存储在这一个参与方设备处的所存储的视频通信数据。例如,每个参与方设备可只保持在该参与方设备处所捕获的视频通信数据,而对于视频通信绕过任何远程存储。

图17是根据一些实施方案示出实施视频通信与视频消息之间的动态转变的视频通信模块的连接管理器的框图。连接管理器320可实施视频消息转变协调器1720,其可被配置为指示对于在视频消息和视频通信之间的转变所必需的各种步骤。例如,视频通信的启动或停止命令1704可被发送到传输/接收管理器330,用于启动或停止视频通信。类似地,视频消息转变协调器可请求另一应用程序诸如负责实施视频消息收发的应用程序、模块或部件(例如图22中便携式多功能设备3000中的即时消息模块3041)将视频通信数据作为视频消息来处理(例如,诸如在视频连接质量降到低于某一阈值的情况下)。视频消息转变协调器可确定何时基于各种输入进行视频消息收发和视频通信之间的转变。例如,可接收对于为当前所显示的视频消息发起视频通信的指示或用户选择1706,视频消息转变协调器可依赖于此来发起向视频通信的转变。

连接管理器320还可实施连接质量监视器1710,其可被配置为执行上文参考图15所述的各种技术,以便评估连接质量数据1702以及确定可何时执行向以及自视频消息收发的转变。连接质量监视器1710还可向视频消息转变协调器提供输入来指示何时可能需要执行这样的转变。

连接管理器320还可实施视频连接接口1730。视频连接接口1730可建立与远程移动计算设备的连接1708,以便转变到视频通信。连接信息1708可被提供给传输/接收管理器330、或者其他负责经由所建立的连接1708传输捕获的视频通信数据的类似部件。

传输/接收管理器330可将所传输和/或接收的视频通信数据1732记录/存储在所存储视频数据360中。所存储视频数据360可以是本地持久性数据存储,或者可以是将视频通信数据存储在一个存储服务器或位置或者存储在多个存储服务器或位置的远程数据存储(例如单个远程设备或分布式系统)。

提高执行视频通信的便利性和灵活性的另一技术可涉及缩短建立视频通信所需的时间量。图18是根据一些实施方案示出用于即时视频通信的方法和技术的高阶流程图。即时视频通信可基于为不同参与方设备维持的预先建立的视频通信连接来实施。每个参与方设备可管理被授权参与方设备列表,可从被授权参与方设备接收即时视频通信或者可向被授权参与方设备发送即时视频通信。需注意,术语“即时”可以是指参与方设备之间视频通信数据的传输时间,而不必在传输视频通信数据之前执行某些连接建立技术。因此,在各种实施方案中,“即时”视频通信可以是已经为其执行了先前执行的连接建立步骤的视频通信连接,使得视频通信数据的传输可“即时地”开始(从参与方设备的用户的角度来看),而不执行建立连接的步骤。因此,术语“即时”可以不被理解为要求绝对的即刻通信。

如1810所示,可接收请求来发起与远程移动计算设备的即时视频通信。例如,一些支持/被授权即时通信的远程移动计算设备可默认地在请求对那些移动计算设备之一的视频通信时发起对即时视频通信的请求。响应于接收到所述请求,可确定对于特定用户是否授权即时连接,如1820所示。例如,可对所存储的参与方连接信息应用列表,其他组织方案,其中某些参与方被指定为被授权用于即时连接。如果参与方设备在授权列表上,则可认为即时视频连接被授权。

如果被授权,如1820的肯定分支所示,则可访问所存储的用于远程移动计算设备的连接信息,如1830所示。在各种实施方案中,这个所存储连接信息可被保持或更新,以确保与远程移动计算设备的连接成功保持。例如,心跳或其他轮询技术可周期性地或非周期性地向远程移动计算设备发送确认或重新授权请求,以获得更新的连接信息或验证连接信息。在一些实施方案中,远程移动计算设备可主动向针对其保持对即时视频通信的授权的参与方设备发送更新,以更新或验证连接信息。所保持的连接信息可以是对于经由先前已经被授权和建立的视频通信连接传输视频通信数据而言必需的各种标识符、密钥、凭证、令牌、地址、或其他信息。

如1840所示,在各种实施方案中,为即时视频通信捕获的视频通信数据可根据为远程移动计算设备所存储的即时连接来传输。这样,通信数据可在远程移动计算设备处被快速接收并显示,从而为移动计算设备的用户提供视频通信的近乎实时的体验。下文所述的图20提供了关于为即时视频通信显示视频通信数据的进一步细节。如果即时连接未被授权,如1820的否定分支所示,则可首先与远程计算设备建立视频通信连接,如1850所示。例如,可执行与远程移动计算设备和/或其他第三方系统诸如凭证提供或标识系统的各种标识和鉴权交换,以促进与远程移动计算设备的视频通信。在建立视频通信连接之后,为视频通信捕获的视频通信数据可根据所建立的视频通信连接来传输,如1860所示。

图19A和图19B是根据一些实施方案示出用于获取建立即时视频通信连接的授权的方法和技术的高阶流程图。图19A从请求参与方设备的角度示出建立即时视频通信授权。如1910所示,可向远程移动计算设备发送针对建立即时视频通信连接的授权的请求。所述请求可提供请求设备的各种标识凭证,诸如用户标识符、联系标识符或其他信息。如1920所示,在各种实施方案中,响应于接收到授权,可与远程移动计算设备建立即时视频通信连接。例如,可执行与远程移动计算设备和/或其他第三方系统诸如凭证提供或标识系统的各种标识和鉴权交换,以促进与远程移动计算设备的视频通信。一旦建立了,即时视频通信连接的连接信息就可被存储,如1930所示,其可随后在发起与远程移动计算设备的即时视频通信时被访问。

图19B从远程移动计算设备的角度或确认或拒绝对即时视频通信的授权的参与方设备的角度示出建立即时视频通信连接的技术。如1940所示,可从远程移动计算设备接收针对建立即时视频通信连接的授权的请求。如上所述,所述请求可包括各种标识信息。基于这个标识信息,可确定是否接收对于即时视频通信连接的授权,如1950所示。例如,可将标识请求参与方设备(或该参与方设备的用户)以及请求授权的指示或通知向远程移动计算设备的用户引导(例如显示通知或发送电子邮件),以确认或拒绝即时连接授权请求。可接收确认输入,如1950的肯定分支所示,并且可向远程移动计算设备发送具有用于建立即时视频通信连接的连接信息的响应,如1960所示。在一些实施方案中,接收参与方设备自身可开始用于即时视频通信连接的建立过程。如果未被授权,则如1970所示,可拒绝对于授权的请求。

图20是根据一些实施方案示出用于经由即时视频通信连接显示视频通信数据的方法和技术的高阶流程图。如2010所示,可从远程移动计算设备接收用于即时视频通信的视频通信数据。在显示视频通信数据之前,可确定是否授权来自这个远程移动计算设备的即时视频通信,如2020所示。例如,可对于特定远程移动计算设备评估被授权用户/设备列表或联系信息。如果即时视频通信被授权,则可显示用于即时视频通信的视频通信数据,如2030所示。在一些实施方案中,视频通信数据可默认地以集成显示模式显示。而在一些实施方案中,可使用全屏显示模式来显示视频通信数据,从而动态确定显示位置。如果即时视频通信未被授权,则可拒绝即时视频通信,如2040所示。在一些实施方案中,拒绝可在远程移动计算设备和/或接收方设备处触发非即时视频通信建立过程。

图21是根据一些实施方案示出实施即时视频通信的视频通信模块的连接管理器的框图。在各种实施方案中,连接管理器320可实施即时连接管理器1740,其可被配置为协调授权以及执行即时视频通信。诸如上文参考图19A所述的即时连接授权建立请求1743可在即时连接管理器1740处被接收,其请求和/或接收对于建立即时视频通信的用户授权1748(或拒绝)。对于被授权的即时视频通信,即时连接管理器1740可通知视频通信接口1730与请求移动计算设备建立即时视频通信连接。即时连接管理器1740可保持所建立即时视频通信连接的连接信息,作为被授权即时连接参与方信息1760的一部分。

类似地,当在即时连接管理器1740(对于其还没有接收过来自该特定用户或参与方设备的请求)接收到对于与特定用户或移动计算设备建立即时连接的用户授权1748(或请求)时,即时连接管理器1740可指示视频通信连接接口1730向所述特定用户或远程移动计算设备请求授权。可对于这些请求接收即时连接接受1746,并且保持随后获得的连接信息,作为被授权即时连接参与方信息1760(其可保持在上文参考图3所述的参与方联系信息存储350中)。

对于对发起即时连接1744的请求,即时连接管理器1740可确定这样的即时连接是否被授权,如果被授权,则指示视频通信连接接口1730提供即时连接信息1752给传输/接收管理器330。同样地,对于传入的即时视频通信,即时连接管理器1740可确定传入的即时视频通信是否被授权,并且指示显示管理器340显示即时视频通信数据1754。

本文所述的方法在各种实施方案中可通过硬件和软件的任意组合来实施。例如,在一个实施方案中,这些方法可通过包括执行存储在耦接到处理器的计算机可读存储介质上的程序指令的一个或多个处理器的移动计算设备、便携式多功能设备(例如图22至图24中的便携式多功能设备3000)或计算机系统(例如图25中的计算机系统4000)来实施。这些程序指令可被配置为实施本文所述的功能(例如实施本文所述视频通信应用程序的各种部件的功能)。附图中所示和本文所述的各种方法代表方法的示例性实施方案。任何方法的顺序可改变,并且各种元素可被添加、重新排序、组合、忽略和修改等。

本文描述了电子设备、此类设备的用户界面和使用此类设备的相关联的过程的实施方案。在一些实施方案中,该设备是还包含其他功能诸如PDA和/或音乐播放器功能的便携式通信设备诸如移动电话。也可以使用其它便携式电子设备,诸如具有触敏表面(例如,触摸屏显示器和/或触摸板)的膝上型电脑或平板电脑。还应当理解的是,在一些实施方案中,该设备并非便携式通信设备,而是具有触敏表面(例如,触摸屏显示器和/或触摸板)的台式计算机。

在下面的讨论中,描述了一种包括显示器和触敏表面的电子设备。然而应当理解,电子设备可以包括一个或多个其他物理用户接口设备,诸如物理键盘、鼠标和/或操作杆。

所述设备通常支持各种应用程序,诸如以下中的一者或多者:绘图应用程序、呈现应用程序、文字处理应用程序、网站创建应用程序、盘编辑应用程序、电子表格应用程序、游戏应用程序、电话应用程序、视频会议应用程序、电子邮件应用程序、即时消息应用程序、健身支持应用程序、相片管理应用程序、数字相机应用程序、数字视频摄像机应用程序、网页浏览应用程序、数字音乐播放器应用程序和/或数字视频播放器应用程序。

可在设备上执行的各种应用程序可使用至少一个共用的物理的用户接口设备,诸如触敏表面。触敏表面的一种或多种功能以及显示在设备上的对应信息对于各个应用程序可被调节和/或是不同的,和/或在对应应用程序内可被调节和/或是不同的。这样,设备的共用物理架构(诸如触敏表面)可利用对于用户直观且透明的用户界面来支持各种应用程序。

现在关注具有触敏显示器的便携式设备的实施方案。图22是示出根据一些实施方案的具有触敏显示器3012的便携式多功能设备3000的框图。触敏显示器3012有时为了方便被称为“触摸屏”,并且也可被称为是或者被叫做触敏显示器系统。设备3000可具有存储器3002(其可包括一个或多个计算机可读存储介质)、存储器控制器3022、一个或多个处理单元(CPU)3020、外围设备接口3018、RF电路3008、音频电路3010、扬声器3011、麦克风3013、输入/输出(I/O)子系统3006、其他输入或控制设备3016、和外部端口3024。设备3000可包括一个或多个光学传感器3064。这些部件可通过一条或多条通信总线或信号线3003进行通信。

应当理解,设备3000只是便携式多功能设备的一个示例,并且设备3000可具有比所示出的更多或更少的部件,可组合两个或更多个部件,或者可具有这些部件的不同配置或布置。图22中所示的各种部件可以硬件、软件或软硬件组合来实现,包括一个或多个信号处理电路和/或专用集成电路。

存储器3002可包括高速随机存取存储器并且还可包括非易失性存储器,诸如一个或多个磁盘存储设备、闪存存储器设备、或其他非易失性固态存储器设备。设备3000的其他部件(诸如CPU 3020和外围设备接口3018)对存储器3002的访问可由存储器控制器3022来控制。

外围设备接口3018可被用于将设备的输入外围设备和输出外围设备耦接到CPU 3020和存储器3002。该一个或多个处理器3020运行或执行被存储在存储器3002中的各种软件程序和/或指令集,以执行设备3000的各种功能并处理数据。

在一些实施方案中,外围设备接口3018、CPU 3020、和存储器控制器3022可在单个芯片诸如芯片3004上实现。在一些其他实施方案中,它们可在单独的芯片上实现。

RF(射频)电路3008接收和发送也被叫做电磁信号的RF信号。RF电路3008将电信号转换为电磁信号/将电磁信号转换为电信号,并且经由电磁信号来与通信网络以及其他通信设备进行通信。RF电路3008可包括用于执行这些功能的熟知的电路,包括但不限于天线系统、RF收发器、一个或多个放大器、调谐器、一个或多个振荡器、数字信号处理器、编解码芯片组、用户身份模块(SIM)卡、存储器等等。RF电路3008可通过无线通信与网络以及其他设备进行通信,该网络诸如互联网(也被称为万维网(WWW))、内联网和/或无线网络(诸如蜂窝电话网络、无线局域网(LAN)和/或城域网(MAN))。无线通信可以使用多个通信标准、协议和技术中任何一个,包括但不限于全球移动通信系统(GSM)、增强型数据GSM环境(EDGE)、高速下行分组接入(HSDPA)、高速上行分组接入(HSUPA)、宽带码分多址(W-CDMA)、码分多址(CDMA)、时分多址(TDMA)、蓝牙、无线相容性认证(Wi-Fi)(例如IEEE 802.11a、IEEE 802.11b、IEEE 802.11g和/或IEEE 802.11n)、互联网协议语音技术(VoIP)、Wi-MAX、电子邮件协议(例如互联网消息访问协议(IMAP)和/或邮局协议(POP))、即时消息(例如可扩展消息处理现场协议(XMPP)、针对即时信息处理现场支持扩展的会话发起协议(SIMPLE)、即时信息处理现场服务(IMPS))、和/或短消息服务(SMS)、或任何其他合适的通信协议,包括在本申请提交日还未开发出的通信协议。

音频电路3010、扬声器3011和麦克风3013提供用户和设备3000之间的音频接口。音频电路3010从外围设备接口3018接收音频数据,将音频数据转换为电信号,并将电信号传输到扬声器3011。扬声器3011将电信号转换为人耳可听见的声波。音频电路3010还接收由麦克风3013根据声波转换的电信号。音频电路3010将电信号转换为音频数据,并将音频数据传输到外围设备接口3018以进行处理。音频数据可由外围设备接口3018从存储器3002和/或RF电路3008进行检索和/或被传输至存储器和/或RF电路。在一些实施方案中,音频电路3010还包括耳麦插孔(例如,图24中的3212)。耳麦插孔提供音频电路3010与可移除的音频输入/输出外围设备之间的接口,该外围设备诸如仅输出的耳机或者具有输出(例如,单耳或双耳耳机)和输入(例如,麦克风)二者的耳麦。

I/O子系统3006将设备3000上的输入/输出外围设备诸如触摸屏3012和其他输入控制设备3016耦接到外围设备接口3018。I/O子系统3006可包括显示控制器3056以及一个或多个输入控制器3060以用于其他输入或控制设备。所述一个或多个输入控制器3060从其他输入或控制设备3016接收电信号/将电信号发送至其他输入或控制设备116。所述其他输入控制设备3016可包括物理按钮(例如,下压按钮、摇臂按钮等)、拨号盘、滑动开关、操纵杆、点击式转盘等等。在一些另选实施方案中,一个或多个输入控制器3060可耦接到(或不耦接到)以下各项中的任一者:键盘、红外端口、USB端口、和指向设备诸如鼠标。所述一个或多个按钮(例如,图24中的3208)可包括用于扬声器3011和/或麦克风3013的音量控制的增大/减小按钮。所述一个或多个按钮可包括下压按钮(例如,图22中的3206)。

触敏显示器3012提供设备与用户之间的输入接口和输出接口。显示控制器3056从触摸屏3012接收电信号和/或将电信号发送至触摸屏。触摸屏3012向用户显示视觉输出。视觉输出可包括图形、文本、图标、视频及它们的任意组合(统称为“图形”)。在一些实施方案中,一些视觉输出或全部的视觉输出可对应于用户界面对象。

触摸屏3012具有基于触觉和/或触感接触来接受来自用户的输入的触敏表面、传感器或传感器组。触摸屏3012和显示控制器3056(与存储器3002中的任何相关联的模块和/或指令集一起)检测触摸屏3012上的接触(和该接触的任何移动或中断),并且将所检测到的接触转换为与显示在触摸屏3012上的用户界面对象(例如,一个或多个软键、图标、网页或图像)的交互。在一个示例性实施方案中,触摸屏3012和用户之间的接触点对应于用户的手指。

触摸屏3012可使用LCD(液晶显示器)技术、LPD(发光聚合物显示器)技术、或LED(发光二极管)技术,但是在其他实施方案中可使用其他显示技术。触摸屏3012和显示控制器3056可以利用现在已知或未来开发的多个触摸感测技术中任一个来检测接触及其任何移动或中断,包括但不限于电容性、电阻性、红外、和表面声波技术、以及其他接近传感器阵列或用于确定与触摸屏3012的一个或多个接触点的其他元件。

触摸屏3012可具有超过100dpi的视频分辨率。在一些实施方案中,触摸屏具有约1060dpi的视频分辨率。用户可使用任何合适的物体或附加物诸如触笔、手指等等来与触摸屏3012接触。在一些实施方案中,用户界面被设计用于主要与基于手指的接触和手势工作,由于手指在触摸屏上的接触区域较大,因此这可能不如基于触笔的输入精确。在一些实施方案中,设备将基于手指的粗略输入转变为精确的指针/光标位置或命令,以用于执行用户所期望的动作。

在一些实施方案中,除了触摸屏之外,设备3000可包括用于激活或去激活特定功能的触摸板(未示出)。在一些实施方案中,触摸板是设备的触敏区域,该触敏区域与触摸屏不同,其不显示视觉输出。触摸板可以是与触摸屏3012分开的触敏表面,或者是由触摸屏形成的触敏表面的延伸部分。

设备3000还包括用于为各种部件供电的电力系统3062。电力系统3062可包括电力管理系统、一个或多个电源(例如,电池、交流电(AC))、再充电系统、电力故障检测电路、功率变换器或逆变器、电力状态指示器(例如,发光二极管(LED))和任何其他与便携式设备中电力的生成、管理和分配相关联的部件。

设备3000还可包括一个或多个光学传感器3064。图22示出了耦接到I/O子系统3006中的光学传感器控制器3058的光学传感器。光学传感器3064可包括电荷耦合器件(CCD)或互补金属氧化物半导体(CMOS)光电晶体管。光学传感器3064从环境接收通过一个或多个透镜投射的光,并且将光转换为表示图像的数据。结合成像模块3043(也称为相机模块),光学传感器3064可捕获静态图像或视频。在一些实施方案中,光学传感器位于设备3000的后部,与设备前部的触摸屏显示器3012相背对,使得触摸屏显示器可被用作用于静态图像和/或视频图像采集的取景器。在一些实施方案中,另一光学传感器位于设备的前部上,使得用户在触摸屏显示器上观看其它视频会议参与者的同时可以获得该用户的图像以用于视频会议。

设备3000还可包括一个或多个接近传感器3066。图7示出了耦接到外围设备接口3018的接近传感器3066。另选地,接近传感器3066可耦接到I/O子系统3006中的输入控制器3060。在一些实施方案中,当多功能设备被置于用户耳朵附近时(例如,用户正在打电话时),接近传感器关闭并禁用触摸屏3012。

设备3000包括一个或多个取向传感器3068。在一些实施方案中,这一个或多个取向传感器包括一个或多个加速度计(例如一个或多个线性加速度计和/或一个或多个旋转加速度计)。在一些实施方案中,这一个或多个取向传感器包括一个或多个陀螺仪。在一些实施方案中,这一个或多个取向传感器包括一个或多个磁力仪。在一些实施方案中,这一个或多个取向传感器包括全球定位系统(GPS)、全球导航卫星系统(GLONASS)、和/或其他全球导航系统接收器中的一个或多个。GPS、GLONASS和/或其他全球导航系统接收器可用于获得关于设备3000的位置和取向(例如纵向或横向)的信息。在一些实施方案中,这一个或多个取向传感器包括取向/旋转传感器的任何组合。图22示出了耦接到外围设备接口3018的这一个或多个取向传感器3068。或者,这一个或多个取向传感器3068可耦接到I/O子系统3006中的输入控制器1060。在一些实施方案中,信息基于对从这一个或多个取向传感器接收的数据的分析而在触摸屏显示器上被显示在纵向视图或横向视图中。

在一些实施方案中,被存储在存储器3002中的软件部件包括操作系统3026、通信模块(或指令集)3028、接触/运动模块(或指令集)3030、图形模块(或指令集)3032、文本输入模块(或指令集)3034、全球定位系统(GPS)模块(或指令集)3035以及应用程序(或指令集)3036。此外,在一些实施方案中,存储器3002存储设备/全局内部状态3057,如图22中所示。设备/全局内部状态3057包括以下各项中的一者或多者:活动应用程序状态,该活动应用程序状态用于指示哪些应用程序(如果有的话)当前是活动的;显示状态,该显示状态用于指示什么应用程序、视图或其他信息占据触摸屏显示器3012的各个区域;传感器状态,该传感器状态包括从设备的各个传感器和输入控制设备3016获得的信息;和关于设备位置和/或姿态的位置信息。

操作系统3026(例如,Darwin、RTXC、LINUX、UNIX、OS X、WINDOWS、或嵌入式操作系统诸如VxWorks)包括用于控制和管理一般系统任务(例如,存储器管理、存储设备控制、电力管理等)的各种软件部件和/或驱动器,并且有利于各种硬件和软件部件之间的通信。

通信模块3028促进通过一个或多个外部端口3024来与其他设备进行通信,并且还包括用于处理由RF电路3008和/或外部端口3024所接收的数据的各种软件部件。外部端口3024(例如通用串行总线(USB)、火线等)适于直接耦接到其他设备,或间接地通过网络(例如互联网、无线LAN等)耦接。在一些实施方案中,外部端口是与iPod(Apple Inc.的商标)设备上所使用的30针连接器相同的或类似的和/或与其兼容的多针(例如,30针)连接器。

接触/运动模块3030可检测与触摸屏3012(结合显示控制器3056)和其他触敏设备(例如,触摸板或物理点击式转盘)的接触。接触/运动模块3030包括多个软件部件以用于执行与接触的检测相关的各种操作,诸如确定是否已发生接触(例如,检测手指按下事件)、确定是否存在接触的移动并在触敏表面上跟踪该移动(例如,检测一个或多个手指拖动事件)、以及确定接触是否已终止(例如,检测手指抬起事件或者接触中断)。接触/运动模块3030从触敏表面接收接触数据。确定接触点的移动可包括确定接触点的速率(量值)、速度(量值和方向)、和/或加速度(量值和/或方向的改变),接触点的移动由一系列接触数据来表示。这些操作可施加于单个触点(例如,一个指状触点)或多个同时的触点(例如,“多点触摸”/多个指状触点)。在一些实施方案中,接触/运动模块3030和显示控制器3056检测触摸板上的接触。

接触/运动模块3030可检测用户的手势输入。触敏表面上的不同手势具有不同的接触图案。因此,可通过检测具体接触图案来检测手势。例如,检测单指轻击手势包括检测手指按下事件,然后在与手指按下事件相同的位置(或基本上相同的位置)处(例如,在图标位置处)检测手指抬起(抬离)事件。又如,检测触敏表面上的手指轻扫手势包括检测手指按下事件,然后检测一个或多个手指拖动事件,并且随后检测手指抬起(抬离)事件。

图形模块3032包括用于在触摸屏3012或其他显示器上渲染和显示图形的多个已知软件部件,其包括用于改变被显示图形的强度的部件。如本文所用,术语“图形”包括可被显示给用户的任何对象,包括但不限于文本、网页、图标(诸如包括软键的用户界面对象)、数字图像、视频、动画等。

在一些实施方案中,图形模块3032存储待使用的用于表示图形的数据。每个图形可被分配有对应的代码。图形模块3032从应用程序等接收指定待显示的图形的一个或多个代码,在必要的情况下还一起接收坐标数据和其他图形属性数据,然后生成屏幕图像数据以输出至显示控制器3056。

可作为图形模块3032的部件的文本输入模块3034提供用于在多种应用程序(例如,联系人3037、电子邮件3040、即时消息3041、浏览器3047、和需要文本输入的任何其他应用程序)中输入文本的软键盘。

GPS模块3035确定设备的位置并提供该信息供在各种应用程序中使用(例如,提供至电话3038以供在基于位置的拨号中使用,提供至相机3043作为图片/视频元数据,以及提供至提供基于位置的服务的应用程序诸如天气桌面小程序、当地黄页桌面小程序和地图/导航桌面小程序)。

应用程序3036可包括以下模块(或指令集)或者其子集或超集:

·联系人模块3037(有时称为通讯录或联系人列表);

·电话模块3038;

·视频通信模块3039;

·电子邮件客户端模块3040;

·即时消息(IM)模块3041;

·健身支持模块3042;

·用于静态图像和/或视频图像的相机模块3043;

·图像管理模块3044;

·浏览器模块3047;

·日历模块3048;

·桌面小程序模块3049,其可包括以下各项中的一者或多者:天气桌面小程序3049-1、股市桌面小程序3049-2、计算器桌面小程序3049-3、闹钟桌面小程序3049-4、字典桌面小程序3049-5、和由用户获取的其他桌面小程序以及用户创建的桌面小程序3049-6;

·用于形成用户创建的桌面小程序3049-6的桌面小程序创建器模块3050;

·搜索模块3051;

·视频和音乐播放器模块3052,其可以由视频播放器

·模块和音乐播放器模块构成;

·记事本模块3053;

·地图模块3054;和/或

·在线视频模块3055。

可被存储在存储器3002中的其他应用程序3036的示例包括其他文字处理应用程序、其他图像编辑应用程序、绘图应用程序、呈现应用程序、支持JAVA的应用程序、加密、数字权益管理、语音识别、和语音复制。

结合触摸屏3012、显示控制器3056、接触模块3030、图形模块3032、和文本输入模块3034,联系人模块3037可被用于管理通讯录或联系人列表(例如,被存储在存储器3002中的联系人模块3037的应用程序内部状态3092中),包括:将一个或多个姓名添加到通讯录;从通讯录删除一个或多个姓名;使一个或多个电话号码、一个或多个电子邮件地址、一个或多个物理地址或其他信息与姓名相关联;使图像与姓名相关联;对姓名归类和分类;提供电话号码或电子邮件地址以发起和/或促进通过电话3038、视频会议3039、电子邮件3040、或IM 3041进行通信;等等。

结合RF电路3008、音频电路3010、扬声器3011、麦克风3013、触摸屏3012、显示控制器3056、接触模块3030、图形模块3032、和文本输入模块3034,电话模块3038可被用于输入与电话号码对应的字符序列、访问通讯录3037中的一个或多个电话号码、修改已输入的电话号码、拨打相应的电话号码、进行会话以及当会话完成时断开或挂断。如上所述,无线通信可以使用多种通信标准、协议和技术中任何一个。

结合RF电路3008、音频电路3010、扬声器3011、麦克风3013、触摸屏3012、显示控制器3056、光学传感器3064、光学传感器控制器3058、接触模块3030、图形模块3032、文本输入模块3034、联系人列表3037和电话模块3038,视频通信模块3039包括用于根据用户指令发起、进行和终止用户与一个或多个其他参与方之间的视频通信的可执行指令,诸如上文参考图1至21所述。

结合RF电路3008、触摸屏3012、显示控制器3056、接触模块3030、图形模块3032和文本输入模块3034,电子邮件客户端模块3040包括用于响应于用户指令来创建、发送、接收和管理电子邮件的可执行指令。结合图像管理模块3044,电子邮件客户端模块3040使得非常容易创建和发送具有由相机模块3043拍摄的静态图像或视频图像的电子邮件。

结合RF电路3008、触摸屏3012、显示控制器3056、接触模块3030、图形模块3032和文本输入模块3034,即时消息模块3041包括用于输入与即时消息对应的字符序列、修改先前输入的字符、发送相应即时消息(例如,使用针对基于电话的即时消息的短消息服务(SMS)或多媒体消息服务(MMS)协议或者使用针对基于互联网的即时消息的XMPP、SIMPLE、或IMPS)、接收即时消息以及查看所接收的即时消息的可执行指令。在一些实施方案中,所发送的和/或所接收的即时消息可包括图形、照片、音频文件、视频文件和/或在MMS和/或增强型消息服务(EMS)中支持的其他附件。如本文所用,“即时消息”是指基于电话的消息(例如,使用SMS或MMS发送的消息)和基于互联网的消息(例如,使用XMPP、SIMPLE、或IMPS发送的消息)两者。

结合RF电路3008、触摸屏3012、显示控制器3056、接触模块3030、图形模块3032、文本输入模块3034、GPS模块3035、地图模块3054、和音乐播放器模块3046,健身支持模块3042包括用于以下操作的可执行指令:创建健身(例如具有时间、距离、和/或卡路里燃烧目标);与健身传感器(移动设备)进行通信;接收健身传感器数据;校准用于监测健身的传感器;选择健身音乐并进行播放;以及显示、存储和传输健身数据。

结合触摸屏3012、显示控制器3056、光学传感器3064、光学传感器控制器3058、接触模块3030、图形模块3032和图像管理模块3044,相机模块3043包括捕获静态图像或视频(包括视频流)并且将它们存储到存储器3002中、修改静态图像或视频的特性、或从存储器3002删除静态图像或视频的可执行指令。

结合触摸屏3012、显示控制器3056、接触模块3030、图形模块3032、文本输入模块3034、和相机模块3043,图像管理模块3044包括用于排列、修改(例如,编辑)、或以其他方式操控、加标签、删除、呈现(例如,在数字幻灯片或相册中)、以及存储静态图像和/或视频图像的可执行指令。

结合RF电路3008、触摸屏3012、显示系统控制器3056、接触模块3030、图形模块3032和文本输入模块3034,浏览器模块3047包括根据用户指令浏览互联网(包括搜索、链接到、接收和显示网页或其部分以及链接到网页的附件和其他文件)的可执行指令。

结合RF电路3008、触摸屏3012、显示系统控制器3056、接触模块3030、图形模块3032、文本输入模块3034、电子邮件客户端模块3040和浏览器模块3047,日历模块3048包括用于根据用户指令来创建、显示、修改和存储日历以及与日历相关联的数据(例如,日历条目、待办事项等)的可执行指令。

结合RF电路3008、触摸屏3012、显示系统控制器3056、接触模块3030、图形模块3032、文本输入模块3034、和浏览器模块3047,桌面小程序模块3049是可以由用户下载并使用的微型应用程序(例如,天气桌面小程序3049-1、股市桌面小程序3049-2、计算器桌面小程序3049-3、闹钟桌面小程序3049-4、和字典桌面小程序3049-5)或由用户创建的微型应用程序(例如,用户创建的桌面小程序3049-6)。在一些实施方案中,桌面小程序包括HTML(超文本标记语言)文件、CSS(层叠样式表)文件和JavaScript文件。在一些实施方案中,桌面小程序包括XML(可扩展标记语言)文件和JavaScript文件(例如,Yahoo!桌面小程序)。

结合RF电路3008、触摸屏3012、显示系统控制器3056、接触模块3030、图形模块3032、文本输入模块3034、和浏览器模块3047,桌面小程序创建器模块3050可被用户用于创建桌面小程序(例如,将网页的用户指定部分转到桌面小程序中)。

结合触摸屏3012、显示系统控制器3056、接触模块3030、图形模块3032和文本输入模块3034,搜索模块3051包括用于根据用户指令搜索存储器3002中的匹配一个或多个搜索条件(例如,一个或多个用户指定的搜索词)的文本、音乐、声音、图像、视频和/或其他文件的可执行指令。

结合触摸屏3012、显示系统控制器3056、接触模块3030、图形模块3032、音频电路系统3010、扬声器3011、射频电路系统3008和浏览器模块3047,视频和音乐播放器模块3052包括可执行指令,该可执行指令允许用户下载和播放录制的音乐和以一种或多种文件格式来存储的其他声音文件,诸如MP3或AAC文件,并且该可执行指令显示、呈现或以其他方式播放视频(例如,在通过外部端口3024来连接的触摸屏3012上或外部显示器上)。在一些实施方案中,设备3000可包括MP3播放器诸如iPod(Apple Inc.的商标)的功能。

结合触摸屏3012、显示控制器3056、接触模块3030、图形模块3032和文本输入模块3034,记事本模块3053包括用于根据用户指令来创建和管理记事本、待办事项等的可执行指令。

结合RF电路3008、触摸屏3012、显示系统控制器3056、接触模块3030、图形模块3032、文本输入模块3034、GPS模块3035、和浏览器模块3047,地图模块3054可被用于根据用户指令接收、显示、修改、和存储地图以及与地图相关联的数据(例如,驾车路线;关于特定位置处或附近的商家和其他兴趣点的数据;和其他基于位置的数据)。

结合触摸屏3012、显示系统控制器3056、接触模块3030、图形模块3032、音频电路3010、扬声器3011、RF电路3008、文本输入模块3034、电子邮件客户端模块3040和浏览器模块3047,在线视频模块3055包括指令,该指令允许用户访问、浏览、接收(例如,通过流式传输和/或下载)、回放(例如在触摸屏上或在经由外部端口3024所连接的外部显示器上)、发送具有至特定在线视频的链接的电子邮件,以及以其他方式管理一种或多种文件格式诸如H.264的在线视频。在一些实施方案中,即时消息模块3041而不是电子邮件客户端模块3040用于发送至特定在线视频的链接。

上述每个模块和应用程序对应于用于执行上述一种或多种功能以及在本申请中所描述的方法(例如,本文中所描述的计算机实现的方法和其他信息处理方法)的一组可执行指令。这些模块(即指令集)不必被实现为独立的软件程序、过程或模块,因此这些模块的各种子集可在各种实施方案中被组合或以其他方式重新布置。在一些实施方案中,存储器3002可存储上文所述的模块和数据结构的子集。此外,存储器3002可存储上文没有描述的附加模块和数据结构。

在一些实施方案中,设备3000是唯一地通过触摸屏和/或触摸板来执行设备上的预定义的一组功能的操作的设备。通过使用触摸屏和/或触摸板作为用于设备3000的操作的主要输入控制设备,可减少设备3000上的物理输入控制设备(诸如下压按钮、拨号盘等等)的数量。

可唯一地通过触摸屏和/或触摸板执行的所述预定义的一组功能包括在用户界面之间进行导航。在一些实施方案中,触摸板在被用户触摸时将设备3000从可显示在设备3000上的任何用户界面导航到主界面菜单、home菜单或根菜单。在此类实施方案中,触摸板可被称为“菜单按钮”。在一些其他实施方案中,菜单按钮可以是物理下压按钮或者其他物理输入控制设备,而不是触摸板。

图23是示出根据一些实施方案的用于事件处理的示例性部件的框图。在一些实施方案中,存储器3002(在图23中)包括事件分类器3070(例如在操作系统3026中)和相应的应用程序3036-1(例如前述应用程序3037-3051、3055中任一者)。

事件分类器3070接收事件信息并确定要将事件信息递送到的应用程序3036-1和应用程序3036-1的应用程序视图3091。事件分类器3070包括事件监视器3071和事件分配器模块3074。在一些实施方案中,应用程序3036-1包括应用程序内部状态3092,该应用程序内部状态指示当应用程序是活动的或正在执行时被显示在触敏显示器3012上的一个或多个当前应用程序视图。在一些实施方案中,设备/全局内部状态3057被事件分类器3070用于确定哪个(哪些)应用程序当前是活动的,并且应用程序内部状态3092被事件分类器3070用于确定要将事件信息递送到的应用程序视图3091,诸如哪些应用程序可控制显示器3012上的数据显示以及配置视频通信的显示属性,如上文参考图1至图10所述。

在一些实施方案中,应用程序内部状态3092包括附加信息,诸如以下各项中的一者或多者:当应用程序3036-1恢复执行时将被使用的恢复信息、指示正被应用程序3036-1显示的信息或准备好用于被应用程序3036-1显示的信息的用户界面状态信息、用于使得用户能够返回到应用程序3036-1的前一状态或视图的状态队列、以及用户采取的先前动作的重复/撤销队列。

事件监视器3071从外围设备接口3018接收事件信息。事件信息包括关于子事件(例如,触敏显示器3012上的用户触摸,作为多点触摸手势的一部分)的信息。外围设备接口3018传输其从I/O子系统3006或传感器(诸如接近传感器3066、取向传感器3068、和/或麦克风3013(通过音频电路系统3010))接收的信息。外围设备接口3018从I/O子系统3006所接收的信息包括来自触敏显示器3012或触敏表面的信息。

在一些实施方案中,事件监视器3071以预先确定的间隔将请求发送至外围设备接口3018。作为响应,外围设备接口3018传输事件信息。在其他实施方案中,外围设备接口3018仅当存在显著事件(例如,接收到高于预先确定的噪声阈值的输入和/或接收到超过预先确定的持续时间的输入)时才传输事件信息。

在一些实施方案中,事件分类器3070还包括命中视图确定模块3072和/或活动事件识别器确定模块3073。

当触敏显示器3012显示多于一个视图时,命中视图确定模块3072提供用于确定子事件已在一个或多个视图内的什么地方发生的软件过程。视图由用户可在显示器上看到的控件和其他元件构成。

与应用程序相关联的用户界面的另一方面是一组视图,本文中有时也称为应用程序视图或用户界面窗口,在其中显示信息并且发生基于触摸的手势。在其中检测到触摸的(相应应用程序的)应用程序视图可对应于应用程序的程序化分级结构或视图分级结构内的程序化水平。例如,在其中检测到触摸的最低水平视图可被叫做命中视图,并且被识别为正确输入的那组事件可至少部分地基于开始基于触摸的手势的初始触摸的命中视图来确定。

命中视图确定模块3072接收与基于触摸的手势的子事件相关的信息。当应用程序具有在分级结构中组织的多个视图时,命中视图确定模块3072将命中视图识别为应对子事件进行处理的分级结构中的最低视图。在大多数情况下,命中视图是发起子事件(即形成事件或潜在事件的子事件序列中的第一子事件)在其中发生的最低水平视图。一旦命中视图被命中视图确定模块所识别,命中视图通常接收与其被识别为命中视图所针对的同一触摸或输入源相关的所有子事件。

活动事件识别器确定模块3073确定视图分级结构内的哪个或哪些视图应接收特定子事件序列。在一些实施方案中,活动事件识别器确定模块3073确定仅命中视图应接收特定子事件序列。在其他实施方案中,活动事件识别器确定模块3073确定包括子事件的物理位置的所有视图是活跃参与的视图,并且因此确定所有活跃参与的视图应接收特定子事件序列。在其他实施方案中,即使触摸子事件完全被局限到与一个特定视图相关联的区域,但是分级结构中的更高的视图将仍然保持为活跃参与的视图。

事件分配器模块174将事件信息分配到事件识别器(例如,事件识别器3080)。在包括活动事件识别器确定模块3073的实施方案中,事件分配器模块3074将事件信息递送到由活动事件识别器确定模块3073确定的事件识别器。在一些实施方案中,事件分配器模块3074在事件队列中存储事件信息,该事件信息由相应事件接收器模块3082检索。

在一些实施方案中,操作系统3026包括事件分类器3070。另选地,应用程序3036-1包括事件分类器3070。在另一个实施方案中,事件分类器3070是独立的模块,或者是被存储在存储器3002中的另一个模块(诸如接触/运动模块3030)的一部分。

在一些实施方案中,应用程序3036-1包括多个事件处理器3090和一个或多个应用程序视图3091,其中每一者都包括用于处理在该应用程序的用户界面的相应视图内发生的触摸事件的指令。应用程序3036-1的每个应用程序视图3091包括一个或多个事件识别器3080。通常,各个应用程序视图3091包括多个事件识别器3080。在其他实施方案中,事件识别器3080中的一个或多个事件识别器是独立模块的一部分,该独立模块诸如用户界面工具包(未示出)或应用程序3036-1从中继承方法和其他属性的更高水平的对象。在一些实施方案中,相应事件处理程序3090包括以下各项中的一者或多者:数据更新器3076、对象更新器3077、GUI更新器3078、和/或从事件分类器3070所接收的事件数据3079。事件处理程序3090可利用或调用数据更新器3076、对象更新器3077或GUI更新器3078,以更新应用程序内部状态3092。另选地,应用程序视图3091中的一个或多个应用程序视图包括一个或多个相应事件处理程序3090。另外,在一些实施方案中,数据更新器3076、对象更新器3077和GUI更新器3078中的一者或多者被包括在相应应用程序视图3091中。

相应的事件识别器3080从事件分类器3070接收事件信息(例如,事件数据3079),并且从事件信息识别事件。事件识别器3080包括事件接收器3082和事件比较器3084。在一些实施方案中,事件识别器3080还至少包括以下各项的子集:元数据3083、和事件递送指令3088(其可包括子事件递送指令)。

事件接收器3082接收来自事件分类器3070的事件信息。事件信息包括关于子事件的信息,例如触摸或触摸移动。根据子事件,事件信息还包括附加信息,诸如子事件的位置。当子事件涉及触摸的运动时,事件信息还可包括子事件的速率和方向。在一些实施方案中,事件包括设备从一个取向旋转到另一个取向(例如,从纵向取向旋转到横向取向,或反之亦然),并且事件信息包括关于设备的当前取向(也被称为设备姿态)的对应信息。

事件比较器3084将事件信息与预定义的事件或子事件定义进行比较,并且基于该比较来确定事件或子事件、或者确定或更新事件或子事件的状态。在一些实施方案中,事件比较器3084包括事件定义3086。事件定义3086包含事件的定义(例如,预定义的子事件序列),例如事件1(3087-1)、事件2(3087-2)以及其他事件。在一些实施方案中,事件3087中的子事件例如包括触摸开始、触摸结束、触摸移动、触摸取消和多点触摸。在一个示例中,事件1(3087-1)的定义是在被显示对象上的双击。双击例如包括对于预先确定的阶段在被显示对象上的第一触摸(触摸开始)、对于预先确定的阶段的第一提离(触摸结束)、对于预先确定的阶段在被显示对象上的第二触摸(触摸开始)、和对于预先确定的阶段的第二提离(触摸结束)。在另一个示例中,事件2(1087-2)的定义是在被显示对象上的拖动。拖动例如包括对于预先确定的阶段在被显示对象上的触摸(或接触)、该触摸在触敏显示器3012上的移动、以及该触摸的提离(触摸结束)。在一些实施方案中,事件还包括用于一个或多个相关联的事件处理程序3090的信息。

在一些实施方案中,事件定义3087包括用于相应用户界面对象的事件的定义。在一些实施方案中,事件比较器3084执行命中测试以确定哪个用户界面对象与子事件相关联。例如,在其中在触敏显示器3012上显示三个用户界面对象的应用程序视图中,当在触敏显示器3012上检测到触摸时,事件比较器3084执行命中测试以确定这三个用户界面对象中的哪个用户界面对象与该触摸(子事件)相关联。如果每个所显示的对象与相应的事件处理程序3090相关联,则事件比较器使用该命中测试的结果来确定哪个事件处理程序3090应当被激活。例如,事件比较器3084选择与子事件和触发该命中测试的对象相关联的事件处理程序。

在一些实施方案中,相应事件3087的定义还包括延迟动作,该延迟动作延迟事件信息的递送,直到已确定子事件序列是否确实对应于或不对应于事件识别器的事件类型。

当相应事件识别器3080确定子事件序列不与事件定义3086中的任何事件匹配时,该相应事件识别器3080进入事件不可能、事件失败或事件结束状态,在此之后忽略基于触摸的手势的随后子事件。在这种情况下,对于命中视图保持活动的其它事件识别器(如果有的话)继续跟踪和处理正在进行的基于触摸的手势的子事件。

在一些实施方案中,相应事件识别器3080包括具有用于指示事件递送系统应该如何执行对活跃参与的事件识别器的子事件递送的可配置属性、标记和/或列表的元数据3083。在一些实施方案中,元数据3083包括指示事件识别器彼此可如何进行交互的可配置的属性、标志和/或列表。在一些实施方案中,元数据3083包括指示子事件是否被递送到视图或程序化分级结构中的变化的水平的可配置的属性、标记和/或列表。

在一些实施方案中,当事件的一个或多个特定子事件被识别时,相应事件识别器3080激活与事件相关联的事件处理程序3090。在一些实施方案中,相应事件识别器3080将与该事件相关联的事件信息递送到事件处理程序3090。激活事件处理程序3090不同于将子事件发送(和延期发送)到相应的命中视图。在一些实施方案中,事件识别器3080抛出与所识别的事件相关联的标记,并且与该标记相关联的事件处理程序3090接获该标记并执行预定义的过程。

在一些实施方案中,事件递送指令3088包括递送关于子事件的事件信息而不激活事件处理程序的子事件递送指令。相反,子事件递送指令将事件信息递送到与子事件串相关联的事件处理程序或者递送到活跃参与的视图。与子事件串或与活跃参与的视图相关联的事件处理程序接收事件信息并执行预先确定的过程。

在一些实施方案中,数据更新器3076创建并更新在应用程序3036-1中使用的数据。例如,数据更新器3076对联系人模块3037中所使用的电话号码进行更新,或者对视频播放器模块3045中所使用的视频文件进行存储。在一些实施方案中,对象更新器3077创建和更新在应用程序3036-1中使用的对象。例如,对象更新器3076创建新的用户界面对象或更新用户界面对象的位置。GUI更新器3078更新GUI。例如,GUI更新器3078准备显示信息并将其发送至图形模块3032以用于显示在触敏显示器上。

在一些实施方案中,一个或多个事件处理程序3090包括数据更新器3076、对象更新器3077和GUI更新器3078或者具有对数据更新器3076、对象更新器3077和GUI更新器3078的访问。在一些实施方案中,数据更新器3076、对象更新器3077和GUI更新器3078被包括在相应应用程序3036-1或应用程序视图3091的单个模块中。在其他实施方案中,它们被包括在两个或更多个软件模块中。

应当理解的是,前面关于触敏显示器上用户触摸的事件处理的讨论也适用于其他形式的利用输入设备来操作多功能设备3000的用户输入(并非它们所有都是在触摸屏上发起的),例如协调鼠标移动和鼠标按钮按压(具有或没有单个或多个键盘按压或保持)、触摸板上的用户移动轻击、拖动、滚动等、触控笔输入、设备的移动、口头指令、检测到的眼睛移动、生物特征输入、和/或其任意组合,它们可以被用作为对应于定义要识别的事件的子事件的输入。

图24示出了根据一些实施方案的具有触摸屏3012的便携式多功能设备3000。触摸屏可在用户界面(UI)3200内显示一个或多个图形。在该实施方案中,以及在下文中介绍的其他实施方案中,用户可以通过例如用一根或多根手指3202(在附图中没有按比例绘制)或者用一个或多个触控笔3203(在附图中没有按比例绘制)在图形上作出手势来选择这些图形中的一个或多个。在一些实施方案中,当用户中断与一个或多个图形的接触时,发生对这一个或多个图形的选择。在一些实施方案中,手势可包括一次或多次轻击,一次或多次轻扫(从左到右、从右到左、向上和/或向下)和/或已与设备3000接触的手指的滚动(从右到左、从左到右、向上和/或向下)。在一些实施方案中,不经意地与图形接触不会选择图形。例如,当对应于选择的手势是轻击时,在应用程序图标上方扫过的轻扫手势不会选择对应的应用程序。

设备3000还可包括一个或多个物理按钮,诸如“home”按钮或菜单按钮3204。如前所述,菜单按钮3204可用于导航到可在设备3000上执行的一组应用程序中的任何应用程序3036。另选地,在一些实施方案中,菜单按钮被实现为被显示在触摸屏3012上的GUI中的软键。

在一个实施方案中,设备3000包括触摸屏3012、菜单按钮3204、用于对设备开/关机和锁定设备的下压按钮3206、一个或多个音量调节按钮3208、用户身份模块(SIM)卡槽3210、耳麦插孔3212、和对接/充电外部端口3024。下压按钮3206可被用于通过按下该按钮并将该按钮保持在按下状态预定义的时间间隔来对设备开关机供电;通过按下该按钮并在经过预定义的时间间隔之前释放该按钮来锁定设备;和/或对设备解锁或发起解锁过程。在另选的实施方案中,设备3000还可通过麦克风3013来接受用于激活或去激活一些功能的言语输入。

应当指出的是,虽然以下示例中很多示例将参考触摸屏3012(其中触敏表面和显示器组合)上的输入来给出,但是可以使用独立于显示器的触敏表面,而不使用触摸屏3012。

本文所述的用于视频通信的各种方法和技术的实施方案可在可与各种其他参与方设备交互的一个或多个计算机系统上运行,诸如上文参考图22至图24所述的便携式多功能计算设备3000。图25图示了一种此类计算机系统。在不同实施方案中,计算机系统4000可以是各种类型的设备中的任何设备,包括但不限于个人计算机系统、台式计算机、膝上型、笔记本、或上网本计算机、大型计算机系统、手持式计算机、工作站、网络计算机、相机、机顶盒、移动设备、消费者设备、视频游戏控制器、手持式视频游戏设备、应用服务器、存储设备、外围设备(诸如交换机、调制解调器、路由器)、或一般性的任何类型的计算或电子设备。

在例示的实施方案中,计算机系统4000包括经由输入/输出(I/O)接口4030耦接到系统存储器4020的一个或多个处理器4030。计算机系统4000还包括耦接到I/O接口4030的网络接口4040、以及一个或多个输入/输出设备4050,诸如光标控制设备4060、键盘4070、显示器4080、以及用于捕获视频和音频数据的各种音频/光学传感器4090。在一些实施方案中可以想到实施方案可以利用计算机系统4000的单个实例来实现,而在其他实施方案中,多个此类系统或者构成计算机系统4000的多个节点可以被配置为作为实施方案的不同部分或实例的主机。

在各种实施方案中,计算机系统4000可以是包括一个处理器4010的单处理器系统、或者包括几个处理器4010(例如两个、四个、八个、或另一适当数量)的多处理器系统。处理器4010可以是能够执行指令的任何合适的处理器。例如,在各种实施方案,处理器4010可以是实现多种指令集架构(ISA)(诸如x86、PowerPC、SPARC、或MIPS ISA、或任何其他合适的ISA)中任何指令集架构的通用处理器或嵌入式处理器。在多处理器系统中,每个处理器4010通常可以但并非必须实现相同的ISA。

在一些实施方案中,至少一个处理器4010可以是图形处理单元。图形处理单元或GPU可以被视为用于个人计算机、工作站、游戏机或其他计算或电子设备的专用图形客户端设备。现代GPU可以在操纵和显示计算机图形方面非常高效,并且它们的高度并行结构可以使它们对于一系列复杂图形算法而言比典型的CPU更高效。例如,图形处理器可以如下方式来实现多个图形基元操作:使得执行它们比利用主机中央处理单元(CPU)直接绘制到屏幕要快得多。在各种实施方案中,本文所公开的图像处理方法可以至少部分地由被配置用于在一个此类GPU上执行或者并行地在两个或更多个此类GPU上执行的程序指令来实现。一个或多个GPU可实现允许编程人员调用所述一个或多个GPU的功能的一个或多个应用程序编程接口(API)。合适的GPU可以从NVIDIA公司、ATI技术(AMD)及其他公司商购获得。

系统存储器4020可被配置为存储可被处理器4010访问的程序指令和/或数据。在各种实施方案中,系统存储器4020可使用任何适当的存储器技术来实现,诸如静态随机存取存储器(SRAM)、同步动态RAM(SDRAM)、非易失性/闪存存储器,或任何其他类型的存储器。在所示实施方案中,实现所期望功能(诸如上文中为本文所述的视频通信所述的那些)的程序指令和数据被显示为在系统存储器4020中分别被存储为程序指令4025和数据存储4035。在其他实施方案中,程序指令和/或数据可被接收、发送或存储在与系统存储器4020或计算机系统4000分开的不同类型的计算机可访问介质上或类似介质上。一般而言,计算机可访问介质可以包括经由I/O接口4030耦接到计算机系统4000的存储介质或存储器介质,诸如磁或光介质,例如盘或CD/DVD-ROM。经由计算机可访问介质所存储的程序指令和数据可通过可经由通信介质(诸如网络和/或无线链路,诸如可经由网络接口4040来实现)传送的传输介质或信号(诸如电信号、电磁信号、或数字信号)来传输。

在一个实施方案中,I/O接口4030可被配置为协调设备中的处理器4010、系统存储器4020和任何外围设备(包括网络接口4040或其他外围设备接口,诸如输入/输出设备4050)之间的I/O通信。在一些实施方案中,I/O接口4030可执行任何必要的协议、定时或其他数据转换以将来自一个部件(例如系统存储器4020)的数据信号转换为适于由另一个部件(例如处理器4010)使用的格式。在一些实施方案中,I/O接口4030可包括对例如通过各种类型的外围设备总线(诸如外围部件互连(PCI)总线标准或通用串行总线(USB)标准的变型)所附接的设备的支持。在一些实施方案中,I/O接口4030的功能例如可以被划分到两个或更多个单独部件中,诸如北桥和南桥。此外,在一些实施方案中,I/O接口4030(诸如至系统存储器4020的接口)的一些或所有功能可被直接并入到处理器4010中。

网络接口4040可被配置为允许在计算机系统4000和附接到网络的其他设备(诸如其他计算机系统)之间或者在计算机系统4000的节点之间交换数据。在各种实施方案中,网络接口4040可支持经由有线或无线通用数据网络进行通信,诸如例如合适类型的以太网;经由电信/电话网络进行通信,诸如模拟语音网络或数字光纤通信网络;经由存储区域网络进行通信,诸如光纤通道SAN,或经由任何其他合适的类型的网络和/或协议进行通信。

输入/输出设备4050在一些实施方案中可以包括一个或多个显示终端、键盘、键区、触摸板、扫描设备、语音或光学识别设备、或适于由一个或多个计算机系统4000输入或检索数据的任何其他设备。多个输入/输出设备4050可存在于计算机系统4000中,或者可分布在计算机系统4000的各个节点上。在一些实施方案中,类似的输入/输出设备可与计算机系统4000分开,并且可通过有线或无线连接(诸如通过网络接口4040)与计算机系统4000的一个或多个节点进行交互。

如图25所示,存储器4020可包括程序指令4025和数据存储4035,该程序指令4025被配置为实现本文所述的视频通信技术的实施方案,该数据存储4035包括程序指令4025能够访问的各种数据。数据存储4035可包括可在实施方案中使用的数据。在其他实施方案中,可以包括其他或不同的软件元件和数据。

本领域技术人员将会知道,计算机系统4000仅仅是示例性的,而并非旨在限制本文所述的方法和技术的范围。具体地,计算机系统和设备可以包括可以执行所述功能的任何硬件或软件组合,包括计算机、个人计算机系统、台式计算机、膝上型、笔记本、或上网本计算机、大型计算机系统、手持式计算机、工作站、网络计算机、相机、机顶盒、移动设备、网络设备、互联网设备、PDA、无线电话、寻呼机、消费者设备、视频游戏机、手持式视频游戏设备、应用服务器、存储设备、外围设备(诸如交换机、调制解调器、路由器)、或者一般性的任何类型的计算或电子设备。计算机系统4000还可以连接到未示出的其他设备,或者可以作为独立系统工作。此外,由所示出的部件所提供的功能在一些实施方案中可被组合在更少的部件中或者被分布在附加部件中。类似地,在一些实施方案中,一些所示出的部件的功能可不被提供,和/或可还有其他附加功能可供使用。

本领域的技术人员还将认识到,虽然各种项目被示出为在被使用期间被存储在存储器中或存储装置上,但是为了存储器管理和数据完整性的目的,这些项目或其部分可在存储器和其他存储设备之间进行传输。另选地,在其他实施方案中,软件部件中的一些或全部软件部件可以在另一设备上的存储器中执行,并且经由计算机间通信来与所示计算机系统通信。系统部件或数据结构中的一些或全部也可(例如作为指令或结构化数据)被存储在计算机可访问介质或便携式制品上以由合适的驱动器读取,其多种实例在上文中被描述。在一些实施方案中,存储在与计算机系统4000分开的计算机可访问介质上的指令可经由传输介质或信号(诸如电信号、电磁信号、或数字信号)被传输到计算机系统4000,传输介质或信号经由通信介质(诸如网络和/或无线链路)来传送。各种实施方案可进一步包括在计算机可访问介质上接收、发送或存储根据以上描述所实现的指令和/或数据。因此,可以以其它计算机系统配置来实施本发明。

在以上详细描述中,给出了多个具体细节以提供对要求保护的主题的全面理解。但是,本领域技术人员将理解,要求保护的主题可以在没有这些具体细节的情况下被实现。在其他实例中,没有详细地介绍普通技术人员已知的方法、装置、或系统,以便不使要求保护的主题晦涩难懂。

还将理解的是,虽然术语“第一”、“第二”等可能在本文中用来描述各种元素,但是这些元素不应当被这些术语限定。这些术语只是用来将一元素与另一元素区分开。例如,在不脱离本发明的范围的情况下,第一触点可被称为第二触点,并且相似地,第二触点可被称为第一触点。第一触点和第二触点均为触点,但它们不是同一个触点。

在本文中的详细描述中所使用的术语只是为了描述特定实施方案的目的,而并非旨在作为对本发明的限制。如本说明书和所附权利要求中所使用的那样,单数形式的“一个”、“一种”和“所述”旨在也涵盖复数形式,除非上下文清楚地有相反指示。还将理解的是,本文中所使用的术语“和/或”是指并且涵盖相关联地列出的项目中的一个或多个项目的任何和全部可能的组合。还将理解的是,术语“包括”(“includes,”“including,”“comprises,”和/或“comprising,”)在本说明书中使用时是指定存在所陈述的特征、整数、步骤、操作、元件和/或部件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、部件和/或其分组。

如本文中所用,根据上下文,术语“如果”可以被解释为意思是“当......时”或“在......时”或“响应于确定”或“响应于检测到”。类似地,根据上下文,短语“如果确定......”或“如果检测到[所陈述的条件或事件]”可被解释为意指“在确定......时”或“响应于确定......”或“在检测到[所陈述的条件或事件]时”或“响应于检测到[所陈述的条件或事件]”。

下面的详细描述中一些部分是以存储在特定装置或专用计算设备或平台的存储器内的对二进制数字信号的操作的算法或符号表示来提供的。在这个特定说明书的上下文中,术语“特定装置”等包括通用计算机,只要该通用计算机被编程为根据来自程序软件和其他可编程电子设备的指令执行特定功能。算法描述或符号表示是信号处理领域或相关领域中的普通技术人员用于将其工作实质内容传达给该领域中的其他技术人员的技术的实例。算法在这里、并且一般性地被视为是导致所期望结果的操作或类似信号处理的自相一致的序列。在这个上下文中,操作或处理涉及物理量的物理操纵。通常,但是这不是必然的,此类量可采取能够被存储、传送、组合、比较或以其他方式操纵的电信号或磁信号的形式。已证明有时(主要是出于惯用用法的原因)将此类信号指代为位、数据、数值、元素、符号、字符、项、数字、数码等是方便的。但是应该理解,所有这些或类似术语要与适当的物理量相关联并且仅仅是方便的标记。

本公开的实施方式可基于以下权利要求来描述。

1.一种系统,包括:

一个或多个音频传感器,所述一个或多个音频传感器被配置为捕获音频数据;

一个或多个视频传感器,所述一个或多个视频传感器被配置为捕获图像数据;

一个或多个处理器;

包括程序指令的存储器,所述程序指令在由所述一个或多个处理器执行时使得所述一个或多个处理器实现:

视频通信模块,所述视频通信模块被配置为:

接收来自传输参与方处所述音频传感器中的至少一个音频传感器和所述视频传感器中的至少一个视频传感器的用于当前视频通信的视频通信数据流,以用于传输到所述当前视频通信的一个或多个接收参与方,其中所述当前视频通信是所述传输参与方与所述一个或多个接收参与方之间的对等管理的连接;

动态评估所述视频通信数据流,以检测所述当前视频通信的所述传输参与方的暂停事件;以及

响应于检测到所述暂停事件,为所述传输参与方暂停所述当前视频通信,使得所述视频通信数据流中的至少一些不从所述传输参与方传输到所述一个或多个接收参与方。

2.根据权利要求1所述的系统,其中为了动态评估所述视频通信数据流,所述视频通信模块被配置为:

执行视频分析或音频分析中的至少一者,以便确定所述传输参与方的活跃交换指示符;以及

确定所述活跃交换指示符低于用于所述传输参与方的交换阈值,以便触发所述暂停事件。

3.根据权利要求要求1所述的系统,其中对所述视频通信数据流的所述动态评估基于所述视频通信数据的一部分所获取的所述至少一个音频传感器或所述至少一个视频传感器的标识。

4.根据权利要求1所述的系统,

其中所述程序指令使所述一个或多个处理器实现被配置用于检测对恢复用户界面元素或暂停用户界面元素的选择的用户界面模块;

其中所述视频通信模块被进一步配置为:

接收对所述恢复用户界面元素的选择的指示;

响应于接收到所述选择,恢复所述当前视频通信,使得所述视频通信数据流中的至少一部分再次传输到所述一个或多个接收参与方。

5.根据权利要求1所述的系统,其中所述视频通信模块被进一步配置为:

动态评估所述视频通信数据流,以检测所述当前视频通信的所述传输参与方的恢复事件;以及

响应于检测到所述恢复事件,恢复所述当前视频通信,使得全部所述视频通信数据流传输到所述一个或多个接收参与方。

6.根据权利要求1所述的系统,其中所述系统是移动电话。

7.一种方法,包括:

由一个或多个计算设备执行:

捕获当前视频通信中传输参与方的视频通信数据流,以用于传输到所述当前视频通信的一个或多个接收参与方,其中所述当前视频通信是所述传输参与方与所述一个或多个接收参与方之间的对等管理的连接;

在所述传输参与方处动态评估所述视频通信数据流,以检测所述当前视频通信的所述传输参与方的暂停事件;以及

响应于检测到所述暂停事件,为所述传输参与方暂停所述当前视频通信,使得所述视频通信数据流中的至少一些不从所述传输参与方传输到所述一个或多个接收参与方。

8.根据权利要求7所述的方法,其中所述动态评估所述视频通信数

据流以检测所述暂停事件包括:

执行视频分析或音频分析中的至少一者,以便确定所述传输参与方的活跃交换指示符;以及

确定所述活跃交换指示符低于用于所述传输参与方的交换阈值,以便触发所述暂停事件。

9.根据权利要求8所述的方法,其中所述执行所述视频分析或所述音频分析中的至少一者,以便确定所述传输参与方的所述活跃交换指示符基于所述视频通信数据流的一部分的特定捕获源。

10.根据权利要求7所述的方法,还包括:

在所述传输参与方处动态评估所述视频通信数据流,以检测所述当前视频通信的所述传输参与方的恢复事件;以及

响应于检测到所述恢复事件,恢复所述当前视频通信,使得所述视频通信数据流中的至少一部分再次传输到所述一个或多个接收参与方。

11.根据权利要求7所述的方法,其中所述视频通信数据流中再次传输到所述一个或多个接收参与方中的一者的部分与所述视频通信数据流中再次传输到所述一个或多个接收参与方中的另一者的部分不同。

12.根据权利要求7所述的方法,其中所述传输参与方与所述一个或多个接收参与方之间的所述对等管理的连接响应于检测到所述暂停事件而被维持。

13.根据权利要求7所述的方法,其中所述一个或多个接收参与方是多个接收参与方,并且其中所述当前视频通信是所述多个接收参与方与所述传输参与方之间的多方视频通信。

14.一种存储程序指令的非暂态计算机可读存储介质,所述程序指令在由移动计算设备执行时使得所述移动计算设备实现:

捕获当前视频通信中传输参与方的视频通信数据流,以用于传输到所述当前视频通信的一个或多个接收参与方,其中所述当前视频通信是所述传输参与方与所述一个或多个接收参与方之间的对等管理的连接,其中所述传输参与方处于暂停状态,使得所述视频通信数据流的至少一些不被传输到所述一个或多个接收参与方;

动态评估所述视频通信数据流,以检测所述当前视频通信的所述传输参与方的恢复事件;以及

响应于检测到所述恢复事件,恢复将当前视频通信数据流中的至少一部分传输到所述一个或多个接收参与方。

15.根据权利要求14所述的非暂态计算机可读存储介质,其中所述动态评估所述视频通信数据以检测所述恢复事件包括:

执行视频分析或音频分析中的至少一者,以便确定所述传输参与方的活跃交换指示符;以及

确定所述活跃交换指示符高于用于所述传输参与方的交换阈值,以便触发所述恢复事件。

16.根据权利要求14所述的非暂态计算机可读存储介质,其中所述程

序指令使所述移动计算设备还实现:

在所述传输参与方进入所述暂停状态之前,在所述传输参与方处动态评估所述视频通信数据流,以检测所述传输参与方的暂停事件,所述暂停事件触发所述传输参与方的所述暂停状态。

17.根据权利要求14所述的非暂态计算机可读存储介质,其中所述程

序指令使所述移动计算设备还实现:

在所述传输参与方进入所述暂停状态之前,接收对暂停用户界面元素的用户选择的指示,所述指示触发所述传输参与方的所述暂停状态。

18.根据权利要求14所述的非暂态计算机可读存储介质,其中所述视频通信数据流的不被传输到所述一个或多个接收参与方的所述至少一些是视频数据。

19.根据权利要求14所述的非暂态计算机可读存储介质,其中所述动态评估所述视频通信数据流是响应于确定所述当前视频通信根据集成显示模式进行显示而执行的。

20.根据权利要求14所述的非暂态计算机可读存储介质,其中所述一个或多个接收参与方是多个接收参与方,并且其中所述当前视频通信是所述多个接收参与方与所述传输参与方之间的多方视频通信。

21.一种系统,包括:

电子显示器;

一个或多个处理器;

包括程序指令的存储器,所述程序指令在由所述一个或多个处理器执行时使得所述一个或多个处理器实现视频通信模块和用户接口;

所述用户接口被配置为检测用户输入;

所述视频通信模块被配置为:

经由视频消息协议从远程移动计算设备接收作为来自所述远程移动计算设备的视频消息的一部分的视频通信数据;

当所述视频通信数据被接收时在所述电子显示器上显示所述视频消息;

记录所述视频通信数据,以用于随后在便携式多功能设备处进行显示;

经由所述用户接口接收用于发起与所述远程移动计算设备的视频通信的用户输入的指示;和

响应于接收到用于发起所述视频通信的所述指示,与所述远程移动计算设备建立通信连接,使得随后从所述远程计算设备接收的视频通信数据和随后向所述远程计算设备传输的视频通信数据经由所建立的视频通信连接来发送,其中所述视频通信连接与所述视频消息协议不同。

22.根据权利要求21所述的系统,其中所述电子显示器是触敏显示器,并且其中为了检测所述用户输入,所述用户接口被配置为检测所述电子显示器上的触摸手势。

23.根据权利要求21所述的系统,其中所述视频通信模块被进一步配置为:

监视所述视频通信连接,以确定连接质量值;

确定所述连接质量值低于连接容忍阈值;

响应于所述确定所述连接质量值低于所述连接容忍阈值:

在所述电子显示器上显示向所述视频消息协议转变的指示;以及

记录附加视频通信数据,以作为另一视频消息经由所述视频消息协议发送到所述远程移动计算设备。

24.根据权利要求21所述的系统,还包括:

数据存储装置;

其中为了记录所述视频通信数据,所述视频通信模块被配置为将所述视频通信数据的版本存储在所述数据存储装置中以用于回放;

其中所述视频通信模块被进一步配置为存储所述随后接收的视频通信数据的版本和所述随后传输的视频通信数据的版本,以用于回放。

25.根据权利要求21所述的系统,

其中所述程序指令使所述一个或多个处理器还实现当前执行的应用程序模块,所述当前执行的应用程序模块被配置为在所述电子显示器上显示图像数据;

其中为了在所述电子显示器上显示所述视频消息,所述视频通信模块被配置为确定当前显示所述应用程序模块的所述图像数据的所述电子显示器内的显示位置。

26.根据权利要求21所述的系统,其中所述系统是移动电话。

27.一种方法,包括:

由便携式多功能设备执行:

经由视频消息协议从远程移动计算设备接收作为来自所述远程移动计算设备的视频消息的一部分的视频通信数据;

当所述视频通信数据被接收时在所述便携式多功能设备处显示所述视频消息;

当所述视频通信数据被接收时记录所述视频消息以供随后在所述便携式多功能设备处显示;以及

响应于接收到用于发起与所述远程移动计算设备的视频通信的指示,与所述远程移动计算设备建立视频通信连接,使得随后从所述远程计算设备接收的视频通信数据和随后向所述远程计算设备传输的视频通信数据经由所建立的视频通信连接来发送,其中所述视频通信连接与所述视频消息协议不同。

28.根据权利要求27所述的方法,还包括:

经由所述视频消息协议从另一远程移动计算设备接收作为来自所述另一远程移动计算设备的另一视频消息的一部分的其他视频通信数据;

为所述另一视频消息的所述其他视频通信数据执行所述显示和所述记录;以及

响应于接收到用于停止显示所述其他视频的指示,停止便携式多功能设备处对所述另一视频消息的所述显示。

29.根据权利要求27所述的方法,其中所述记录所述视频通信数据还

包括记录随后从所述远程移动计算设备接收的视频通信数据,并且其中所述方法还包括:

响应于回放请求,显示所记录的视频通信数据以及随后接收的视频通信数据。

30.根据权利要求29所述的方法,其中从托管所记录的随后接收的视频通信数据的远程数据存储装置获取要显示的随后接收的视频通信数据中的至少一些。

31.根据权利要求27所述的方法,还包括:

监视所述视频通信连接,以确定连接质量值;

确定所述连接质量值低于连接容忍阈值;以及

响应于所述确定所述连接质量值低于所述连接容忍阈值,记录附加视频通信数据以经由所述视频消息协议作为另一视频消息发送到所述远程移动计算设备。

32.根据权利要求31所述的方法,还包括:

在确定所述连接质量值低于所述连接容忍阈值之后,确定所述连接质量值等于或高于所述连接容忍阈值;

响应于确定所述连接质量值等于或高于所述连接容忍阈值,恢复经由所建立的视频通信连接对所捕获的视频通信数据的传输。

33.根据权利要求27所述的方法,其中所述便携式多功能设备和所述远程移动计算设备是参与群消息线程的大量计算设备中的两个,其中所述方法还包括:

响应于接收到用于发起与所述远程移动计算设备的所述视频通信的所述指示,建立与所述群消息线程中并非所述远程移动计算设备的一个或多个其余计算设备的相应附加视频通信连接,其中所建立的与所述远程移动计算设备的视频连接和与所述一个或多个其余计算设备的所述相应附加视频通信连接一起构成多方视频通信。

34.一种存储程序指令的非暂态计算机可读存储介质,所述程序指令

在由移动计算设备执行时使得所述移动计算设备实现:

经由视频消息协议从远程移动计算设备接收作为来自所述远程移动计算设备的视频消息的一部分的视频通信数据;

当所述视频通信数据被接收时在便携式多功能设备处显示所述视频消息;

当所述视频通信数据被接收时记录所述视频消息以供随后在所述便携式多功能设备处显示;

接收用于转变到与所述远程移动计算设备的视频通信的用户输入的指示;和

响应于接收到所述用户输入的所述指示,建立与所述远程移动计算设备的视频通信连接,使得随后从所述远程计算设备接收的视频通信数据和随后向所述远程计算设备传输的视频通信数据经由所建立的视频通信连接来发送,其中所述视频通信连接与所述视频消息协议不同。

35.根据权利要求34所述的非暂态计算机可读存储介质,其中所述程

序指令还使所述移动计算设备实现:

监视所述视频通信连接,以确定连接质量值;

确定所述连接质量值低于连接容忍阈值;

响应于所述确定所述连接质量值低于所述连接容忍阈值:

提供向所述视频消息协议转变的指示;和

记录附加视频通信数据,以作为另一视频消息经由所述视频消息协议发送到所述远程移动计算设备。

36.根据权利要求34所述的非暂态计算机可读存储介质,其中所述程序指令使所述移动计算设备还实现:

经由所述视频消息协议从另一远程移动计算设备接收作为来自所述另一远程移动计算设备的另一视频消息的一部分的其他视频通信数据;

为所述另一视频消息的所述其他视频通信数据执行所述显示和所述记录;

接收用于停止显示所述其他视频的用户输入的指示;以及

响应于接收到用于停止显示所述其他视频的所述用户输入的所述指示,停止便携式多功能设备处对所述另一视频消息的所述显示。

37.根据权利要求36所述的非暂态计算机可读存储介质,其中所述程序指令还使所述移动计算设备实现:

响应于回放请求,显示所述视频消息的所记录的视频通信数据。

38.根据权利要求34所述的非暂态计算机可读存储介质,其中所述移动计算设备和所述远程移动计算设备是参与群消息线程的大量计算设备中的两个,并且其中所述程序指令使所述移动计算设备还实现:

响应于接收到用于发起与所述远程移动计算设备的所述视频通信的所述指示,建立与所述群消息线程中不同于所述远程移动计算设备的一个或多个其余计算设备的相应附加视频通信连接,其中所建立的与所述远程移动计算设备的视频连接和与所述一个或多个其余计算设备的所述相应附加视频通信连接一起构成多方视频通信。

39.根据权利要求38所述的非暂态计算机可读存储介质,其中作为所述多方视频通信的一部分在所述多个计算设备之间传输的附加视频通信数据被存储在存储服务器处,并且其中所述程序指令使所述移动计算设备还实现:

响应于对所述多方视频通信的一部分的回放请求,显示从存储服务器获得的所述附加视频通信数据的与所述多方视频通信的所请求部分相对应的一部分。

40.根据权利要求39所述的非暂态计算机可读存储介质,其中包括在所述多方视频通信中的所述多个计算设备中的每一个都保持作为所述多方视频通信的一部分从所述计算设备传输的附加视频通信数据的相应记录,并且其中所述程序指令使所述移动计算设备还实现:

响应于对所述多方视频通信的一部分的回放请求,显示与所述多方视频通信的所请求部分相对应的从特定计算设备获得的附加视频通信数据的相应记录。

41.一种系统,包括:

数据存储装置,所述数据存储装置被配置为为与相应一个或多个远程移动计算设备的一个或多个预先建立的即时视频通信连接保持相应连接信息;

一个或多个处理器;

包括程序指令的存储器,所述程序指令在由所述一个或多个处理器执行时使得所述一个或多个处理器实现视频通信模块;

所述视频通信模块被配置为:

接收用于发起与所述一个或多个远程移动计算设备中特定远程移动计算设备的即时视频通信的请求;

响应于接收到用于发起所述即时视频通信的所述请求:

确定与所述特定远程移动计算设备的所述即时视频通信连接被授权;

响应于所述确定:

针对所述特定远程移动计算设备的所述相应连接信息访问所述数据存储装置;和

根据所述相应即时连接信息传输所请求的即时视频通信的所捕获的视频通信数据,使得

所捕获的视频通信数据可在被接收时在所述远程便携式多功能计算设备处显示。

42.根据权利要求41所述的系统,其中所述视频通信模块被进一步配置为:

在接收到所述即时视频通信请求之前:

向所述特定远程移动计算设备发送对于建立与所述特定远程移动计算设备的所述即时视频通信连接的授权的请求;

接收所述特定远程移动计算设备的所述相应连接信息;和

将所述特定远程移动计算设备的所述相应连接信息存储在所述数据存储装置中。

43.根据权利要求41所述的系统,其中所述视频通信模块被进一步配

置为:

在接收到所述即时视频通信请求之前:

从所述远程移动计算设备接收对于建立相应的所述预先建立的即时视频通信连接的授权的请求;

响应于接收到对于授权的所述请求:

响应于确定所述特定远程移动计算设备被授权建立所述预先建立的即时视频通信连接,用用于建立所述预先建立的即时视频通信连接的相应连接信息对所述请求进行响应。

44.根据权利要求41所述的系统,

其中所述系统还包括电子显示器;

其中所述视频通信模块被进一步配置为:

经由所述预先建立的即时视频通信连接中另一预先建立的即时视频通信连接从所述一个或多个远程移动计算设备中另一远程移动计算设备接收其他视频通信数据;

响应于接收到所述其他视频通信数据:

响应于确定所述另一预先建立的即时视频通信连接被授权,在所述其他视频通信数据被接收时将所述其他视频通信数据显示在所述电子显示器上。

45.根据权利要求41所述的系统,其中,为了在所述电子显示器上显

示所述其他视频通信数据,所述视频通信模块被配置为确定当前

显示另一应用程序的图像数据的所述电子显示器内的显示位置。

46.根据权利要求41所述的系统,其中所述系统是移动电话。

47.一种方法,包括:

便携式移动计算设备执行:

接收对于发起与远程便携式多功能计算设备的即时视频通信的请求;

响应于接收到对于发起所述即时视频通信的所述请求:

确定与所述远程便携式多功能计算设备的所述即时视频通信连接被授权;

响应于所述确定:

访问所述远程便携式多功能计算设备的所存储的连接信息;以及

根据所存储的即时连接信息传输所请求的即时视频通信的所捕获的视频通信数据,使得所捕获的视频通信数据可在被接收时在所述远程便携式多功能计算设备处显示。

48.根据权利要求47所述的方法,还包括:

在接收到所述即时视频通信请求之前:

向所述远程便携式多功能计算设备发送对于建立即时视频通信连接的授权的请求;

接收用于建立所述即时视频通信连接的连接信息;以及

存储所述远程便携式多功能计算设备的所述连接信息。

49.根据权利要求48所述的方法,还包括:

所述远程便携式多功能计算设备执行:

接收对于建立与所述便携式多功能计算设备的所述即时视频通信连接的授权的所述请求;

响应于接收到所述请求:

确定所述便携式多功能计算设备被授权建立所述即时视频通信连接;和

响应于所述确定所述便携式多功能计算设备被授权建立所述即时视频通信连接,用所述即时连接信息对所述请求进行响应。

50.根据权利要求48所述的方法,还包括:

所述远程便携式多功能计算设备执行:

经由所述即时视频通信连接接收所述视频通信数据;以及

当所述视频通信数据被接收时在所述远程便携式多功能计算设备处显示所述视频通信数据。

51.根据权利要求47所述的方法,还包括:

接收对于发起与另一远程便携式多功能计算设备的即时视频通信的另一请求;

响应于接收到所述另一请求:

响应于确定与所述另一远程便携式多功能计算设备的所述即时视频通信连接未被授权:

建立与所述另一远程便携式多功能计算设备的视频通信连接;以及

经由所建立的与所述另一远程便携式多功能计算设备的所述视频通信连接传输所述另一请求的即时视频通信的其他捕获的视频通信数据。

52.根据权利要求47所述的方法,还包括:

检测所述即时视频通信连接的所述连接信息的改变;以及

响应于检测到所述改变,根据所检测到的所述改变更新所述远程便携式多功能计算设备的所存储的所述连接信息。

53.根据权利要求52所述的方法,其中所述检测所述即时视频通信连接的所述连接信息的改变包括周期性地或非周期性地轮询所述远程便携式多功能计算设备,以验证所述即时视频通信连接。

54.一种存储程序指令的非暂态计算机可读存储介质,所述程序指令在由移动计算设备执行时使得所述移动计算设备实现:

维持与一个或多个相应远程移动计算设备的一个或多个预先建立的即时视频通信连接;

经由所述预先建立的即时视频通信连接中的一个预先建立的即时视频通信连接从所述相应远程移动计算设备接收视频通信数据;

响应于接收到所述视频通信数据:

响应于确定所述预先建立的即时视频通信连接被授权,在所述视频通信数据被接收时显示所述视频通信数据。

55.根据权利要求54所述的非暂态计算机可读存储介质,

其中所述程序指令使所述移动计算设备还实现:

在接收到所述视频通信数据之前:

向所述相应远程移动计算设备发送对于建立与所述相应远程移动计算设备的所述即时视频通信连接的授权的请求;

接收用于建立所述即时视频通信连接的连接信息;并且

其中在所述维持与所述一个或多个相应远程移动计算设备的一个或多个预先建立的即时视频通信连接中,所述程序指令使所述移动计算设备实现:存储所述远程移动计算设备的所述连接信息。

56.根据权利要求54所述的非暂态计算机可读存储介质,其中在所述在所述视频通信数据被接收时显示所述视频通信数据中,所述程序指令使所述移动计算设备实现:确定当前显示另一应用程序的图像数据的电子显示器内的显示位置,其中根据作为执行所述另一应用程序的一部分在运行时配置的一个或多个显示属性动态地确定所述显示位置。

57.根据权利要求54所述的非暂态计算机可读存储介质,其中所述程序指令使所述移动计算设备还实现:

在接收到所述视频通信数据之前:

从另一移动计算设备接收对于建立所述一个或多个预先建立的即时视频通信连接中另一预先建立的即时视频通信连接的授权的请求;

响应于接收到所述请求:

确定所述另一移动计算设备被授权建立所述另一预先建立的即时视频通信连接;以及

响应于所述确定所述另一移动计算设备被授权建立所述另一预先建立的即时视频通信连接,用用于建立所述预先建立的即时视频通信连接的连接信息对所述请求进行响应。

58.根据权利要求54所述的非暂态计算机可读存储介质,其中所述程序指令使所述移动计算设备还实现:

接收对于发起与所述一个或多个远程移动计算设备中另一远程移动计算设备的即时视频通信的请求;

响应于接收到对于发起所述即时视频通信的所述请求:

响应于确定与所述另一远程移动计算设备的所述即时视频通信连接被授权,经由相应的所述另一预先建立的即时视频通信连接向所述另一远程移动计算设备发送所请求的即时视频通信的所捕获的视频通信数据。

59.根据权利要求54所述的非暂态计算机可读存储介质,其中所述程序指令使所述一个或多个移动计算设备实现:

响应于接收到对于所述一个或多个远程移动计算设备中另一远程移动计算设备的解除授权指示,移除对于所述另一远程移动计算设备的相应的所述预先建立的即时视频通信连接。

60.根据权利要求59所述的非暂态计算机可读存储介质,其中经由所述移动计算设备处的用户接口接收所述解除授权指示,并且其中在所述移除对于所述另一远程移动计算设备的相应的所述预先建立的即时视频通信连接中,所述程序指令使所述移动计算设备实现:向所述另一远程计算设备发送解除授权通知。

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