CN117061692A - 在视频通话期间渲染定制视频通话界面 - Google Patents
在视频通话期间渲染定制视频通话界面 Download PDFInfo
- Publication number
- CN117061692A CN117061692A CN202310547486.XA CN202310547486A CN117061692A CN 117061692 A CN117061692 A CN 117061692A CN 202310547486 A CN202310547486 A CN 202310547486A CN 117061692 A CN117061692 A CN 117061692A
- Authority
- CN
- China
- Prior art keywords
- video
- video call
- client device
- custom
- user
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000009877 rendering Methods 0.000 title claims abstract description 37
- 230000002452 interceptive effect Effects 0.000 claims abstract description 145
- 230000003993 interaction Effects 0.000 claims abstract description 109
- 238000000034 method Methods 0.000 claims abstract description 32
- 230000033001 locomotion Effects 0.000 claims description 60
- 239000000463 material Substances 0.000 claims description 50
- 230000000007 visual effect Effects 0.000 claims description 44
- 238000011161 development Methods 0.000 claims description 7
- 230000005484 gravity Effects 0.000 claims description 5
- 230000009471 action Effects 0.000 description 67
- 238000012545 processing Methods 0.000 description 58
- 230000000694 effects Effects 0.000 description 56
- 230000006854 communication Effects 0.000 description 29
- 238000004891 communication Methods 0.000 description 29
- 230000006855 networking Effects 0.000 description 24
- 230000005540 biological transmission Effects 0.000 description 18
- 230000003190 augmentative effect Effects 0.000 description 17
- 230000004044 response Effects 0.000 description 16
- 230000008569 process Effects 0.000 description 15
- 238000012546 transfer Methods 0.000 description 13
- 230000006870 function Effects 0.000 description 12
- 230000001360 synchronised effect Effects 0.000 description 11
- 238000013475 authorization Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 6
- 238000012986 modification Methods 0.000 description 6
- 230000004048 modification Effects 0.000 description 6
- 238000010422 painting Methods 0.000 description 6
- 230000011273 social behavior Effects 0.000 description 6
- 230000007704 transition Effects 0.000 description 6
- 230000008901 benefit Effects 0.000 description 5
- 230000018109 developmental process Effects 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 5
- JTJMJGYZQZDUJJ-UHFFFAOYSA-N phencyclidine Chemical compound C1CCCCN1C1(C=2C=CC=CC=2)CCCCC1 JTJMJGYZQZDUJJ-UHFFFAOYSA-N 0.000 description 5
- 238000003780 insertion Methods 0.000 description 4
- 230000037431 insertion Effects 0.000 description 4
- 238000005259 measurement Methods 0.000 description 4
- 230000011218 segmentation Effects 0.000 description 4
- 238000000926 separation method Methods 0.000 description 4
- 230000006399 behavior Effects 0.000 description 3
- 230000001413 cellular effect Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 230000000977 initiatory effect Effects 0.000 description 3
- 230000001151 other effect Effects 0.000 description 3
- 238000013515 script Methods 0.000 description 3
- 239000007787 solid Substances 0.000 description 3
- 239000008186 active pharmaceutical agent Substances 0.000 description 2
- 230000003542 behavioural effect Effects 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 210000003097 mucus Anatomy 0.000 description 2
- 238000012552 review Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000009182 swimming Effects 0.000 description 2
- 230000008685 targeting Effects 0.000 description 2
- 239000013598 vector Substances 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 230000002730 additional effect Effects 0.000 description 1
- 230000000386 athletic effect Effects 0.000 description 1
- 230000007175 bidirectional communication Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- -1 but not limited to Substances 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 230000001815 facial effect Effects 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- RGNPBRKPHBKNKX-UHFFFAOYSA-N hexaflumuron Chemical compound C1=C(Cl)C(OC(F)(F)C(F)F)=C(Cl)C=C1NC(=O)NC(=O)C1=C(F)C=CC=C1F RGNPBRKPHBKNKX-UHFFFAOYSA-N 0.000 description 1
- 230000003116 impacting effect Effects 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 230000003278 mimic effect Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000008447 perception Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 230000000704 physical effect Effects 0.000 description 1
- 229920001690 polydopamine Polymers 0.000 description 1
- 230000001737 promoting effect Effects 0.000 description 1
- 238000010079 rubber tapping Methods 0.000 description 1
- 239000004576 sand Substances 0.000 description 1
- 230000003997 social interaction Effects 0.000 description 1
- 239000011850 water-based material Substances 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N7/00—Television systems
- H04N7/14—Systems for two-way working
- H04N7/141—Systems for two-way working between two video terminals, e.g. videophone
- H04N7/147—Communication arrangements, e.g. identifying the communication as a video-communication, intermediate storage of the signals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/60—Editing figures and text; Combining figures or text
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/001—Texturing; Colouring; Generation of texture or colour
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/1066—Session management
- H04L65/1083—In-session procedures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/40—Support for services or applications
- H04L65/403—Arrangements for multi-party communication, e.g. for conferences
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2200/00—Indexing scheme for image data processing or generation, in general
- G06T2200/24—Indexing scheme for image data processing or generation, in general involving graphical user interfaces [GUIs]
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Business, Economics & Management (AREA)
- General Business, Economics & Management (AREA)
- Telephonic Communication Services (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
公开了用于在视频通话期间渲染具有可定制视频单元和/或交互式界面对象的定制视频通话界面的系统、方法、客户端设备和非暂态计算机可读介质。例如,所公开的系统可以通过针对视频通话而建立的流式传输信道与一个或多个参与者客户端设备进行视频通话。所公开的系统可以在视频通话期间以网格视图显示格式渲染描绘了从参与者客户端设备接收到的视频的视频单元。随后,所公开的系统可以在检测到指示了请求定制视频通话界面的用户交互时,在定制视频通话界面内以自视图显示格式来渲染视频单元。在一些情况下,客户端设备在视频通话期间,经由自视图显示格式促进了对客户端设备上所显示的视频单元和其他交互式对象的各种定制、和/或与其的各种交互。
Description
技术领域
本公开总体上涉及视频通话系统。
背景技术
视频通话系统允许用户通过计算设备(例如,智能电话、膝上型计算机、平板电脑、台式计算机)通过使用音频输入和视频输入(例如,内置数码摄像头、数字网络摄像头)进行电子通信。实际上,近年来通过视频通话和视频会议的电子通信有所增加,视频通话和视频会议使多个用户能够经由计算设备进行通信,以彼此共享用户的视频和音频这两者。然而,传统的视频通话系统通常局限于非交互式视频通话,所述非交互式视频通话简单且严格地使各用户设备能够在这些用户设备之间呈现和观看采集到的视频。
发明内容
本公开的实施例使用如下的系统、非暂态计算机可读介质和方法,来提供多种益处和/或解决本领域中的上述问题或其他问题中的一个或多个问题:所述系统、非暂态计算机可读介质和方法在视频通话期间渲染定制视频通话界面,所述定制视频通话界面具有可定制的视频单元和/或交互式界面对象。例如,所公开的系统可以通过针对视频通话而建立的流式传输信道(例如,视频数据信道和音频数据信道)与一个或多个参与者客户端设备进行视频通话。所公开的系统在视频通话期间可以(在视频通话界面内)以网格视图显示格式渲染视频单元,该视频单元描绘了从参与者客户端设备接收到的视频。在一个或多个实施方式中,所公开的系统在视频通话期间提供了用于实现对视频通话界面进行各种定制的可选选项。实际上,所公开的系统可以在检测到指示了请求对视频通话界面进行定制的用户交互时,在定制视频通话界面内以自视图显示格式(例如,这样的自视图显示格式:该自视图显示格式在视频通话期间促进了对视频单元和客户端设备上显示的其他对象的各种定制、和/或促进了与视频单元和客户端设备上显示的其他对象的交互)渲染视频单元。
在随后的描述中概述了本公开的一个或多个实施例的附加特征和优势,这些附加特征和优势将部分地从该描述中显而易见,或者可以通过对这些示例实施例进行实践而获知。
附图说明
参考各附图对具体实施方式进行描述,在这些附图中:
图1示出了根据一个或多个实施方式的定制布局视频通话系统可在其中运行的示例环境。
图2示出了根据一个或多个实施方式的如下定制布局视频通话系统的示例:该定制布局视频通话系统建立和促进了具有定制视频通话界面的视频通话。
图3示出了根据一个或多个实施方式的定制布局视频通话系统建立具有定制视频通话界面的视频通话的流程图。
图4示出了根据一个或多个实施方式的如下定制布局视频通话系统的示例:该定制布局视频通话系统使得客户端设备能够利用视频通话流式传输信道来修改视频单元。
图5示出了根据一个或多个实施方式的如下定制布局视频通话系统的示例:该定制布局视频通话系统使得客户端设备能够利用视频通话流式传输信道来在定制视频通话界面内渲染交互式对象。
图6A和图6B示出了根据一个或多个实施方式的如下定制布局视频通话系统的示例:该定制布局视频通话系统使得客户端设备能够接收请求定制视频通话界面的用户交互、并且能够渲染具有修改后视频单元的定制视频通话界面。
图7A和图7B示出了根据一个或多个实施方式的如下定制布局视频通话系统的示例:该定制布局视频通话系统使得客户端设备能够在定制视频界面内动态地移动视频单元。
图8示出了根据一个或多个实施方式的如下定制布局视频通话系统的示例:该定制布局视频通话系统使得客户端设备能够在视频通话期间渲染素材作为交互式对象。
图9A至图9C示出了根据一个或多个实施方式的如下定制布局视频通话系统的示例:该定制布局视频通话系统在视频通话期间启用了电子绘图应用程序。
图10示出了根据一个或多个实施方式的如下定制布局视频通话系统的示例:该定制布局视频通话系统在视频通话期间渲染了音乐开发应用程序。
图11示出了根据一个或多个实施方式的如下定制布局视频通话系统的示例:该定制布局视频通话系统使得客户端设备能够在视频通话期间渲染具有媒体流内容的定制视频通话界面。
图12A和图12B示出了根据一个或多个实施方式的如下定制布局视频通话系统的示例:该定制布局视频通话系统使得客户端设备能够在视频通话期间渲染媒体库浏览应用程序(也称为媒体浏览库应用程序)。
图13A和图13B示出了根据一个或多个实施方式的如下定制布局视频通话系统的示例:该定制布局视频通话系统使得客户端设备能够在视频通话期间渲染微件作为交互式对象,以流式传输和浏览音乐。
图14示出了根据一个或多个实施方式的如下定制布局视频通话系统的示例:该定制布局视频通话系统使得客户端设备能够在图形环境内渲染视频单元和交互式对象。
图15示出了根据一个或多个实施方式的如下定制布局视频通话系统的示例:该定制布局视频通话系统使得客户端设备能够在定制视频通话界面内渲染视频游戏应用程序作为交互式对象。
图16示出了根据一个或多个实施方式的如下定制布局视频通话系统的示例:该定制布局视频通话系统使得客户端设备能够在视频通话期间渲染具有视频单元的卡拉OK应用程序。
图17示出了根据一个或多个实施方式的用于在定制视频通话界面中渲染视频单元的一系列动作的流程图。
图18示出了根据一个或多个实施方式的示例计算设备的框图。
图19示出了根据一个或多个实施方式的网络系统的示例环境。
图20示出了根据一个或多个实施方式的示例社交图谱。
具体实施方式
本公开描述了定制布局视频通话系统的一个或多个实施例,该定制布局视频通话系统在视频通话期间在视频通话界面中渲染具有修改后视频单元和/或交互式对象的可定制视频通话界面。例如,在视频通话期间,定制布局视频通话系统可以检测对选项的选择(或请求),以启用各种具有定制的视频单元和/或交互式对象的定制视频通话布局。然后,基于所选择的选项,定制布局视频通话系统可以在定制视频通话界面内以自视图显示格式渲染(视频通话参与者的)视频单元,以对该视频单元进行视觉上地修改(和/或将动态移动应用于该视频单元)。此外,定制布局视频通话系统也可以在视频通话期间在定制视频通话界面内渲染交互式对象,以模拟各种素材和/或交互式应用程序(例如,绘图应用程序、音乐应用程序、媒体流应用程序和/或浏览应用程序)。
在一个或多个实施例中,定制布局视频通话系统使得客户端设备能够渲染具有可定制视频单元(例如,来自如下视频单元:所述视频单元渲染了参与视频通话的客户端设备上采集到的视频)的定制视频通话界面。例如,在一些实例中,定制布局视频通话系统使得客户端设备能够在定制视频通话界面内修改视频单元的视觉属性,使得这些视频单元具有修改后的尺寸、形状和/或位置。此外,定制布局视频通话系统可以使得客户端设备能够动态地移动视频单元,使得这些视频单元模拟真实的移动(例如,弹跳、下落、碰撞、滑动、滚动)。为了在视频通话期间在定制视频通话界面内渲染定制的视频单元,定制布局视频通话系统可以使得客户端设备能够使用其他参与者设备提供的视频处理数据,来修改从这些其他参与者设备接收到的视频、和/或根据接收到的视频渲染视频纹理。
此外,在一个或多个实施方式中,定制布局视频通话系统使得客户端设备能够渲染具有交互式对象和视频单元的定制视频通话界面,以用于视频通话。例如,定制布局视频通话系统可以使得一个或多个客户端设备能够(在视频通话期间)在定制视频通话界面内渲染交互式对象,这些交互式对象描绘了基于图形的素材和/或交互式应用程序。在一些实例中,定制布局视频通话系统可以使得一个或多个客户端设备能够在视频通话期间渲染交互式素材(例如,将该交互式素材渲染为背景、和/或在定制视频通话界面的多个部分中渲染交互式素材),该交互式素材响应于来自参与者的用户交互而动态且可视地变化、以及动态地移动。在一个或多个实施方式中,定制布局视频通话系统使得一个或多个客户端设备能够在视频通话期间使用视频单元渲染交互式应用程序,该交互式应用程序例如但不限于电子绘画应用程序、电子文档应用程序、数字内容流式传输应用程序、视频游戏应用程序、音乐开发应用程序和/或媒体浏览库应用程序。
此外,在一个或多个实施例中,定制布局视频通话系统建立了(除视频数据信道之外的)流式传输信道,以使得客户端设备能够在视频通话期间在定制视频通话界面内对视频单元进行定制、和/或将交互式对象与视频单元集成。在一些情况下,定制布局视频通话系统建立了附加数据信道(例如,视频处理数据信道和/或数据共享信道),以使得参与视频通话的客户端设备能够传输视频处理数据、交互数据和/或其他图形数据。实际上,在一个或多个实施例中,定制布局视频通话系统使得客户端设备在视频通话期间利用这样的传输数据来在定制视频通话界面内对视频单元进行定制、和/或实现交互式对象。另外,在许多实施方式中,定制布局视频通话系统使得客户端设备能够利用视频数据和其他传输数据来对来自其他参与者设备的视频进行处理、并且以自视图显示格式渲染来自其他参与者设备的视频(例如,而不是以默认的网格视图显示格式直接播放接收到的视频流)。
如上所提及的,定制布局视频通话系统提供了优于传统系统的技术优势和益处。例如,定制布局视频通话系统可以在多个如下的参与者设备之间建立和启用动态且灵活的视频通话:所述参与者设备包括定制的、共享的和交互式的视频通话布局。实际上,与局限于以默认网格视图对描绘了视频通话中各参与者的视频进行渲染的许多传统视频通话系统不同,定制布局视频通话系统使得客户端设备能够在视频通话期间在视频通话界面内发起各种定制,以渲染(共享的)定制视频通话布局,所述定制视频通话布局可以包括动态变化和动态移动的视频单元和/或交互式对象。
除了通过定制视频通话布局内的动态视频单元和交互式对象而改进视频通话的功能和灵活性外,定制布局视频通话系统还能够在视频通话期间在多个参与者设备之间高效且准确地共享视频通话布局效果。例如,定制布局视频通话系统可以建立一条或多条附加数据信道,以使得客户端设备能够传输效果数据、交互数据和/或视频处理数据,以在视频通话期间在动态变化(或动态移动)的视频单元内准确且高效地渲染视频。此外,定制布局视频通话系统也可以利用该一条或多条附加数据信道来使客户端设备能够在视频通话期间传输效果数据、交互数据和/或视频处理数据,以准确且高效地渲染共享交互式对象。实际上,在一个或多个实施例中,定制布局视频通话系统可以经由该一条或多条附加数据信道来使客户端设备能够单独地对(计算成本高昂的)原始采集视频(和其他交互)进行分析,并且随后传输这类数据,以使得每个客户端设备能够在本地(且准确地)根据该数据来渲染视频单元和/或能够渲染具有共享交互的交互式对象(例如,而无需对原始数据进行计算成本高昂的分析)。
如前面的论述所示出的,本公开利用了各种术语来描述定制布局视频通话系统的特征和益处。例如,如本文中所使用的,术语“视频通话”是指视频数据在多个计算设备之间传输的电子通信。具体地,在一个或多个实施例中,视频通话包括各计算设备之间的如下电子通信:该电子通信传输并呈现在这些计算设备上采集的视频(和音频)。
如本文中所使用的,术语“定制视频通话界面”是指修改后的视频通话界面。具体地,术语“定制视频通话界面”可以指便于视频通话的图形用户界面,该图形用户界面具有修改后的特征,以在视频通话期间包括定制的视频单元和/或交互式对象。例如,定制视频通话界面可以包括具有多个视频单元和/或交互式对象的图形用户界面,该多个视频单元和/或交互式对象是以传统显示格式或默认的网格视图显示格式之外的格式渲染的。
此外,如本文中所使用的,术语“视频单元”是指环绕(或围绕)数字视频(或视频纹理)的图形对象(或框)。具体地,术语“视频单元”可以指环绕(或适配)如下数字视频的图形框:该数字视频描绘了视频通话参与者。在一个或多个实施例中,定制布局视频通话系统使得客户端设备能够(例如经由视觉属性和/或动态移动)向视频单元引入基于视觉和/或移动的变化。
如本文中所使用的,术语“视觉属性”是指指示了图形对象的视觉特征的一个或多个数据点、值和/或表示。例如,术语“视觉属性”可以包括图形对象(例如,视频单元)的尺寸、形状和/或位置。在一个或多个实施例中,定制布局视频通话系统使得客户端设备能够通过修改(环绕或围绕数字视频的)视频单元的边界的尺寸、形状或位置,来修改视频单元的视觉属性。
如本文中进一步所使用的,术语“动态移动”是指图形对象的移动行为或移动特征。具体地,术语“动态移动”可以指图形用户界面(例如,定制视频通话界面)内的图形对象(例如,视频单元)的各种类型的(例如,逼真的和/或动画化的)移动。例如,定制布局视频通话系统可以使得客户端设备能够动态地移动视频单元,以模拟视频单元的各种移动,这些移动例如但不限于弹跳、下落、旋转、冲击、碰撞和/或滑动。在一个或多个实施方式中,定制布局视频通话系统可以使得客户端设备能够通过将视频单元移动到视频通话界面的边缘和/或移动到另一视频单元,来动态地移动视频单元。在一些情况下,定制布局视频通话系统使得客户端设备能够利用(或应用)一个或多个移动属性来动态地移动视频单元。例如,定制布局视频通话系统可以利用移动属性,该移动属性例如但不限于视频单元的质量值、碰撞边界、重力值、摩擦力值、弹力值。实际上,定制布局视频通话系统可以使得客户端设备能够利用(或应用)视频单元的移动属性来模拟各种移动特征。
此外,如本文中所使用的,术语“自视图显示”是指对如下视频采集的显示:该视频采集是在同一客户端设备上采集和显示的。具体地,如本文中所使用的,术语“自视图显示”可以指如下摄像头采集缓冲器(camera capture buffer)的显示:该摄像头采集缓冲器在客户端设备内显示在该客户端设备上采集的视频。在一个或多个实施例中,定制布局视频通话系统使客户端设备能够在自视图显示器内显示来自其他参与者设备的多个(定制的)视频单元、和/或交互式对象,以创建这样的感知:该多个视频单元(和交互式对象)是直接在该客户端设备上采集的(例如,该视图类似于来自该摄像头采集缓冲器的视频采集)。如本文中所使用的,术语“网格视图显示”是指如下显示:该显示具有多个静态分区,以分别显示来自参与视频通话的不同客户端设备的视频。
如本文中进一步所使用的,术语“交互式对象”是指促进用户交互的图形对象和/或应用程序。具体地,术语“交互式对象”是指这样的图形对象和/或应用程序:该图形对象和/或应用程序是在定制视频通话布局界面内渲染的、并且在接收到交互时更新。例如,定制布局视频通话系统可以使客户端设备能够在定制视频通话界面(该定制视频通话界面具有视频单元或在视频单元周围)内渲染交互式对象以供显示,并且在接收到与交互式对象的用户交互时,该客户端设备可以对该交互式对象进行更新。在一个或多个实例中,交互式对象包括但不限于,图形对象(例如,素材、AR效果)、和/或交互式应用程序(例如,电子绘画应用程序、电子文档应用程序、数字内容流式传输应用程序、视频游戏应用程序、音乐开发应用程序或媒体浏览库应用程序)。
如本文中所使用的,术语“信道”是指用于在客户端设备和/或网络之间传送数据(例如,数据包)的介质或流。在一个或多个实施例中,术语“流式传输信道”(有时称为“视频通话流式传输信道”)是指用于在客户端设备之间传送数据以建立视频通话的介质或流(或流的集合)。在某些实施方式中,流式传输信道包括以下项的各种组合:视频数据信道、音频数据信道、视频处理数据信道和/或共享数据信道(例如,AR数据信道)。
在一些情况下,术语“视频数据信道”可以指用于在客户端设备和/或网络之间传送视频数据的介质或流。实际上,视频数据信道可以实现在客户端设备之间传送视频数据的连续流以显示视频(例如,动态图像帧的集合)。在一些情况下,视频数据信道也可以包括所采集的视频的音频数据。此外,术语“音频数据信道”可以指用于在客户端设备和/或网络之间传送音频数据的介质或流,该介质或流实现了在客户端设备之间传送音频的连续流以播放音频内容(例如,来自客户端设备的传声器的所采集的录音)。
此外,术语“共享数据信道”是指用于在客户端设备和/或网络之间传送共享数据(以用于视频通话)的介质或流。例如,术语“共享数据信道”可以允许在客户端设备之间传送共享数据的连续流(和/或情景传输和/或请求),以传送内容(例如,交互式对象、AR数据、视频单元效果)、与对象或效果的交互(例如,用户交互数据)、和/或对象信息(例如,视频单元视觉属性和移动属性、交互式对象更新、布局数据)。在一些实施方式中,共享数据信道利用如下的数据交换格式,来写入数据、发送数据、接收来自共享数据信道的数据和/或从共享数据信道读取数据:该数据交换格式例如为Java脚本对象表示法(JavaScript ObjectNotation,JSON)、实时协议(real time protocol,RTP)和/或可扩展标记语言(extensiblemarkup language,XML)。
此外,术语“增强现实数据信道”是指用于在客户端设备和/或网络之间传送AR数据(以用于视频通话)的介质或流。例如,术语“增强现实数据信道”可以实现在客户端设备之间传送AR数据的连续流(和/或情景传输和/或请求),以在这些客户端设备之间传送AR内容以及与AR内容的交互(例如,AR元素、AR环境场景、与AR、AR对象向量的交互)。在一些情况下,共享AR视频通话系统利用如下的数据交换格式,来写入AR数据、发送AR数据、接收来自AR数据信道的AR数据和/或从AR数据信道读取AR数据:该数据交换格式例如为Java脚本对象表示法(JSON)、实时协议(RTP)和/或可扩展标记语言(XML)。
此外,如本文中所使用的,术语“增强现实效果”是指如下的一个或多个AR元素:该一个或多个AR元素呈现(或显示)交互式图形动画、可操纵图形动画和/或空间感知图形动画或AR元素。具体地,术语“增强现实效果”可以包括如下的图形动画:该图形动画与视频内所采集的人(或用户)或与视频内所采集的场景(或环境)逼真地交互,使得该图形动画看起来真实地存在于该环境(例如,基于图形的环境或在视频中所采集的环境)内一样。作为一示例,增强现实效果可以包括图形字符、对象(例如,车辆、植物、建筑物)和/或对视频通话内所采集的人的修改(例如,戴上面具、改变参与用户在视频通话中的外观、改变服装、添加图形化配饰、面部交换)。
在一些情况下,AR元素可以包括视觉内容(二维和/或三维),该视觉内容由计算设备(例如,智能手机或头戴式显示器)在真实世界的视频(例如,实时视频馈送)(例如,采集了真实世界环境和/或视频通话中的用户的视频)上显示(或施加)。具体地,AR元素可以包括在如下计算设备上(或计算设备内)显示的图形对象、数字图像、数字视频、文本和/或图形用户界面:该计算设备也正在渲染视频或其他数字媒体。例如,AR元素可以包括图形对象(例如,三维对象和/或二维对象),该图像对象是交互式的、可操纵的、和/或被配置为(例如基于用户交互、移动、点亮、阴影)与基于图形的环境或在计算设备的视频中所采集的环境(或人)逼真地交互。实际上,在一个或多个实施例中,AR元素可以修改视频的前景和/或背景、和/或修改视频的滤镜。
此外,如本文中所使用的,术语“增强现实场景”(有时称为“AR环境”)是指如下的一个或多个AR效果(例如,AR元素):该一个或多个AR效果是交互式的、可操纵的、和/或被配置为彼此逼真地交互和/或与在计算设备上检测到的用户交互逼真地交互。在一些实施例中,增强现实环境场景包括修改和/或描绘如下的图形环境(二维环境和/或三维环境)的一个或多个增强现实元素:该图形环境代替在计算设备的视频中所采集的真实世界环境。作为一示例,共享AR场景视频通话系统可以利用所采集的描绘了参与者的视频,来渲染增强现实环境场景,以将视频通话的一个或多个参与者描绘为作为AR效果处于图形环境中(例如,这些参与者作为空间中、水下、营火处、森林中、海滩处的基于AR的角色)。在一些情况下,共享AR场景视频通话系统还使增强现实环境场景内的增强现实元素能够是交互式的、可操纵的和/或被配置为与多个参与者设备上检测到的用户交互逼真地交互。
在一个或多个实施例中,定制布局视频通话系统可以使客户端设备能够经由视频数据信道发送分割视频帧。如本文中所使用的,术语“分割视频帧”是指视频的视频帧,该视频帧包括视频数据和视频处理数据。例如,术语“分割视频帧”可以指如下修改后的视频帧:该修改后的视频帧在第一部分中显示(或包括)(来自视频的)图像或帧并且在第二部分中显示(或包括)(来自视频的)图像的视频处理数据。例如,分割视频帧可以包括来自视频的作为该分割视频帧的前半部分的帧、以及在该分割视频帧的后半部分上的图像的分割掩模。
此外,如本文中所使用的,术语“视频处理数据信道”是指用于在客户端设备和/或网络之间传送视频处理数据(以用于视频通话)的介质或流。例如,术语“视频处理数据信道”可以实现在客户端设备之间传送视频处理数据的连续流(和/或情景传输和/或请求),以传送来自对单个客户端设备级处所采集的(原始)视频的分析的数据。在一些实施方式中,定制布局视频通话系统利用如下的数据交换格式,来写入视频处理数据、传输视频处理数据、接收来自视频处理数据信道的视频处理数据和/或从视频处理数据信道读取视频处理数据:该数据交换格式例如为Java脚本对象表示法(JSON)、实时协议(RTP)和/或可扩展标记语言(XML)。
同样如本文中所使用的,术语“视频处理数据”是指表示视频的属性的数据。具体地,术语“视频处理数据”可以指表示视频内所描绘的一个或多个对象的属性或特性的数据。例如,视频处理数据可以包括指示了视频内所描绘的一个或多个面部的特征和/或属性的面部追踪(或面部识别)数据(例如,表示所描绘面部的结构的向量和/或点、用于定位所描绘面部的边界框数据、所描绘面部的像素坐标)。此外,视频处理数据可以包括指示了显著对象、背景像素和/或前景像素的分割数据,和/或利用每个像素的二进制(或强度值)来表示视频帧的各个层的掩模数据(例如,以区分或聚焦于帧中所描绘的对象,例如头发、人、面部和/或眼睛)。
此外,视频处理数据可以包括阿尔法(alpha)通道数据,该阿尔法(alpha)通道数据指示了视频帧内所表示的各种颜色通道的透明度。此外,视频处理数据可以包括参与者元数据,该参与者元数据可以对各个参与者进行分类、对各个参与者(例如,使用参与者标识符)、参与者姓名、参与者的状态和/或参与者的数量进行标记。视频处理数据也可以包括视频流的元数据(例如,视频分辨率、视频格式、摄像头焦距、摄像头光圈大小、摄像头传感器大小)。实际上,定制布局视频通话系统可以使客户端设备能够传输指示了视频或视频内所描绘的对象的各个方面和/或特性的视频处理数据。
如本文中所使用的,术语“视频纹理”是指应用于计算机图形对象的图形表面,以将该计算机图形对象(例如,视频单元)与视频叠加。在一个或多个实施例中,术语“视频纹理”是指从视频生成的计算机图形表面,该计算机图形表面将视频覆盖或叠加(即,映射)到基于图形的对象(视频单元、三维对象或场景、静止图像或二维动画或场景)上。在一些实施例中,定制布局视频通话系统使客户端设备能够将视频渲染为视频单元内的视频纹理,使得该视频纹理描绘了叠加在可定制视频单元上的所采集的参与者的视频。
现在将参考附图提供关于定制布局视频通话系统的附加细节。例如,图1示出了示例性系统环境(“环境”)100的示意图,定制布局视频通话系统106可在该环境中实现。如图1所示,该环境100包括一个或多个服务器设备102、网络108和客户端设备110a至110n。
尽管图1的环境100被描绘为具有特定数量的部件,但是环境100可以具有任何数量的附加或替代部件(例如,直接或经由网络108与定制布局视频通话系统106通信的任何数量的服务器设备和/或客户端设备)。类似地,尽管图1示出了一个或多个服务器设备102、网络108、客户端设备110a至110n的特定布置,但也可以是各种另外的布置。
该一个或多个服务器设备102、网络108和客户端设备110a至110n可以直接地或(例如通过下面关于图19和图20更详细论述的网络108)间接地彼此通信耦接。此外,该一个或多个服务器设备102和客户端设备110a至110n可以包括各种计算设备(包括一个或多个如关于图18更详细论述的计算设备)。
如以上所提及的,该环境100包括一个或多个服务器设备102。在一个或多个实施例中,该一个或多个服务器设备102生成、存储、接收和/或发送数字数据,该数字数据包括与用于客户端设备(例如,客户端设备110a至110n)之间的视频通话的视频数据(例如,视频单元、视频)、视频处理数据和/或共享数据(例如,交互式对象数据、AR数据)有关的数字数据。在一些实施例中,该一个或多个服务器设备102包括数据服务器。在一个或多个实施例中,该一个或多个服务器设备102包括通信服务器或网络托管(web-hosting)服务器。
如图1所示,该一个或多个服务器设备102包括网络系统104。具体地,网络系统104可以提供数字平台(例如,社交网络、即时通讯平台、扩展现实环境),该数字平台包括网络系统104的用户可以通过其连接到彼此和/或彼此交互的功能。例如,网络系统104可以登记用户(例如,客户端设备110a至110n中的一个客户端设备的用户)。网络系统104还可以提供用户可通过其连接到合作用户和/或与合作用户交互的特征。例如,网络系统104可以提供消息收发功能、聊天功能和/或视频通话功能,用户可以通过这些功能与一个或多个合作用户通信。网络系统104还可以生成并提供群组和社区,用户可以通过这些群组和社区与合作用户相关联。
在一个或多个实施例中,网络系统104包括社交网络系统,但是在其他实施例中,网络系统104可以包括另一类型的系统,该另一类型的系统包括但不限于电子邮件系统、视频通话系统、搜索引擎系统、电子商务系统、银行系统、虚拟实境系统(metaverse system)、或使用用户账户的任何数量的其他类型系统。例如,在一些实施方式中,网络系统104(经由一个或多个服务器设备102)生成和/或获取用于扩展现实设备(例如,客户端设备110a至110n)的数据。
在网络系统104包括社交网络系统的一个或多个实施例中,网络系统104可以包括用于表示和分析多个用户和概念的社交图谱系统。该社交图谱系统的节点存储器可以存储节点信息,该节点信息包括用户的节点、概念的节点和项目的节点。该社交图谱系统的边存储器可以存储边信息,该边信息包括节点之间的关系和/或发生在社交网络系统内的动作。下面关于图19和图20呈现了关于社交网络系统、社交图谱、边和节点的进一步细节。
此外,如图1所示,该一个或多个服务器设备102包括定制布局视频通话系统106。在一个或多个实施例中,定制布局视频通话系统106在客户端设备之间建立视频通话流式传输信道,以实现这些客户端设备之间的视频通话。此外,在一个或多个实施方式中,定制布局视频通话系统106使得客户端设备能够在视频通话期间渲染这样的定制视频通话布局:所述定制视频通话布局具有用于视频通话参与者的、动态变化和/或动态移动的视频单元。在一些实施方式中,定制布局视频通话系统106还使得客户端设备能够在视频通话期间通过引入如下交互式对象来渲染定制视频通话布局:所述交互式对象是由多个参与客户端设备中的一个或多个参与客户端设备渲染(和共享)的。此外,定制布局视频通话系统106被实现为社交网络系统的一部分,该社交网络系统促进了诸如即时消息传递、视频通话和/或(例如如关于图19和图20更详细地论述的)社交网络帖子等电子通信。
此外,在一个或多个实施例中,环境100包括客户端设备110a至110n。例如,客户端设备110a至110n可以包括如下的计算设备:所述计算设备能够与定制布局视频通话系统106交互,以与一个或多个其他客户端设备进行视频通话(和/或其他电子通信)。实际上,客户端设备110a至110n可以从该客户端设备110a至110n的数码摄像头获取视频,并且还可以渲染具有(如本文中所描述的)动态视频单元和/或交互式对象的定制视频通话布局。在一些实施方式中,客户端设备110a至110n包括以下中的至少一种:智能手机、平板电脑、台式计算机、膝上型计算机、头戴式显示设备、或其他电子设备(包括一个或多个如关于图18更详细地论述的计算设备)。
此外,在一些实施例中,客户端设备110a至110n中的每个客户端设备与(例如如关于图19和图20所描述的)社交网络系统的一个或多个用户账户相关联。在一个或多个实施例中,客户端设备110a至110n包括一个或多个应用程序(例如,视频通话应用程序112a至112n),该一个或多个应用程序能够例如通过发起视频通话、发送用于定制视频通话界面的视频数据、视频处理数据和/或共享数据、和/或接收用于定制视频通话界面的视频数据、视频处理数据和/或共享数据,来与定制布局视频通话系统106交互。此外,视频通话应用程序112a至112n也能够渲染具有(如本文中所描述的)动态视频单元和/或交互式对象的定制视频通话布局。在一些情况下,视频通话应用程序112a至112n包括安装在客户端设备110a至110n上的软件应用程序。然而,在其他情况下,视频通话应用程序112a至112n包括网页(web)浏览器、或对托管在该一个或多个服务器设备102上的软件应用程序进行访问的其他应用程序。
定制布局视频通话系统106可以全部或部分地由环境100的各个元件实现。实际上,尽管图1示出了定制布局视频通话系统106的实现与一个或多个服务器设备102有关,但是定制布局视频通话系统106中的不同部件可以由环境100内的各种设备来实现。例如,定制布局视频通话系统106中的一个或多个(或所有)部件可以由一不同的计算设备(例如,客户端设备110a至110n中的一个客户端设备)、或与该一个或多个服务器设备102分开的服务器来实现。
如以上所提及的,定制布局视频通话系统106可以使客户端设备能够在视频通话期间渲染可定制视频通话界面。例如,图2示出了如下定制布局视频通话系统106:该定制布局视频通话系统使得参与视频通话的客户端设备能够渲染具有多个视频单元的可定制视频通话界面。如图2所示,定制布局视频通话系统106使得客户端设备202能够(例如利用网格视图显示格式)显示针对参与者设备之间的视频通话的视频通话界面204。如图2中进一步所示出的,定制布局视频通话系统106使得客户端设备202能够(从视频通话界面204)渲染定制视频通话界面206。
如图2所示,定制布局视频通话系统106使得客户端设备202能够利用自视图显示格式来渲染定制视频通话界面206,以根据参与者客户端设备所提供的视频数据来渲染视频单元208。例如,如图2所示,定制布局视频通话系统106使得客户端设备202能够在视频通话期间渲染如下定制视频单元208:所述定制的视频单元具有修改后的视觉属性和动态移动(例如,具有弹跳和碰撞效果的圆形)。实际上,定制布局视频通话系统106可以使客户端设备能够渲染具有各种视觉变化和/或各种动态移动行为的定制的视频单元,如下面(例如关于图3、图4和图6A至图7B)更详细地描述的。此外,定制布局视频通话系统106还可以使客户端设备能够在视频通话期间在定制视频通话界面内渲染交互式对象,如下面(例如关于图3、图5和图8至图16)更详细地描述的。
如以上所提及的,定制布局视频通话系统106可以使客户端设备能够在视频通话期间在视频通话界面中渲染如下可定制视频通话界面:所述可定制视频通话界面具有修改后视频单元和/或交互式对象。图3示出了定制布局视频通话系统106在客户端设备之间建立具有可定制视频通话界面的视频通话的流程图。例如,如图3所示,定制布局视频通话系统106可以使客户端设备能够发送各种类型的数据,以在可定制视频通话界面内渲染视频单元。
实际上,如图3所示,在动作302中,定制布局视频通话系统106接收来自客户端设备1的、与客户端设备2进行视频通话的请求(例如,发起视频通话的请求)。然后,如图3中的动作304所示,定制布局视频通话系统106在客户端设备1和客户端设备2之间建立视频通话(例如,该视频通话可以包括视频数据信道、音频数据信道、视频处理数据信道和/或AR数据信道)。
随后,如图3中的动作306所示,客户端设备1经由视频数据信道和音频数据信道向客户端设备2发送第一视频流(例如,客户端设备1上所采集的视频流)。如图3中的动作308进一步所示出的,客户端设备2经由视频数据信道和音频数据信道向客户端设备1发送第二视频流(例如,客户端设备2上所采集的视频流)。实际上,客户端设备1可以渲染第一视频流和第二视频流以促进视频通话。同样地,客户端设备2也可以渲染第一视频流和第二视频流以促进视频通话。
如图3中的动作310进一步所示出的,客户端设备1(例如基于客户端设备1上的、请求了定制视频通话界面的用户交互)发起定制视频通话界面。在一些情况下,客户端设备1可以在视频通话期间发起定制视频通话界面作为本地用户界面(user interface,UI),其中,客户端设备1独立地渲染定制视频通话界面。如图3中的动作312进一步所示出的,客户端设备2发起定制视频通话界面。实际上,在一个或多个实施例中,客户端设备2可以在视频通话期间发起定制视频通话界面作为本地用户界面(UI),其中,客户端设备2独立地渲染单独的定制视频通话界面。
在一个或多个实施方式中,客户端设备利用协调信号(例如,布尔标志、二进制触发器)(以同步方式)初始化定制视频通话界面。例如,一个或多个客户端设备接收(来自其他客户端设备的)协调信号并等待,直到每个客户端设备被指示为准备好对定制视频通话界面进行初始化,以在视频通话中的多个客户端设备上同步地初始化和渲染定制视频通话界面。在接收到来自视频通话中的每个客户端设备的初始化消息(例如,作为协调信号)时,各个客户端设备可以继续利用来自视频通话流式传输信道的所接收的视频数据和其他传输数据来渲染定制视频通话界面。
参考图3,客户端设备1可以使用(来自客户端设备2的)所发送的数据314来渲染定制视频通话界面。如图3所示,客户端设备1可以通过定制布局视频通话系统106所建立的流式传输信道(例如,视频数据信道、音频数据信道、共享数据信道、视频处理数据信道)来接收所发送的数据314。例如,如图3中的动作318所示,客户端设备1可以使用所发送的数据314(例如,视频处理数据)来渲染修改后视频单元。在某些情况下,如图3中的动作318所示,客户端设备1也可以在定制视频通话界面内渲染交互式对象。如图3中的动作320进一步所示出的,客户端设备2也可以(独立地)利用(来自客户端设备1的)经由定制布局视频通话系统106所建立的流式传输信道的所发送的数据316,来渲染修改后视频单元和/或交互式对象。
在一些实施方式中,如图3所示,客户端设备1(在动作310中)和客户端设备2(在动作312中)可以(例如经由共享UI)发起共享定制视频通话界面。具体地,客户端设备1和客户端设备2均在视频通话期间利用所发送的数据来渲染共享的修改后视频单元和/或共享的交互式对象,使得所渲染的界面在各客户端设备之间同步(或共存)。例如,客户端设备可以在视频通话期间渲染相同的修改后视频单元和/或交互式对象(例如,具有同步的更新和视觉属性)。在一些情况下,客户端设备可以在使基于交互的更新(例如,对交互式对象的修改、和/或与AR效果的交互)同步的同时,渲染修改后视频单元和/或交互式对象的随机(或独立)布置。
为了发起共享定制视频通话界面,客户端设备1可以向客户端设备2发送数据(例如,布局数据、视频处理数据、AR数据、交互数据),使得客户端设备2在视频通话期间对客户端设备1上的更新作出响应。此外,客户端设备2可以向客户端设备1发送数据(例如,布局数据、视频处理数据、AR数据、交互数据),使得客户端设备1在视频通话期间对客户端设备2上的更新作出响应。实际上,客户端设备在视频通话期间利用所发送的数据来渲染同步(或共存)的修改后视频单元和/或交互式对象。例如,客户端设备可以发送数据,该数据例如但不限于布局数据(例如,视频单元和交互式对象的视觉属性和布置)、视频处理数据(例如,来自所采集视频的分割数据、面部追踪数据)、AR数据(例如,促进了对AR效果或AR环境的渲染的AR效果信息或AR环境信息)、和/或交互数据(例如,所标识的与视频单元、交互式对象、和/或与定制视频通话界面的用户交互)。
在一个或多个实施例中,定制布局视频通话系统106使得客户端设备能够利用来自参与者设备的视频(和/或视频处理数据)来渲染修改后视频单元。例如,定制布局视频通话系统106可以如以下文件所描述的那样使客户端设备能够利用视频(例如经由修改和/或视频纹理渲染)来渲染修改后视频单元(例如,具有修改后的视觉属性和/或动态移动):Benjamin Blackburne等人(于2022年5月5日提交)的“Generating Shared AugmentedReality Scenes Utilizing Video Textures from Video Streams of Video CallParticipants”的第17/662,197号美国专利申请(下文称为“Blackburne”),上述申请的内容通过引用全部结合于此。
此外,在一个或多个实施方式中,定制布局视频通话系统106使得客户端设备能够利用来自参与者设备的各种所发送的数据,来更新定制视频通话界面内的视频单元和/或交互式对象。例如,定制布局视频通话系统106可以如以下文件所描述的那样使客户端设备能够发送和/或接收数据(例如,交互数据、布局数据、效果数据),以渲染共享视频单元、共享交互式对象、和/或其他共享效果(例如AR效果):Jonathan Michael Sherman等人(于2022年2月9日提交)的“Utilizing Augmented Reality Data Channel to Enable SharedAugmented Reality Video Calls”的第17/650,484号美国专利申请(下文称为“Sherman”),上述申请的内容通过引用全部结合于此。
如以上所提及的,定制布局视频通话系统106使得客户端设备能够利用各种流式传输信道发送数据,以渲染具有修改后视频单元和/或交互式对象的共享(或本地化)定制视频通话界面。例如,定制布局视频通话系统106可以使得客户端设备能够经由单独的流式传输信道接收视频数据和其他数据。在一些实例中,一个或多个客户端设备在视频数据信道内发送视频数据(例如,以发送原始视频流和/或高分辨率视频流),同时经由数据信道单独地发送其他数据(例如,视频处理数据、交互数据、共享数据)。例如,一个或多个客户端设备可以(经由单独的视频通话流式传输信道)接收视频数据和其他数据,并利用这两组数据在定制的视频通话界面(该定制的视频通话界面具有修改后视频单元和/或交互式对象)内渲染视频通话的参与者的视频。
为了说明,在一个或多个实施例中,csv(字符分隔值)在视频通话期间建立并利用了如下数据信道:该数据信道促进了附加数据的实时传送。例如,定制布局视频通话系统106可以在视频通话期间建立如下数据信道:该数据信道促进了(例如除视频和音频数据之外的)附加数据在视频通话期间的发送(和接收),以直接在采集客户端设备上共享从视频或用户交互中确定(或识别)的视频处理数据和/或交互式对象数据。
在一些实施例中,定制布局视频通话系统106建立了数据信道,以利用一种或多种数据交换格式来促进附加数据在该数据信道内的传输。例如,定制布局视频通话系统106可以使数据信道能够以如下格式发送数据:所述格式例如但不限于Java脚本对象表示法(JSON)、纯文本数据和/或可扩展标记语言(XML)。此外,在一个或多个实施例中,定制布局视频通话系统106利用如下端到端网络协议建立了数据信道:该端到端网络协议促进了实时数据的流式传输以在多个客户端设备之间流式传输数据。例如,定制布局视频通话系统106可以使数据信道能够经由如下端到端网络协议来发送数据:所述端到端网络协议例如但不限于实时传输协议(Real-Time Transport Protocol,RTP)、实时流式传输协议(realtime streaming protocol,RTSP)、实时数据传输(real data transport,RDT)、和/或另一种数据同步服务。
在一些实施例中,定制布局视频通话系统106使得客户端设备能够经由数据信道利用JSON格式的消息广播来传送数据。例如,定制布局视频通话系统106可以在视频通话期间建立如下数据消息信道作为数据信道:该数据消息信道能够发送JSON格式的消息。实际上,定制布局视频通话系统106可以在视频通话期间建立如下数据消息信道:该数据消息信道在一个或多个活动的定制视频通话界面期间持续存在。此外,定制布局视频通话系统106可以将数据消息信道建立为所谓的双向通信数据信道,该双向通信数据信道促进对发送数据的请求以及对接收数据的请求。例如,定制布局视频通话系统106可以实现如下数据消息信道:该数据消息信道能够传送基于文本或基于数据的转换的数据(例如,面部追踪坐标、分割掩膜像素值、像素颜色值、参与者元数据、用户交互标志、用户交互位置、交互的效果识别符)。
在一些情况下,定制布局视频通话系统106可以利用JSON格式的消息作为JSON对象,该JSON对象包括一个或多个可访问值。具体地,该JSON对象可以包括一个或多个变量和/或数据引用(例如,经由布尔值(Boolean)、字符串、数字),该一个或多个变量和/或数据引用可以经由对特定变量的调用而被访问。例如,定制布局视频通话系统106可以促进对JSON对象的发送和接收,这些JSON对象被访问以确定参与者设备所提供的数据的信息。
在一个或多个实施例中,定制布局视频通话系统106可以利用视频或图像通信信道作为数据信道。例如,定制布局视频通话系统106可以建立促进视频、视频帧和/或图像的传送的数据信道以作为数据信道(例如,以将各种数据(例如交互数据、布局数据和/或视频处理数据)表示为视频或图像)。此外,定制布局视频通话系统106可以建立利用实时同步数据信道(例如,同步信道)的数据信道。在一些情况下,定制布局视频通话系统106可以建立利用异步数据信道的数据信道,该异步数据信道向客户端设备广播数据,而不考虑这些客户端设备之间的同步。
此外,定制布局视频通话系统106可以向一个或多个客户端设备提供应用程序编程接口(application programming interface,API),以在视频通话期间彼此传送数据、以及与定制布局视频通话系统106传送数据。为了说明,定制布局视频通话系统106可以提供API,该API包括通过由定制布局视频通话系统106建立的数据信道而对如下项进行调用:对传送视频和交互的请求、传送视频和交互、和/或通知。实际上,根据本文中的一个或多个实施例,客户端设备(和/或定制布局视频通话系统106)可以在视频通话期间利用API传送各种数据,以渲染定制视频通话界面。
在一些情况下,客户端设备包括用于由定制布局视频通话系统106建立的视频通话流式传输信道的客户端设备层。具体地,客户端设备可以利用客户端设备层(例如,在API和/或网络协议内的层),该客户端设备层控制经由数据信道对数据的发送和/或接收。例如,客户端设备可以利用客户端设备层来接收和过滤如下数据:该数据是从参与视频通话的一个或多个客户端设备经由数据信道而广播(或发送)的。具体地,在一个或多个实施例中,客户端设备经由数据信道向参与(同一)视频通话的每个客户端设备发送数据。此外,客户端设备可以利用客户端设备层来识别所发送的数据,并可以过滤该数据(例如以利用或忽略该数据)。例如,客户端设备可以利用客户端设备层,基于与数据对应的参与者标识符来过滤该数据(如下面所描述的),以确定哪些参与者包括在视频单元内。
此外,在一个或多个实施例中,定制布局视频通话系统106利用流式传输信道(如Blackburne和/或Sherman中所描述的)来建立数据信道。例如,定制布局视频通话系统106可以建立视频处理数据信道作为数据信道(如Sherman所描述的)。此外,定制布局视频通话系统106可以建立AR数据信道(或共享数据信道)作为数据信道(如Blackburne所描述的)。
如上所提及的,定制布局视频通话系统106可以使客户端设备能够在定制视频通话界面内渲染视频单元。实际上,在一个或多个实施例中,定制布局视频通话系统106使得客户端设备能够在视频通话期间在定制视频通话界面内渲染可定制视频单元。例如,图4示出了如下定制布局视频通话系统106:该定制布局视频通话系统106使得客户端设备能够在定制视频通话界面内渲染可定制视频单元。
如图4所示,定制布局视频通话系统106通过视频通话流式传输信道404(例如,其具有视频数据信道406、音频数据信道408、视频处理数据信道410和共享数据信道412)在一个或多个视频通话参与者设备402和客户端设备414之间建立视频通话。此外,如图4所示,客户端设备414接收来自该一个或多个视频通话参与者设备402的数据,并在定制视频通话界面416内渲染视频单元418。如图4所示,定制布局视频通话系统106使得客户端设备414能够在自视图显示格式内渲染修改后视频单元418,所述修改后视频单元包括修改后的视觉属性和动态运动(例如,包括弹跳效果的圆形视频单元)。尽管图4示出了客户端设备渲染具有特定视觉属性和动态移动的修改后视频单元,但是定制布局视频通话系统106可以使该客户端设备能够渲染具有各种视觉属性和/或动态移动特征的视频单元(如下面(例如关于图6A至图6B、以及图7A至图7B)所描述的)。
在一个或多个实施例中,定制布局视频通话系统106使得客户端设备能够在视频通话期间接收来自参与者设备的视频数据,以渲染修改后(或定制)视频单元。例如,定制布局视频通话系统106可以使客户端设备能够修改视频单元的各种视觉属性。实际上,定制布局视频通话系统106可以使客户端设备能够修改视觉属性以在定制视频通话界面内渲染具有修改后的(或改变后的)视觉特征的视频单元。
在一些情况下,定制布局视频通话系统106使得客户端设备能够修改视频单元的形状(作为视觉属性)以渲染定制的视频单元。例如,客户端设备可以渲染各种形状的视频单元,例如但不限于圆形视频单元、三角形视频单元、星形视频单元、正方形视频单元和/或不规则形状视频单元。此外,定制布局视频通话系统106可以使客户端设备能够修改视频单元,使得各视频单元具有外观不相似的形状(例如,一个视频单元为圆形,而另一个视频单元为三角形)。
此外,定制布局视频通话系统106可以使客户端设备能够修改视频单元的位置(作为视觉属性)以渲染定制的视频单元。例如,客户端设备可以以各种空间位置、角度和/或深度渲染视频单元。为了说明,客户端设备可以在定制视频通话界面中的各种空间位置(例如使用坐标、有序排列、区域)渲染视频单元。此外,客户端设备可以以各种角度(例如旋转45度、旋转180度)渲染视频单元。此外,定制布局视频通话系统106可以使客户端设备能够渲染具有各种深度的视频单元(例如,修改z坐标值以使其他视频单元向前和向后移动、堆叠或重叠视频单元)。
此外,定制布局视频通话系统106可以使客户端设备能够修改视频单元的尺寸(作为视觉属性)以渲染定制的视频单元。例如,客户端设备可以以各种尺寸(例如,按照像素半径、长度和/或宽度划分的各种尺寸)来渲染视频单元。在一些情况下,客户端设备可以渲染具有不同尺寸的视频单元,使得各视频单元(在视频通话中)具有外观不相似的尺寸(例如,较大的视频单元和较小的视频单元)。
此外,如上所提及的,定制布局视频通话系统106可以使客户端设备能够渲染动态移动的视频单元。具体地,客户端设备可以动态地移动视频单元,使得该视频单元模拟真实的移动和/或动画化的移动。例如,客户端设备可以将视频单元渲染为具有动态移动,该动态移动例如但不限于弹跳运动、下落运动、加速运动、碰撞运动、滑动运动、滚动运动、收缩运动和/或扩展运动。
在一些情况下,定制布局视频通话系统106可以使客户端设备能够通过对视频单元应用(或修改)动态移动的移动属性,来动态地移动该视频单元。例如,客户端设备可以应用或修改如下移动属性:所述移动属性对应于视频单元上的图形对象的各种移动特征。在一些实施方式中,定制布局视频通话系统106使得客户端设备能够应用或修改基于计算机图形的物理引擎所利用的移动属性,以模仿图形对象(例如,视频单元)的移动(和其他特征)。
例如,客户端设备可以应用或修改如下移动属性:该移动属性例如为重力值(例如,与视频单元相关联的加速度值以模拟落在视频单元上的物理效果)、质量值(例如,为视频单元分配质量的值,以使得视频单元被感知为具有重量或密度)、和/或摩擦力值(例如,这样的值或系数:所述值或系数用于修改视频单元的表面或边界上的模拟摩擦量)。在一些情况下,客户端设备可以在视频通话期间应用或修改视频单元(例如,碰撞对象)的碰撞边界,使得视频单元帧或边界检测与其他图形对象(例如,其他AR效果、视频单元或视频通话界面的边界)的碰撞或交互。此外,客户端设备可以应用或修改视频单元的弹力值,使得视频单元帧以各种速度、持续时间和/或长度收缩或扩展。
在一个或多个实施例中,定制布局视频通话系统106可以使客户端设备能够修改(例如在客户端设备上采集到的、和/或从参与者设备接收到的)视频,以适配修改后视频单元。例如,客户端设备可以通过调整视频的尺寸来修改视频,以适配修改后视频单元。具体地,在一些情况下,客户端设备可以裁剪视频、调整视频的尺寸(例如,重新缩放)、和/或修改视频的形状,以适配修改后视频单元(例如,修改后的具有不同的形状、尺寸和/或位置的视频单元)。在一些情况下,定制布局视频通话系统106可以使客户端设备能够(例如使用面部追踪数据)追踪视频内所描绘的面部,以在保持所描绘的面部居中的同时调整该视频的尺寸和/或裁剪该视频。
在一些情况下,定制布局视频通话系统106可以使客户端设备能够利用(例如在客户端设备上采集到的、和/或从参与者设备接收到的)视频处理数据,来将视频适配于修改后视频单元内。例如,定制布局视频通话系统106可以使客户端设备能够利用视频的视频处理数据,来渲染来自该视频的视频纹理。然后,该客户端设备可以将该视频纹理适配于修改后视频单元内。在一些情况下,定制布局视频通话系统106使得客户端设备能够利用从其他参与者设备经由分割视频帧和/或单独的视频处理数据信道提供的视频处理数据(例如,面部追踪数据、分割数据),如Blackburne中所描述的。
在一些实施方式中,定制布局视频通话系统106使得客户端设备能够在视频通话期间与其他参与者设备共享视频单元的视觉属性和/或视频单元的动态移动。具体地,客户端设备可以共享视频单元的视觉属性和/或视频单元的动态移动,使得每个参与者设备在视频通话期间(在本地)渲染具有同步的(或类似的)视频单元修改的共享定制视频通话界面(例如,以在各设备之间共享视觉改变和移动)。在一些情况下,定制布局视频通话系统106可以使客户端设备能够经由共享数据信道(例如,如Sherman所描述的数据信道)与参与者客户端设备共享视频单元视觉属性和/或动态移动(例如,经由移动属性)。
此外,定制布局视频通话系统106可以使客户端设备能够在自视图显示内渲染多个参与者的修改后视频单元。具体地,客户端设备可以在修改后视频单元内渲染和呈现视频,以在类似于所有视频均是由该客户端设备采集到的界面中(例如而不是在网格视图显示中)呈现多个采集到的视频。例如,并非以网格视图呈现对来自其他客户端设备的视频采集的渲染,而是经由摄像头采集缓冲器(或对视频通话的客户端设备上的视频进行处理的处理引擎)(例如该处理类似于对客户端设备上采集到的视频的处理)来接收视频流。然后,客户端设备可以利用这些视频的相应视频处理数据(或视频修改)以自视图显示格式来渲染这些视频。
在一些情况下,定制布局视频通话系统106可以使客户端设备能够针对(例如,来自单个客户端设备的)单个视频数据流中所识别的多个参与者渲染修改后视频单元。例如,客户端设备可以在视频通话期间采集多个参与者(例如,使用同一客户端设备进行视频通话的两个或更多人)。定制布局视频通话系统106可以使客户端设备能够针对多个参与者中的每个参与者渲染修改后视频单元(例如,将每个参与者的视频单独地渲染为单独的修改后视频单元)。
例如,客户端设备可以确定在视频流中采集到了多于一位的参与者(例如,人)。然后,客户端设备可以将视频流的第一部分渲染为用于描绘第一参与者的第一修改后视频单元。此外,客户端设备可以将视频流的第二部分渲染为用于描绘第二参与者的第二修改后视频单元。实际上,定制布局视频通话系统106可以使客户端设备能够针对出现在单个视频流中的各种数量的参与者渲染视频单元。
此外,客户端设备可以将所描绘的每个参与者的视频数据(和/或视频处理数据)发送到视频通话中的其他客户端设备。在一些实例中,客户端设备在视频通话期间为每个参与者生成单独的视频流(例如,裁剪视频以聚焦于特定参与者)和/或对应的视频处理数据,以用于发送到其他客户端设备。一经接收到指示了多个参与者的视频处理数据,接收客户端设备可以利用接收到的视频数据(和/或视频处理数据),将每个参与者的视频单独地渲染为单独的修改后视频单元(例如,如Blackburne中所描述的)。
在一些实施方式中,客户端设备可以将每个所识别的参与者(或参与者设备)分配给视频单元时隙。在一个或多个实施例中,定制布局视频通话系统106使得客户端设备(以及视频通话中的其他客户端设备)能够包括可分配给各个参与者(或参与者设备)的N个视频单元时隙。此外,客户端设备在视频通话期间可以保持一个或多个空(开放)视频单元时隙,直到检测到新的参与者,并且可以将新检测到的参与者分配给开放的视频单元时隙。在一些情况下,当在视频通话期间检测到新的参与者时,客户端设备生成新的视频单元时隙。在一个或多个实施例中,客户端设备利用分配给参与者的参与者标识符(例如,参与者姓名、用户ID、标签或其他参与者元数据)来识别和追踪视频单元时隙的参与者。
此外,在一个或多个实施例中,当参与者退出视频通话时,客户端设备移除视频单元时隙或将空值分配给视频单元时隙。在一些情况下,客户端设备可以在视频通话期间将空的视频单元时隙重新分配给检测到的新的参与者、或者当参与者重新进入视频通话时的同一参与者。实际上,定制布局视频通话系统106可以使客户端设备(在视频通话期间)能够为各种数量的参与者渲染修改后视频单元。
如上所提及的,定制布局视频通话系统106可以使客户端设备能够在定制视频通话界面内渲染交互式对象。在一个或多个实施例中,定制布局视频通话系统106使得客户端设备在具有修改后视频单元的定制视频通话界面中渲染交互式对象。例如,图5示出了如下定制布局视频通话系统106:该定制布局视频通话系统106使得客户端设备能够在具有修改后视频单元的定制视频通话界面内渲染交互式对象。
如图5所示,定制布局视频通话系统106通过视频通话流式传输信道504(例如,具有视频数据信道506、音频数据信道508、视频处理数据信道510和共享数据信道512)在一个或多个视频通话参与者设备502和客户端设备514之间建立视频通话。此外,如图5所示,客户端设备514接收来自该一个或多个视频通话参与者设备502的数据,并在定制视频通话界面516内渲染视频单元520。此外,如图5所示,客户端设备514还在定制视频通话界面516内渲染交互式对象518(例如,电子绘图应用程序)。如图5所示,该一个或多个客户端设备在视频通话期间经由用户交互接收与交互式对象518的用户交互,并对交互式对象518进行更新(例如,在定制视频通话界面516中所渲染的电子画布内绘图)。尽管图5示出了客户端设备渲染电子绘图应用程序作为交互式对象,但是定制布局视频通话系统106可以使该客户端设备能够渲染各种交互式对象,如下面(例如关于图8至图16)所描述的。
在一个或多个实施例中,定制布局视频通话系统106使得客户端设备能够渲染交互式对象、并且能够对该交互式对象进行更新。在一些情况下,客户端设备还(例如经由共享数据信道)发送(和/或接收)来自其他参与者设备的、与交互式对象的用户交互和/或对交互式对象的改变。实际上,定制布局视频通话系统106可以使多个客户端设备能够在视频通话期间渲染和共享同步的交互式对象,使得视频通话中的各参与者用户可以与同一交互式对象交互。
此外,定制布局视频通话系统106使得客户端设备能够渲染具有效果的交互式对象。在一个或多个实例中,客户端设备还(例如经由共享数据信道)发送(和/或接收)来自其他参与者设备的交互式对象的效果。例如,定制布局视频通话系统106可以使多个客户端设备能够在视频通话期间渲染和共享交互式对象的同步(或相同)效果(例如,经由共享数据信道的AR效果和/或其他效果)。实际上,在一个或多个实施例中,定制布局视频通话系统106可以使客户端设备能够经由共享数据信道发送和接收交互数据和交互式对象更新,如Sherman中所描述的。
在一些实施例中,定制布局视频通话系统106在多次视频通话之间在各参与者(或参与者的客户端设备)之间,保持持续的交互式对象。例如,定制布局视频通话系统106可以在这些参与者设备之间保存(或记住)对交互式对象(例如,绘图、绘画、音乐创作、视频时间戳、视频游戏进度)的修改或更新。随后,一经经由参与者设备接收或发起与同一参与者设备的视频通话,定制布局视频通话系统106可以发起具有定制视频通话界面的视频通话,以包括来自所保存的数据(例如,来自历史视频通话)的、交互式对象的各种效果以及对交互式对象的各种修改。
如以上所提及的,定制布局视频通话系统106可以使客户端设备能够在接收到如下用户交互时,在定制视频通话界面中渲染视频单元:该用户交互请求了定制视频通话界面。在一些情况下,客户端设备显示了如下菜单界面:该菜单界面具有用于视频通话界面定制的可选选项。例如,图6A和图6B示出了如下定制布局视频通话系统106:该定制布局视频通话系统106使得客户端设备能够接收请求定制视频通话界面的用户交互、并且能够渲染具有修改后视频单元的定制视频通话界面。
如图6A所示,定制布局视频通话系统106在客户端设备602和一个或多个其他客户端设备之间建立视频通话。如图6A所示,客户端设备602在网格视图显示格式604内渲染视频通话参与者的视频。此外,如图6A所示,客户端设备602接收与可选元素606的用户交互,并显示定制布局菜单界面608。客户端设备602在定制布局菜单界面608内接收与如下可选元素610的用户交互:该可选元素指示了对定制视频通话界面布局(例如,“浮动(floating)”)的选择。
随后,如从图6A到图6B的转换所示,客户端设备602(响应于对可选元素610的选择)渲染具有修改后视频单元614a的定制视频通话界面612。实际上,如图6B所示,修改后视频单元614a包括用于改变视频单元的形状、尺寸和位置的修改后视觉属性。此外,如图6B所示,客户端设备602还修改了视频通话的其他参与者的其他视频单元。此外,如图6B所示,一经接收到附加用户交互(例如,滑动交互、触摸交互、拖动交互、设备摇动),客户端设备602进一步(从视频单元614a)修改了视频单元614b。实际上,如图6B所示,客户端设备602将视频单元614b修改为与视频单元614a相比具有不同的尺寸和位置。如图6B中进一步所示出的,客户端设备602也修改了视频通话的其他参与者的其他视频单元(例如,作为同一用户交互的一部分、和/或作为各单独用户交互的一部分)。
此外,如图6B所示,客户端设备提供了用于在视频通话内引入效果的可选元素618。例如,客户端设备可以在视频通话内检测与可选元素618的用户交互,并且作为响应,在视频通话用户界面内提供供显示一个或多个可选选项,以发起AR效果、交互式对象和/或其他效果。此外,如图6B所示,客户端设备还提供了用于修改定制视频通话界面612的背景的可选元素616。实际上,客户端设备可以检测与可选元素616的用户交互,并且作为响应,修改定制视频通话界面612的背景颜色或其他视觉属性。
如图6A和图6B所示,客户端设备可以接收与视频单元和/或定制视频通话界面的用户交互,以对视频单元进行进一步修改(或更新)。例如,定制布局视频通话系统106可以使客户端设备能够利用(例如经由触摸屏、鼠标、键盘、控制器)与用户界面的各种用户交互、和/或使用设备移动的用户交互。例如,定制布局视频通话系统106可以使客户端设备能够利用各种用户交互,这些用户交互例如但不限于触摸、拖动、轻敲、滑动、点击、设备摇动和/或设备转动。
此外,如以上所提及的,定制布局视频通话系统106可以使客户端设备能够在定制视频通话界面内动态地移动视频单元。实际上,客户端设备可以动态地移动视频单元以模拟运动效果,这些运动效果例如为弹跳、碰撞、滑动、下落和/或拉伸。例如,图7A和图7B示出了如下定制布局视频通话系统106:该定制布局视频通话系统106使得客户端设备能够在定制视频通话界面内动态地移动视频单元。
如图7A所示,客户端设备702在定制视频通话界面704中渲染了(例如具有修改后的形状的)视频单元706a。此外,客户端设备702渲染了具有一个或多个(如上所述的)移动属性的视频单元706a,使得视频单元706a与其他视频单元碰撞、由于重力而下落以及弹跳。为了说明,客户端设备接收了如下用户交互(例如,拖动并保持交互):该用户交互将视频单元706b从其他视频单元(例如向上)移开。然后,如从图7A到图7B的转换所示,一经接收到用于释放视频单元706c(例如,释放该拖动并保持交互)的用户交互,客户端设备702对如下视频单元706c进行渲染:该视频单元706c朝着其他视频单元动态地向下移动、并在其它视频单元上弹跳(例如,下降和弹跳)。
如前所提及的,定制布局视频通话系统106可以使客户端设备能够接收并利用各种交互,以在定制视频通话界面内动态地移动视频单元。例如,客户端设备可以接收并利用触摸、拖动、轻敲、点击和/或滑动交互来动态地移动视频单元。此外,客户端设备也可以接收并利用手机移动(例如,摇动、拖动、转动、翻转、轻弹)来动态地移动视频单元。
尽管图6A至图6B和图7A至图7B示出了特定的视频单元形状(视觉属性)、和/或特定的动态移动(例如,经由移动属性),但是定制布局视频通话系统106可以使客户端设备能够渲染具有各种视频单元视觉属性和各种视频单元动态移动的视频单元。
同样如以上所提及的,定制布局视频通话系统106可以使客户端设备能够在视频通话期间通过渲染交互式对象来渲染定制视频通话界面。例如,客户端设备在定制视频通话界面内除了渲染修改后视频单元之外,还可以渲染交互式对象。此外,客户端设备可以在定制视频通话界面内引入各种交互式对象,例如,图形素材和/或交互式应用程序。在一些实施方式中,定制布局视频通话系统106使得参与视频通话的客户端设备能够在多个客户端设备之间共享交互式对象(如上面所描述的)。
在一些实施方式中,定制布局视频通话系统106使得客户端设备能够在视频通话期间渲染图形素材作为交互式对象。例如,图8示出了如下定制布局视频通话系统106:该定制布局视频通话系统106使得客户端设备能够在视频通话期间渲染素材作为交互式对象。实际上,如图8所示,定制布局视频通话系统106在客户端设备802和一个或多个其他参与者客户端设备之间建立了视频通话。如图8中进一步所示出的,客户端设备802在定制视频通话界面804内渲染了素材806a(例如,粘液素材)。客户端设备802除了渲染素材806A之外,还渲染了视频通话的参与者的视频单元。
此外,在一个或多个实施例中,定制布局视频通话系统106使得客户端设备能够基于与所渲染的素材的用户交互,来渲染动态移动(或视觉改变)的素材。例如,如图8所示,一经检测到客户端设备802内对素材806a的用户交互(例如,触摸交互),客户端设备802就渲染动态移动的修改后的素材806b,以在该修改后的素材806b中形成凹坑。实际上,客户端设备可以基于在参与视频通话的一个或多个客户端设备上检测到的用户交互来渲染素材806b,以在视觉上移动和改变。
在一些实施例中,客户端设备在定制视频通话界面的各个部分中渲染图形素材。例如,客户端设备可以将图形素材渲染为定制视频通话界面的整个背景。在一些实施例中,客户端设备可以在定制视频通话界面的一个或多个部分中渲染图形素材。
此外,一经检测到与素材的用户交互,客户端设备可以渲染该素材以模拟各种动态移动。例如,客户端设备可以渲染和动态地移动素材以模拟移动行为,这些移动行为例如但不限于素材形成凹坑、素材弹跳、素材拉伸、和/或素材撕裂。此外,客户端设备可以基于各种检测到的用户交互,来修改素材的视觉属性和/或动态地移动素材,这些用户交互例如但不限于触摸交互、拖动交互、轻敲交互、滑动交互、点击交互、设备摇动、和/或设备转动。
此外,客户端设备可以修改所渲染的素材的颜色和/或样式。例如,如图8所示,客户端设备提供了用于修改所渲染的素材的颜色和/或样式的可选元素808,以供显示。实际上,一经检测到与可选元素808的交互,客户端设备可以在定制视频通话界面804内以不同的颜色或不同的样式来渲染所显示的素材、和/或渲染一不同的素材。
尽管本文中的一个或多个实施例示出了客户端设备渲染基于粘液的素材,但是定制布局视频通话系统106可以使该客户端设备能够在视频通话期间渲染各种素材。例如,客户端设备可以渲染多种素材,这些素材例如但不限于布基素材、橡胶基素材、水基素材和/或沙基素材。
此外,定制布局视频通话系统106可以使客户端设备能够渲染具有交互式应用程序(作为交互式对象)的定制视频通话界面。例如,定制布局视频通话系统106可以使客户端设备能够在视频通话期间渲染促进创建、观看和/或播放内容的各种交互式应用程序。作为示例,图9A至16示出了由客户端设备在视频通话期间渲染的各种交互式应用程序。
例如,图9A至图9C示出了如下定制布局视频通话系统106:该定制布局视频通话系统在多个参与者用户之间的视频通话期间启用了电子绘图(或绘画)应用程序(例如,画布应用程序)。如图9A所示,定制布局视频通话系统106使得客户端设备902能够在视频通话界面904(例如,网格视图显示格式)内建立视频通话。一经接收到请求发起具有电子绘图应用程序的定制视频通话界面的用户交互,客户端设备902就渲染具有修改后视频单元908、914、以及电子绘图区域912(例如,电子画布)的定制视频通话界面906。
如从图9A到图9B的转换所示,定制布局视频通话系统106可以使客户端设备能够在电子绘图区域912中接收来自视频通话中的参与者用户操作(具有各种绘图功能的)参与者设备的用户交互,以(例如,使用第一绘图)对电子绘图区域912进行更新。如图9B中进一步所示出的,客户端设备902还动态地移动了视频单元908、914,以与电子绘图区域912相邻,从而使得绘图不受阻碍。此外,客户端设备可以在电子绘图应用程序内提供各种功能,这些功能例如但不限于各种绘图形状、铅笔工具、钢笔工具、绘画工具、填充工具、裁剪工具、图像插入工具、视频插入工具、贴纸插入工具、文本插入工具和/或色彩应用工具。
另外,图9B还示出了如下客户端设备902:该客户端设备902在定制视频通话界面906内将视频单元908移动到附加电子绘图区域916。具体地,客户端设备(和其他参与者客户端设备)可以接收如下用户交互:所述用户交互将参与者用户导航到交互式对象(例如,电子画布)的其他部分。一经接收到导航至另一部分的用户交互,客户端设备902在该导航的位置处渲染对应于该客户端设备902的视频单元(例如,视频单元908)。此外,客户端设备902还可以接收来自其他参与者客户端设备的、其他参与者用户的交互更新(如上面所描述的),并利用该数据在该其他参与者用户的导航的位置处渲染对应于该其他参与者客户端设备的视频单元(例如,视频单元914)。
此外,如从图9B到图9C的转换所示,定制布局视频通话系统106可以使客户端设备能够渲染如下视频单元908:该视频单元908移动至定制视频通话界面906的电子画布内的第三电子画布区域918(参与者用户(例如,对应于视频单元914)位于该第三电子画布区域),并与该电子画布交互。实际上,客户端设备902还在视频通话期间检测来自一个或多个参与者客户端设备的附加用户交互,以在定制视频通话界面906内渲染附加内容920。
尽管本文中的一个或多个实施例示出了客户端设备促进了定制视频通话界面内的绘图应用程序,但是定制布局视频通话系统106可以使客户端设备能够渲染用于各种内容创建应用程序的交互式对象。例如,定制布局视频通话系统106可以使客户端设备能够在视频通话期间渲染交互式对象,以进行绘画。此外,定制布局视频通话系统106可以使客户端设备能够在视频通话期间渲染交互式对象,以(例如经由图像编辑应用程序和/或视频编辑应用程序)对图像和/或视频进行编辑。此外,定制布局视频通话系统106可以使客户端设备能够渲染交互式对象,以读取和/或编辑电子文档(例如,文本文档、幻灯片文档、电子表格文档)。
作为定制布局视频通话系统106使得客户端设备能够渲染交互式对象以用于内容创建的另一示例,图10示出了客户端设备在视频通话期间渲染音乐开发应用程序。例如,如图10所示,客户端设备1002在视频通话期间渲染了如下定制视频通话界面1004:该定制视频通话界面1004除了具有视频单元1010之外,还具有活动的声音工具(sound instrument)1006和非活动的声音工具1008a。在一个或多个实施例中,并且如图10所示,客户端设备1002检测与非活动的声音工具1008a的用户交互,并启用该声音工具(作为活动的声音工具1008b)。实际上,定制布局视频通话系统106可以使客户端设备能够(经由参与视频通话的客户端设备)接收来自用户的交互,以经由可选的工具选项来创建和/或修改音乐,从而创建不同的声音。
此外,定制布局视频通话系统106可以使客户端设备能够渲染具有(作为交互式对象的)媒体流式传输内容的定制视频通话界面。例如,图11示出了如下定制布局视频通话系统106:该定制布局视频通话系统106使得客户端设备能够在视频通话期间渲染具有媒体流式传输内容的定制视频通话界面。如图11所示,客户端设备1102可以在包括视频单元1110的视频通话期间,渲染交互式对象1104(例如,视频流播放器)。实际上,定制布局视频通话系统106可以使参与者客户端设备能够渲染被播放和观看的媒体内容流,同时还在对应于视频单元1110的参与者用户之间进行视频通话。尽管图11示出了作为媒体流式传输内容的视频流,但是客户端设备可以渲染各种流式传输内容,例如但不限于音乐流、直播流、幻灯片放映演示、和/或视频游戏流。
此外,如图11所示,客户端设备1102渲染了可选元素1106,以与交互式对象1104交互。如图11所示,客户端设备1102渲染了可选元素1106、1108,以修改视频流(例如,交互式对象1104)的播放。例如,客户端设备可以检测用户交互,以暂停、停止、回溯和/或追踪视频通话期间所显示的视频流。实际上,在一个或多个实施例中,与可选元素1106、1108的交互在本地(在客户端设备1102上)以及(例如利用如上所述的共享数据信道)在视频通话的其他参与者客户端设备上对视频流的播放进行修改。
在一些实施例中,定制布局视频通话系统106使得客户端设备能够在视频通话期间(在定制视频通话界面内)渲染媒体库浏览应用程序作为交互式对象。例如,图12A和图12B示出了如下定制布局视频通话系统106:该定制布局视频通话系统106使得客户端设备能够在视频通话期间渲染媒体库浏览应用程序。例如,如图12A所示,定制布局视频通话系统106在客户端设备1202和另一客户端设备之间建立了视频通话。实际上,如图12A所示,客户端设备1202渲染了视频通话界面1204(例如,网格视图显示)。一经检测到(或接收到)访问媒体库的用户交互,客户端设备1202在视频通话期间渲染具有修改后视频单元1206的媒体库浏览应用程序1205。实际上,客户端设备在视频通话期间在媒体库浏览应用程序1205内渲染了可选媒体内容项1208a、1208b。
此外,如从图12A到图12B的转换所示,一经检测到在媒体内容项之间导航的用户交互(例如,来自对应于客户端设备1202的用户、或来自另一客户端设备的参与视频通话的用户),客户端设备1202渲染附加的可选媒体内容项1208c(例如,视频游戏)。尽管图12A和图12B示出了客户端设备1202在视频通话期间渲染媒体库浏览应用程序,但是定制布局视频通话系统106可以使得客户端设备1202能够渲染各种浏览应用程序。例如,定制布局视频通话系统106可以使客户端设备能够渲染浏览应用程序,该浏览应用程序例如但不限于浏览移动应用程序(browsing mobile application)、网络浏览器选项卡(web browsertab)、和/或图像(例如,电子相册)。
在一些实施例中,定制布局视频通话系统106可以使客户端设备能够在视频通话期间渲染用于流式传输音乐的交互式对象。例如,图13A和图13B示出了如下定制布局视频通话系统106:该定制布局视频通话系统106使得客户端设备能够在视频通话期间渲染用于流式传输音乐并且还用于浏览音乐内容的微件作为交互式对象。例如,如图13A所示,定制布局视频通话系统106在定制视频通话界面1312内,在客户端设备1302和另一客户端设备之间建立了视频通话。此外,如图13A所示,客户端设备1302渲染了用于显示和流式传输音乐(例如,“歌曲A”)的微件1306(作为交互式对象)。
此外,如图13A所示,一经检测到与微件1306的(例如由客户端设备1302的用户做出的、和/或参与者用户在参与者客户端设备上做出的)用户交互,客户端设备1302在具有视频单元1310的定制视频通话界面1304中渲染用于浏览音乐的交互式对象。如图13A所示,客户端设备1302在定制视频通话界面1304内渲染了可选媒体内容项1308a、1308b。此外,如图13A所示,客户端设备1302还在视频通话期间渲染了音乐流的播放选项1314。
此外,如从图13A到图13B的转换所示,一经检测到在各媒体内容项之间导航的用户交互(例如,来自对应于客户端设备1302的用户、或来自另一客户端设备的参与视频通话的用户),客户端设备1302在可选媒体内容项1308a和1308b之间进行导航。此外,如图13B所示,一经检测到对可选媒体内容项1308b的选择,客户端设备1302渲染具有用于新选择的音乐流的微件1316的定制视频通话界面1312。
尽管图13A和图13B示出了客户端设备渲染用于音乐流的微件,但是定制布局视频通话系统106可以使客户端设备能够在定制视频通话界面内渲染用于各种功能的微件。例如,客户端设备可以在视频通话期间渲染用于显示各种应用程序的微件,这些应用程序例如但不限于天气应用程序、股市应用程序、电子邮件应用程序、计算器应用程序和/或日历应用程序。
此外,在一些实施方式中,定制布局视频通话系统106使得客户端设备能够在视频通话期间通过将视频单元放置于图形环境中,而在定制视频通话界面中渲染视频单元。例如,定制布局视频通话系统106可以使客户端设备能够在具有表示主题的图形元素的环境内定位视频单元。例如,客户端设备可以渲染位于图形环境内的视频单元,该图像环境例如但不限于地理位置和/或地点(例如,体育场、客厅、厨房、游泳池)。
此外,客户端设备可以在图形环境内渲染(视频通话的)视频单元,同时还在图形环境内渲染一个或多个附加交互式对象。例如,客户端设备可以在图形环境中渲染具有视频单元和交互式对象的定制视频通话界面(例如,在客厅环境中流式传输电影、在游泳池环境中听音乐、在图形化的太空船环境中玩移动游戏)。
作为一示例,图14示出了如下定制布局视频通话系统106:该定制布局视频通话系统106使得客户端设备能够在图形环境(作为定制视频通话界面)内渲染视频单元和交互式对象。例如,如图14所示,定制布局视频通话系统106在客户端设备1402和一个或多个其他客户端设备之间建立了视频通话。此外,客户端设备1402渲染了被放置于定制视频通话界面1404的图形环境1408(例如,体育场)内的视频单元1412、1410。此外,如图14所示,客户端设备1402在视频通话期间还渲染了交互式对象1406,以流式传输媒体内容(例如,实况棒球比赛)。
在一个或多个实施例中并且如图14所示,定制布局视频通话系统106使得客户端设备能够在视频通话期间使用各种类型的参与者表示来渲染所采集的视频数据。例如,如图14所示,客户端设备1402将视频单元1410渲染为适配于图形环境1408内。此外,客户端设备1402还将视频单元1412渲染为表示参与者用户(以及视频上所采集的参与者用户的动作)的化身。在一些实例中,客户端设备利用视频处理数据来将参与者的视频数据渲染为化身、动画、全息图或其他效果(例如,如Blackburne中所描述的)。
在一些实施方式中,定制布局视频通话系统106使得客户端设备能够在视频通话期间渲染具有执行视频游戏的交互式对象的定制视频通话界面。例如,定制布局视频通话系统106可以使客户端设备启动视频游戏应用程序(作为定制视频通话界面内的交互式对象)。实际上,定制布局视频通话系统106可以使参与视频通话的各客户端设备能够(在各参与者客户端设备的每个上)检测与视频游戏应用程序的交互、并且对视频游戏应用程序的图形元素进行更新。例如,客户端设备可以在视频通话期间(例如利用如Sherman所描述的共享数据信道)接收和/或发送在视频通话期间对图形元素、分数、位置和/或其他视频游戏属性或元素的更新。
例如,图15示出了如下定制布局视频通话系统106:该定制布局视频通话系统106使得客户端设备能够在定制视频通话界面内渲染视频游戏应用程序作为交互式对象。如图15所示,定制布局视频通话系统106在客户端设备1502和一个或多个其他客户端设备之间建立了视频通话。随后,如图15所示,客户端设备1502在定制视频通话界面1504中渲染了具有视频单元1506的视频游戏应用程序1508。如图15中进一步所示出的,客户端设备1502还渲染了与具有视频通话的视频单元的参与者用户对应的分数1510。客户端设备1502可以在视频通话期间接收来自一个或多个其他参与者客户端设备的、在视频通话期间对视频游戏应用程序1508的图形元素、分数、位置和/或其他视频游戏属性或元素的更新、和/或向一个或多个其他参与者客户端设备发送在视频通话期间对视频游戏应用程序1508的图形元素、分数、位置和/或其他视频游戏属性或元素的更新。
作为另一示例,定制布局视频通话系统106可以使参与视频通话的客户端设备能够渲染卡拉OK应用程序作为交互式对象。例如,图16示出了如下定制布局视频通话系统106:该定制布局视频通话系统106使得客户端设备能够在视频通话期间渲染具有视频单元的卡拉OK应用程序。如图16所示,定制布局视频通话系统106在客户端设备1602和一个或多个其他客户端设备之间建立了视频通话。此外,客户端设备1602在定制视频通话界面1604内渲染了各种视频单元1610、1608(例如,具有不同的视觉效果、形状、尺寸)。此外,客户端设备1602在视频通话期间渲染了卡拉OK歌词元素1606(作为交互式对象)。此外,如图16所示,客户端设备1602在视频通话期间接收来自其他参与者客户端设备的用户反馈,并渲染了该用户反馈的视觉效果1612。
此外,在一些情况下,定制布局视频通话系统106使得客户端设备能够通过将视频单元覆盖在第三方应用程序上来渲染定制视频通话界面。例如,客户端设备可以执行和/或运行第三方应用程序,同时还执行视频通话。实际上,客户端设备可以将视频单元(例如,修改后视频单元)渲染为第三方应用程序上的覆盖对象(例如,使用户能够在观看视频通话的视频单元的同时浏览网页浏览器)。
图1至图16、相应的文本和各示例提供了定制布局视频通话系统106的多种不同的方法、系统、设备和非暂态计算机可读介质。除前述之外,还可以从包括用于实现特定结果的动作的流程图的角度来描述一个或多个实施例,如图17所示。可以使用更多或更少的动作来执行图17。此外,可以以不同的顺序执行图17中所示出的动作。此外,图17中描述的动作可以重复、或者可以彼此并行地执行、或者与相同或相似动作的不同实例并行地执行。
例如,图17示出了根据一个或多个实施方式的用于在定制视频通话界面中渲染视频单元的一系列动作1700的流程图。尽管图17示出了根据一个或多个实施例的多个动作,但是替代实施例可以对图17中所示出的这些动作中的任何动作进行省略、添加、重新排序和/或修改。在一些实施方式中,图17中的动作作为方法的一部分来执行。替代地,非暂态计算机可读介质可以在其上存储指令,这些指令在被至少一个处理器执行时,使计算设备执行图17中的动作。在一些实施例中,一系统执行图17中的动作。例如,在一个或多个实施例中,系统包括至少一个处理器。该系统还可以包括非暂态计算机可读介质,该非暂态计算机可读介质包括指令,这些指令在被至少一个处理器执行时,使系统执行图17中的动作。
如图17所示,该一系列动作1700包括与参与者设备进行视频通话的动作1710。例如,动作1710可以包括:(由客户端设备)经由流式传输信道与参与者设备进行视频通话,该流式传输信道是针对来自参与者设备的视频通话建立的。在一些实例中,动作1710包括:建立流式传输信道,该流式传输信道包括视频数据信道、音频数据信道、共享数据信道(例如,AR数据信道)和/或视频处理数据信道。
如图17中进一步所示出的,该一系列动作1700包括在视频通话界面内渲染视频单元的动作1720。具体地,动作1720可以包括:在客户端设备上所显示的视频通话界面内,利用从参与者设备接收到的视频数据,以网格视图显示格式来渲染描绘视频的视频单元。此外,动作1720可以包括:在视频通话界面内渲染(或显示)用于请求显示定制视频通话界面的可选元素(或选项)。
此外,如图17所示,该一系列动作1700包括如下的动作1730:一经检测到请求定制视频通话布局(或指示了请求显示定制视频通话布局)的用户交互,(在客户端设备上)在定制视频通话界面内以自视图显示格式渲染视频单元。此外,动作1730可以包括:一经检测到指示了请求显示定制视频通话界面布局的用户交互,在定制视频通话界面内利用客户端设备所采集的附加视频数据,以自视图显示格式来渲染描绘附加视频的附加视频单元。
例如,动作1730可以包括:通过基于定制视频通话界面来修改视频单元的视觉属性,而在定制视频通话界面内渲染视频单元。此外,动作1730可以包括:(基于检测到与视频单元或定制视频通话界面的用户交互)修改视频单元的视觉属性。例如,在动作1730中,修改视频单元的视觉属性可以包括:改变视频单元的尺寸、形状或位置。在一些情况下,动作1730可以包括:修改来自视频数据的视频,以适配视频单元的修改后的可视属性。此外,动作1730可以包括:利用从参与者设备接收到的视频数据而根据视频生成视频纹理,并将该视频纹理适配于修改后视频单元内。在一个或多个实施例中,动作1730包括:经由客户端设备的摄像头缓冲视图以自视图显示格式渲染定制视频通话界面,以渲染与参与者设备对应的视频的视频单元。
此外,动作1730可以包括:通过在视频通话期间在定制视频通话界面内动态地移动视频单元,来渲染定制视频通话界面内的视频单元。在一些实施方式中,动作1730包括:通过(基于定制视频通话界面或检测到与视频单元的用户交互)将移动属性应用于视频单元,而在定制视频通话界面内渲染视频单元。例如,移动属性可以包括对应于视频单元的质量值、碰撞边界、重力值、摩擦力值和/或弹力值。
此外,动作1730可以包括:通过在定制视频通话界面内渲染交互式对象来渲染定制视频通话界面。此外,动作1730可以包括:一经接收到对应于交互式对象的用户交互,对该交互式对象进行更新。在一些情况下,动作1730可以包括:一经经由流式传输信道接收到来自参与者设备的、对应于交互式对象的用户交互,对该交互式对象进行更新。例如,流式传输信道可以包括视频数据信道和共享数据信道。例如,交互式对象可以包括素材和/或交互式应用程序。此外,交互式应用程序可以包括电子绘画应用程序、电子文档应用程序、数字内容流式传输应用程序、视频游戏应用程序、音乐开发应用程序和/或媒体浏览库应用程序。
本公开的实施例可以包括或利用包括计算机硬件(例如,一个或多个处理器和系统存储器)的专用或通用计算机,如下文更详细论述的。本公开范围内的实施例还包括用于携带或存储计算机可执行指令和/或数据结构的物理和其他计算机可读介质。具体地,本文中所描述的多个过程中的一个或多个过程可以至少部分地实现为体现在非暂态计算机可读介质中且可被一个或多个计算设备(例如,本文中所描述的媒体内容访问设备中的任何一个)执行的多个指令。一般来说,处理器(例如,微处理器)接收来自非暂态计算机可读介质(例如,存储器)的多个指令,并执行这些指令,从而执行一个或多个过程,该一个或多个过程包括本文中描述的多个过程中的一个或多个过程。
计算机可读介质可以是可被通用或专用计算机系统访问的任何可用介质。存储计算机可执行指令的计算机可读介质是非暂态计算机可读存储介质(设备)。携带计算机可执行指令的计算机可读介质是传输介质。因此,作为示例而非限制,本公开的实施例可以包括至少两种种类明显不同的计算机可读介质:非暂态计算机可读存储介质(设备)和传输介质。
非暂态计算机可读存储介质(设备)包括随机存取存储器(Random AccessMemory,RAM)、只读存储器(Read-Only Memory,ROM)、电子可擦除可编程只读存储器(EEPROM)、只读光盘存储器(CD-ROM)、固态驱动器(solid state drive,“SSD”)(例如,基于RAM)、闪存、相变存储器(phase-change memory,“PCM”)、其他类型的存储器、其他光盘存储器、磁盘存储器或其他磁存储设备、或者可用于存储计算机可执行指令或数据结构的形式的期望的程序代码工具、且可被通用或专用计算机访问的任何其他介质。
“网络”被定义为能够在多个计算机系统和/或多个模块和/或多个其他电子设备之间传输电子数据的一条或多条数据链路。当通过网络或另一通信连接(要么硬接线、无线,要么硬接线或无线的组合)向计算机传送或提供信息时,该计算机将该连接适当地视为传输介质。传输介质可以包括网络和/或数据链路,该网络和/或数据链路可以用于承载计算机可执行指令或数据结构的形式的期望的程序代码工具,并且可以被通用或专用计算机访问。上述的各种组合也应该被包括在计算机可读介质的范围内。
此外,计算机可执行指令或数据结构形式的程序代码工具可以在到达各种计算机系统部件时,从传输介质自动传送到非暂态计算机可读存储介质(设备)(或反之亦然)。例如,通过网络或数据链路接收的计算机可执行指令或数据结构可以被缓冲在网络接口模块(例如,“网络接口控制器(Network Interface controller,NIC)”)内的RAM中,并且然后被最终传送到计算机系统RAM和/或计算机系统处的易失性较低的计算机存储介质(设备)。因此,应当理解的是,非暂态计算机可读存储介质(设备)可以被包括在同样(或甚至主要)利用了传输介质的计算机系统部件中。
计算机可执行指令例如包括多个指令和数据,这些指令和数据当被处理器执行时,使通用计算机、专用计算机或专用处理设备执行某种功能或某一组功能。在一些实施例中,由通用计算机执行计算机可执行指令,以将通用计算机转变为实现本公开的元素的专用计算机。计算机可执行指令例如可以是二进制文件、诸如汇编语言的中间格式指令、或者甚至是源代码。尽管已经用针对结构特征和/或方法动作的语言描述了本主题,但是应理解的是,在所附权利要求中所限定的主题不必限于上面所描述的特征或动作。而是,所描述的特征和动作是作为实现权利要求的示例形式而公开的。
本领域的技术人员将理解,本公开可以在具有许多类型的计算机系统配置的网络计算环境中实践,这些网络计算环境包括个人计算机、台式计算机、膝上型计算机、消息处理器、手持式设备、多处理器系统、基于微处理器或可编程的消费电子产品、网络个人计算机(PC)、小型计算机、大型计算机、移动电话、个人数字助理(Personal DigitalAssistant,PDA)、平板电脑、寻呼机、路由器、和交换机等。本公开还可以在分布式系统环境中实践,在分布式系统环境中,通过网络而连接(要么通过硬接线数据链路、无线数据链路来连接,要么通过硬接线和无线数据链路的组合来连接)的本地和远程计算机系统均执行任务。在分布式系统环境中,程序模块可以位于本地存储器存储设备和远程存储器存储设备中。
本公开的实施例还可以在云计算环境中实现。如本文中所使用的,术语“云计算”是指用于实现对可配置计算资源的共享池进行按需网络访问的模型。例如,可以在市场环境中采用云计算,来提供对可配置计算资源共享池的普遍存在且方便的按需访问。可配置计算资源的共享池可以经由虚拟化来快速供应,并在管理工作量或服务提供商交互较少的情况下进行释放,然后进行相应地扩展。
云计算模型可以由各种特征组成,这些特征例如为按需自助服务、广泛的网络接入、资源池、快速弹性、测量服务等。云计算模型也可以披露各种服务模型,例如软件即服务(Software as a Service,“SaaS”)、平台即服务(Platform as a Service,“PaaS”)和基础设施即服务(Infrastructure as a Service,“IaaS”)。还可以使用不同的部署模型来部署云计算模型,这些部署模型例如为私有云、社区云、公有云、混合云等。此外,如本文中所使用的,术语“云计算环境”是指在其中采用了云计算的环境。
图18示出了可被配置为执行上述多个过程中的一个或多个过程的示例计算设备1800的框图。将理解的是,一个或多个计算设备(例如,计算设备1800)可以表示上述计算设备(例如,一个或多个服务器设备102、和/或客户端设备110a和110b至110n)。在一个或多个实施例中,计算设备1800可以是移动设备(例如,移动电话、智能手机、PDA、平板电脑、膝上型电脑、摄像头、追踪器、手表、可穿戴设备、头戴式显示器等)。在一些实施例中,计算设备1800可以是非移动设备(例如,台式计算机或另一类型的客户端设备)。此外,计算设备1800可以是包括基于云的处理和存储功能的服务器设备。
如图18所示,计算设备1800可以包括一个或多个处理器1802、存储器1804、存储设备1806、输入/输出接口1808(或“I/O接口1808”)和通信接口1810,上述这些部件可以通过通信基础设施(例如,总线1812)进行通信耦接。尽管在图18中示出了计算设备1800,但是图18中示出的这些部件不旨在进行限制。在其他实施例中,可以使用附加的部件或替代的部件。此外,在某些实施例中,计算设备1800包括比图18中所示的那些部件更少的部件。现在将更详细地描述图18中示出的计算设备1800中的多个部件。
在特定实施例中,该一个或多个处理器1802包括用于执行多个指令的硬件,这些指令例如为构成计算机程序的那些指令。作为示例而非限制,为了执行多个指令,该一个或多个处理器1802可以从内部寄存器、内部缓冲存储器、存储器1804或存储设备1806检索(或读取)这些指令,并对这些指令进行解码和执行。
计算设备1800包括耦接到一个或多个处理器1802的存储器1804。存储器1804可以用于存储数据、元数据、以及供一个或多个处理器执行的程序。存储器1804可以包括易失性存储器和非易失性存储器中的一者或多者,例如随机存取存储器(“RAM”)、只读存储器(“ROM”)、固态磁盘(“SSD”)、闪存、相变存储器(“PCM”)或其他类型的数据存储器。存储器1804可以是内部存储器或分布式存储器。
计算设备1800包括存储设备1806,该存储设备1806包括用于存储数据或指令的存储器。作为示例而非限制,存储设备1806可以包括上述非暂态存储介质。存储设备1806可以包括硬盘驱动器(hard disk drive,HDD)、闪存、通用串行总线(Universal Serial Bus,USB)驱动器、或这些存储设备或其他存储设备的组合。
如所示出的,计算设备1800包括一个或多个I/O接口1808,该一个或多个I/O接口1808被提供以允许用户向计算设备1800提供输入(例如,用户轻触),接收来自计算设备1800的输出,以及以其他方式向计算设备1800传送数据和传送来自计算设备1800的数据。这些I/O接口1808可以包括鼠标、小键盘或键盘、触摸屏、摄像头、光学扫描仪、网络接口、调制解调器、其他已知的I/O设备、或这些I/O接口1808的组合。可以使用手写笔或手指来激活触摸屏。
这些I/O接口1808可以包括用于向用户呈现输出的一个或多个设备,这些设备包括但不限于图形引擎、显示器(例如,显示屏)、一个或多个输出驱动器(例如,显示驱动器)、一个或多个音频扬声器、以及一个或多个音频驱动器。在某些实施例中,I/O接口1808被配置为向显示器提供图形数据,以用于呈现给用户。图形数据可以表示一个或多个图形用户界面和/或可服务于特定实施方式的任何其他图形内容。
计算设备1800还可以包括通信接口1810。通信接口1810可以包括硬件、软件、或硬件和软件这两者。通信接口1810为计算设备与一个或多个其他计算设备或一个或多个网络之间的通信(例如,基于数据包的通信)提供一个或多个接口。作为示例而非限制,通信接口1810可以包括用于与以太网或其他基于有线的网络通信的网络接口控制器(NIC)或网络适配器,或者用于与无线网络(例如,WI-FI)通信的无线NIC(wireless NIC,WNIC)或无线适配器。计算设备1800还可以包括总线1812。总线1812可以包括将计算设备1800中的各部件彼此连接的硬件、软件、或硬件和软件这两者。作为一示例,总线1812可以包括一种或多种类型的总线。
本发明的实施例可以包括人工现实系统或结合人工现实系统来实现。人工现实是在呈现给用户之前已经以某种方式进行了调整的现实形式,该现实形式例如可以包括,虚拟现实(virtual reality,VR)、增强现实(augmented reality,AR)、混合现实(mixedreality,MR)、混合现实(hybrid reality),或它们的某种组合和/或衍生物。人工现实内容可以包括完全生成的内容或与采集到的内容(例如,真实世界的照片)相结合的生成内容。人工现实内容可以包括视频、音频、触觉反馈或它们的某种组合,以上任何一种都可以以单通道或多通道(例如,为观看者带来三维效果的立体视频)呈现。此外,在一些实施例中,人工现实还可以与应用程序、产品、附件、服务或它们的某种组合相关联,这些应用程序、产品、附件、服务或它们的某种组合例如用于在人工现实中创建内容,和/或在人工现实中使用(例如,在人工现实中执行活动)。提供人工现实内容的人工现实系统可以在各种平台上实现,这些平台包括连接到主计算机系统的头戴式显示器(head-mounted display,HMD)、独立HMD、移动设备或计算系统、或能够向一位或多位观看者提供人工现实内容的任何其他硬件平台。
如上所提及的,通信系统可以被包括在社交网络系统中。社交网络系统可以使该社交网络系统的用户(例如,个人或组织)能够与该系统交互并且彼此交互。社交网络系统可以使用来自用户的输入,在社交网络系统中创建和存储与用户相关联的用户资料。如上所述,该用户资料可以包括人口统计信息、通信信道信息和关于用户的个人兴趣的信息。
更详细地,用户资料信息例如可以包括生物信息、人口统计信息、行为信息、社交信息、或其他类型的描述性信息(例如,工作经历、教育历史、爱好或偏好、兴趣、姻亲关系、或位置)。兴趣信息可以包括与一个或多个类别相关的兴趣,该一个或多个类别可以是通用的或特定的。作为一示例,如果用户“喜欢”关于一鞋的品牌的物品,则该类别可以是该品牌。
社交网络系统还可以利用来自用户的输入,来创建和存储该用户与社交网络系统中的其他用户的关系的记录、以及提供促进用户之间或用户中的社交互动的服务(例如,涂鸦墙(wall post)、照片共享、在线日历和活动组织、消息传递、游戏、或广告)。此外,社交网络系统可以允许用户将照片和其他多媒体内容项目发布到用户的资料页面(通常称为“涂鸦墙”或“时间轴帖子(timeline post)”)或相册中,取决于用户配置的隐私设置,以上的两者对社交网络系统中的其他用户而言是可访问的。本文中,术语“朋友”可以指社交网络系统中用户已经经由社交网络系统与其形成了联系、关联或关系的任何其他用户。
图19示出了社交网络系统的示例网络环境1900。网络环境1900包括客户端设备1906、网络系统1902(例如,社交网络系统和/或电子消息传递系统)和第三方系统1908,该客户端设备1906、网络系统1902和第三方系统1908通过网络1904彼此连接。尽管图19示出了客户端设备1906、网络系统1902、第三方系统1908和网络1904的特定布置,但是本公开考虑了客户端设备1906、网络系统1902、第三方系统1908和网络1904的任何合适的布置。作为示例而非限制,客户端设备1906、网络系统1902和第三方系统1908中的两者或更多者可以绕过网络1904而直接连接到彼此。作为另一示例,客户端设备1906、网络系统1902和第三方系统1908中的两者或更多者可以彼此在物理上或逻辑上整体或部分地位于同一位置。此外,尽管图19示出了特定数量的客户端设备1906、网络系统1902、第三方系统1908和网络1904,但是本公开考虑了任何合适数量的客户端设备1906、网络系统1902、第三方系统1908和网络1904。作为示例而非限制,网络环境1900可以包括多个客户端设备1906、多个网络系统1902、多个第三方系统1908以及多个网络1904。
本公开考虑了任何合适的网络1904。作为示例而非限制,网络1904的一个或多个部分可以包括自组网、内联网、外联网、虚拟专用网络(virtual private network,VPN)、局域网(local area network,LAN)、无线LAN(wireless LAN,WLAN)、广域网(wide areanetwork,WAN)、无线WAN(wireless WAN,WWAN)、城域网(metropolitan area network,MAN)、因特网的一部分、公共交换电话网(Public Switched Telephone Network,PSTN)的一部分、蜂窝电话网络、或这些网络中的两者或更多者的组合。网络1904可以包括一个或多个网络1904。
多条链路可以将客户端设备1906、网络系统1902和第三方系统1908连接到通信网络1904、或者使客户端设备1906、网络系统1902和第三方系统1908彼此连接。本公开考虑了任何合适的链路。在特定实施例中,一条或多条链路包括一条或多条有线链路(例如,数字用户线路(Digital Subscriber Line,DSL)或电缆数据服务接口规范(Data Over CableService Interface Specification,DOCSIS))、一条或多条无线链路(例如,Wi-Fi或全球微波接入互操作性(Worldwide Interoperability for Microwave Access,WiMAX))、或一条或多条光学链路(例如,同步光纤网络(Synchronous Optical Network,SONET)或同步数字体系(Synchronous Digital Hierarchy,SDH))。在特定实施例中,一条或多条链路各自包括自组网、内联网、外联网、VPN、LAN、WLAN、WAN、WWAN、MAN、因特网的一部分、PSTN的一部分、基于蜂窝技术的网络、基于卫星通信技术的网络、另一链路、或两条或更多条这些链路的组合。在整个网络环境1900中,多条链路不必都是相同的。在一个或多个方面,一条或多条第一链路可以不同于一条或多条第二链路。
在特定实施例中,客户端设备1906可以是如下的电子设备:该电子设备包括硬件、软件、或嵌入式逻辑部件或两个或更多个这种部件的组合,并且能够执行由客户端设备1906实现或支持的合适功能。作为示例而非限制,客户端设备1906可以包括计算机系统,该计算机系统例如为,增强现实显示设备、台式计算机、笔记本或膝上型计算机、上网本、平板计算机、电子书阅读器、GPS设备、摄像头、个人数字助理(PDA)、手持电子设备、蜂窝电话、智能手机、其他合适的电子设备、或它们的任何合适的组合。本公开考虑了任何合适的客户端设备1906。客户端设备1906可以使客户端设备1906处的网络用户能够接入网络1904。客户端设备1906可以使其用户能够与其他客户端设备1906处的其他用户通信。
在特定实施例中,客户端设备1906可以包括网页(web)浏览器,并且可以具有一个或多个附加组件、插件或其他扩展件。客户端设备1906处的用户可以输入统一资源定位器(Uniform Resource Locator,URL)或将web浏览器引导到特定服务器(例如,服务器或与第三方系统1908相关联的服务器)的其他地址,并且该网页浏览器可以生成超文本传输协议(Hyper Text Transfer Protocol,HTTP)请求,并将该HTTP请求传送到服务器。服务器可以接受该HTTP请求,并且响应于该HTTP请求向客户端设备1906传送一个或多个超文本标记语言(Hyper Text Markup Language,HTML)文件。客户端设备1906可以基于来自服务器的HTML文件来渲染网页,以供呈现给用户。本公开考虑了任何合适的网页文件。作为示例而非限制,根据特定需要,网页可以是根据HTML文件、可扩展超文本标记语言(ExtensibleHyper Text Markup Language,XHTML)文件或可扩展标记语言(Extensible MarkupLanguage,XML)文件来渲染的。这些页面还可以执行脚本,这些脚本例如但不限于用JAVA脚本(JAVASCRIPT)、JAVA、MICROSOFT SILVERLIGHT、标记语言和脚本(例如,AJAX(异步JAVASCRIPT和XML))的组合等编写的那些脚本。在本文中,在适当的情况下,对网页的引用包含一个或多个对应的网页文件(浏览器可以使用这些网页文件来渲染网页),反之亦然。
在特定实施例中,网络系统1902可以是可托管在线社交网络的网络可寻址计算系统。网络系统1902可以生成、存储、接收和发送社交网络数据,该社交网络数据例如为,用户资料数据、概念资料(concept-profile)数据、社交图谱信息、或与在线社交网络相关的其他合适的数据。网络系统1902可以由网络环境1900的其他部件直接地访问或经由网络1904访问。在特定实施例中,网络系统1902可以包括一个或多个服务器。每个服务器可以是单一服务器、或跨多个计算机或多个数据中心的分布式服务器。服务器可以具有各种类型,例如但不限于,网页服务器、新闻服务器、邮件服务器、消息服务器、广告服务器、文件服务器、应用服务器、交换服务器、数据库服务器、代理服务器、适于执行本文中所描述的功能或过程的另一服务器、或它们的任何组合。在特定实施例中,每个服务器可以包括用于执行由服务器实现或支持的适当功能的硬件、软件、或嵌入式逻辑部件、或者两个或更多个这种部件的组合。在特定实施例中,网络系统1902可以包括一个或多个数据存储库。数据存储库可以用于存储各种类型的信息。在特定实施例中,可以根据特定的数据结构来组织存储在数据存储库中的信息。在特定实施例中,每个数据存储库可以是关系型(relational)数据库、列式(columnar)数据库、关联(correlation)数据库、或其他合适的数据库。尽管本公开描述或示出了特定类型的数据库,但是本公开考虑了任何合适类型的数据库。特定实施例可以提供多个接口,该多个接口使客户端设备1906、网络系统1902或第三方系统1908能够对存储在数据存储区中的信息进行管理、检索、修改、添加或删除。
在特定实施例中,网络系统1902可以将一个或多个社交图谱存储在一个或多个数据存储库中。在特定实施例中,社交图谱可以包括多个节点——这些节点可以包括多个用户节点(每个用户节点对应于一特定用户)或多个概念节点(每个概念节点对应于一特定概念)——以及连接这些节点的多条边。网络系统1902可以向在线社交网络的用户提供与其他用户通信和交互的能力。在特定实施例中,用户可以经由网络系统1902加入在线社交网络,然后向网络系统1902中他们想要联系的一些其他用户添加联系(例如,关系)。本文中,术语“朋友”可以指网络系统1902中的一用户已经经由网络系统1902与其形成了联系、关联或关系的任何其他用户。
在特定实施例中,网络系统1902可以向用户提供对由网络系统1902支持的各种类型的项目或对象上采取行动的能力。作为示例而非限制,这些项目和对象可以包括网络系统1902的用户可能所属的群组或社交网络、用户可能感兴趣的事件或日程表条目、用户可使用的基于计算机的应用程序、允许用户经由服务购买或出售项目的交易、用户可执行的与广告的交互、或其他合适的项目或对象。用户可以与能够在网络系统1902中展示的任何事物进行交互、或者与能够由第三方系统1908的外部系统展示的任何事物进行交互,该第三方系统与网络系统1902分开并经由网络1904耦接到网络系统1902。
在特定实施例中,网络系统1902可能能够链接各种实体。作为示例而非限制,网络系统1902可以使用户能够彼此交互以及接收来自第三方系统1908或其他实体的内容,或者允许用户通过应用程序编程接口(API)或其他通信信道与这些实体交互。
在特定实施例中,第三方系统1908可以包括一种或多种类型的服务器、一个或多个数据存储库、一个或多个接口(包括但不限于API)、一个或多个网页服务、一个或多个内容源、一个或多个网络、或任何其他合适的部件(例如,服务器可以与这些部件通信)。可以由与操作网络系统1902的实体不同的实体来操作第三方系统1908。然而,在特定实施例中,网络系统1902和第三方系统1908可以彼此协同运行,以向网络系统1902或第三方系统1908的用户提供社交网络服务。在这个意义上,网络系统1902可以提供平台或主干网(backbone),其他系统(例如,第三方系统1908)可以使用该平台或主干网来向因特网上的用户提供社交网络服务和功能。
在特定实施例中,第三方系统1908可以包括第三方内容对象提供器。第三方内容对象提供器可以包括一个或多个内容对象源,该一个或多个内容对象源可以被传送到客户端设备1906。作为示例而非限制,内容对象可以包括关于用户感兴趣的事物或活动的信息,例如电影放映时间、电影评论、餐厅评论、餐厅菜单、产品信息和评论、或其他合适的信息。作为另一示例而非限制,内容对象可以包括激励内容对象,例如优惠券、折扣券、礼品券、或其他合适的激励对象。
在特定实施例中,网络系统1902还包括用户生成的内容对象,用户生成的内容对象可以增强用户与网络系统1902的交互。用户生成的内容对象可以包括用户可向网络系统1902添加、上传、发送或“发布”的任何内容。作为示例而非限制,用户将帖子从客户端设备1906传送到网络系统1902。帖子可以包括诸如状态更新或其他文本数据、位置信息、照片、视频、链接、音乐、或其他类似数据或媒体等数据。也可以由第三方系统1908通过“通信信道”(例如,新闻推送或流)将内容添加到网络系统1902。
在特定实施例中,网络系统1902可以包括各种服务器、子系统、程序、模块、日志、和数据存储库。在特定实施例中,网络系统1902可以包括以下各项中的一项或多项:网页服务器、操作日志记录器(action logger)、API请求服务器、相关性和排名引擎(relevance-and-rank engine)、内容对象分类器、通知控制器、操作日志、第三方内容对象公布日志(third-party-content-object-exposure log)、推理模块、授权/隐私服务器、搜索模块、广告定向模块(advertisement-targeting module)、用户界面模块、用户资料存储库、联系存储库、第三方内容存储库、或位置存储库。网络系统1902还可以包括合适的部件,这些合适的部件例如为,网络接口、安全机制、负载平衡器(load balancer)、故障切换(failover)服务器、管理和网络操作控制台、其他合适的部件、或它们的任何合适的组合。在特定实施例中,网络系统1902可以包括用于存储用户资料的一个或多个用户资料存储库。用户资料例如可以包括生物信息、人口统计信息、行为信息、社交信息、或其他类型的描述性信息(例如,工作经历、教育历史、爱好或偏好、兴趣、姻亲关系、或位置)。兴趣信息可以包括与一个或多个类别相关的兴趣。这些类别可以是通用的或特定的。作为示例而非限制,如果用户“喜欢”关于一鞋的品牌的物品,则该类别可以是该品牌、或“鞋”或“服装”的通用类别。联系存储库可以用于存储关于用户的联系信息。联系信息可以指示具有相似或共同工作经历、组成员资格、爱好、教育历史的用户,或者指示以任何方式与共同属性相关或共享共同属性的用户。联系信息还可以包括不同用户和内容(内部和外部这两者)之间的用户定义的联系。网页服务器可以用于经由网络1904将网络系统1902链接至一个或多个客户端设备1906或一个或多个第三方系统1908。网页服务器可以包括邮件服务器、或用于在网络系统1902与一个或多个客户端设备1906之间接收和发送消息的其他消息传递功能。API请求服务器可以允许第三方系统1908通过调用一个或多个API来访问来自网络系统1902的信息。操作日志记录器可以用于接收来自网页服务器的、关于用户打开或关闭网络系统1902的动作的通信。结合操作日志,可以维护用户暴露于第三方内容对象的第三方内容对象日志。通知控制器可以向客户端设备1906提供关于内容对象的信息。可以将信息作为通知推送到客户端设备1906,或者可以响应于接收到来自客户端设备1906的请求而从客户端设备1906提取信息。
授权服务器可以用于对网络系统1902执行一个或多个用户隐私设置。用户隐私设置确定了可以如何共享与用户相关联的特定信息。授权服务器可以允许用户例如通过设置合适的隐私设置,来选择让或不让网络系统1902记录它们的动作或与其他系统(例如,第三方系统1908)共享它们的动作。第三方内容对象存储库可以用于存储接收到的来自第三方(例如,第三方系统1908)的内容对象。位置存储库可以用于存储接收到的来自与用户相关联的客户端设备1906的位置信息。广告定价模块(Advertisement-pricing module)可以结合社交信息、当前时间、位置信息或其他合适的信息,来以通知的形式向用户提供相关广告。
图20示出了示例社交图谱2000。在特定实施例中,网络系统1902可以将一个或多个社交图谱2000存储在一个或多个数据存储库中。在特定实施例中,社交图谱2000可以包括多个节点——这些节点可以包括多个用户节点2002或多个概念节点2004——以及连接这些节点的多条边2006。出于教导的目的,以二维可视化图谱表示形式示出了图20中所示的示例社交图谱2000。在特定实施例中,网络系统1902、客户端设备1906或第三方系统1908可以访问社交图谱2000和相关社交图谱信息,以用于合适的应用程序。社交图谱2000的节点和边例如可以作为数据对象存储在数据存储库(例如,社交图谱数据库)中。这种数据存储库可以包括社交图谱2000的节点或边的一个或多个可搜索或可查询的索引。
在特定实施例中,用户节点2002可以对应于网络系统1902的用户。作为示例而非限制,用户可以是与网络系统1902交互或通信、或通过网络系统1902交互或通信的个体(人类用户)、实体(例如,企业、业务或第三方应用程序)或群组(例如,个体群组或实体群组)。在特定实施例中,当用户使用网络系统1902注册账户时,网络系统1902可以创建与该用户相对应的用户节点2002,并将该用户节点2002存储在一个或多个数据存储库中。在适当的情况下,本文中所描述的用户和用户节点2002可以指注册用户和与注册用户相关联的用户节点2002。附加地或者作为替代,在适当的情况下,本文中所描述的用户和用户节点2002可以指尚未使用网络系统1902进行注册的用户。在特定实施例中,用户节点2002可以与由用户提供的信息或由各种系统(其包括网络系统1902)收集的信息相关联。作为示例而非限制,用户可以提供他或她的姓名、资料图片、联系信息、出生日期、性别、婚姻状况、家庭状况、职业、教育背景、偏好、兴趣、或其他人口统计信息。在特定实施例中,用户节点2002可以与一个或多个数据对象相关联,该一个或多个数据对象对应于与用户相关联的信息。在特定实施例中,用户节点2002可以对应于一个或多个网页。
在特定实施例中,概念节点2004可以对应于概念。作为示例而非限制,该概念可以对应于地点(例如,电影院、餐厅、地标、或城市);网站(例如,与网络系统1902相关联的网站、或与web应用服务器相关联的第三方网站);实体(例如,个人、公司、群组、运动队、或名人);可位于网络系统1902内或外部服务器(例如,web应用服务器)上的资源(例如,音频文件、视频文件、数码照片、文本文件、结构化文档、或应用程序);不动产或知识产权(例如,雕塑、绘画、电影、游戏、歌曲、创意、照片、或书面作品);游戏;活动;想法或理论;另一合适的概念;或者两个或更多个这种概念。概念节点2004可以与由用户提供的概念的信息或由各种系统(其包括网络系统1902)收集的信息相关联。作为示例而非限制,概念的信息可以包括名称或标题;一幅或多幅图像(例如,书籍的封面图像);位置(例如,地址或地理位置);网站(其可以与URL相关联);联系信息(例如,电话号码或电子邮件地址);其他合适的概念信息;或这些信息的任何合适的组合。在特定实施例中,概念节点2004可以与一个或多个数据对象相关联,该一个或多个数据对象对应于与概念节点2004相关联的信息。在特定实施例中,概念节点2004可以对应于一个或多个网页。
在特定实施例中,社交图谱2000中的节点可以表示网页(其可以被称为“资料页面”)或由网页表示。资料页面可以由网络系统1902托管或访问。资料页面也可以被托管在与第三方系统1908相关联的第三方网站上。作为示例而非限制,对应于特定外部网页的资料页面可以是特定的外部网页,并且该资料页面可以对应于特定概念节点2004。资料页面可以被其他用户的所有子集或所选择的子集查看。作为示例而非限制,用户节点2002可以具有对应的用户资料页面,在该对应的用户资料页面中,对应的用户可以添加内容、做出声明、或以其他方式表达他或她自己。作为另一示例而非限制,概念节点2004可以具有对应的概念资料页面,在该对应的概念资料页面中,一个或多个用户可以添加内容、做出声明、或表达他们自己,特别是在对应于概念节点2004的概念方面。
在特定实施例中,概念节点2004可以表示由第三方系统1908托管的第三方网页或资源。第三方网页或资源可以包括除了其他元素之外的表示动作或活动的内容、可选图标或其他图标、或其他可交互的对象(其例如可以用JavaScript、AJAX或PHP代码实现)。作为示例而非限制,第三方网页可以包括可选图标,例如“喜欢”、“签到”、“吃”、“推荐”或另一合适的动作或活动。查看第三方网页的用户可以通过选择这些图标中的一个图标(例如,“吃”)来执行动作,从而使得客户端设备1906向网络系统1902发送指示用户动作的消息。响应于该消息,网络系统1902可以在对应于用户的用户节点2002和对应于第三方网页或资源的概念节点2004之间创建边(例如,“吃”边),并将边2006存储在一个或多个数据存储库中。
在特定实施例中,社交图谱2000中的一对节点可以通过一条或多条边2006彼此连接。连接一对节点的边2006可以表示该对节点之间的关系。在特定实施例中,边2006可以包括或表示与一对节点之间的关系相对应的一个或多个数据对象或属性。作为示例而非限制,第一用户可以指示第二用户是第一用户的“朋友”。响应于该指示,网络系统1902可以向第二用户发送“朋友请求”。如果第二用户确认该“朋友请求”,则网络系统1902可以在社交图谱2000中创建将第一用户的用户节点2002连接到第二用户的用户节点2002的边2006,并将边2006作为社交图谱信息存储在一个或多个数据存储库中。在图20的示例中,社交图谱2000包括指示用户“A”和用户“B”的用户节点2002之间的朋友关系的边2006、以及指示用户“C”和用户“B”的用户节点2002之间的朋友关系的边。尽管本公开描述或示出了具有连接特定用户节点2002的特定属性的特定边2006,但是本公开考虑了具有连接用户节点2002的任何合适属性的任何合适的边2006。作为示例而非限制,边2006可以表示朋友关系、家庭关系、商业或雇佣关系、粉丝关系、随从关系、访客关系、订户关系、上级/下级关系、互惠关系、非互惠关系、另一合适类型的关系、或两个或更种这种关系。此外,尽管本公开总体上将节点描述为正被连接,但是本公开也将用户或概念描述为正被连接。在本文中,在适当的情况下,对正被连接的用户或概念的引用可以指与社交图谱2000中通过一条或多条边2006连接的那些用户或概念相对应的节点。
在特定实施例中,用户节点2002和概念节点2004之间的边2006可以表示由与用户节点2002相关联的用户针对与概念节点2004相关联的概念而执行的特定动作或活动。作为示例而非限制,如图20中所示,用户可以“喜欢”、“定期去”、“播放”、“收听”、“烹饪”、“工作于”或“观看”概念,上述动作或活动中的每一个动作或活动可以对应于边类型或边子类型。对应于概念节点2004的概念资料页面例如可以包括可选的“签到”图标(例如,可点击的“签到”图标)或可选的“添加到收藏夹”图标。类似地,在用户点击这些图标之后,网络系统1902可以响应于与相应动作对应的用户动作,来创建“收藏”边或“签到”边。作为另一示例而非限制,用户(用户“C”)可以使用特定应用程序(音乐(MUSIC),其为在线音乐应用程序)来收听特定歌曲(“继续漫步(Ramble On)”)。在这种情况下,网络系统1902可以在对应于用户的用户节点2002和对应于歌曲和应用程序的概念节点2004之间创建“收听”边2006和“使用”边(如图20中所示),以指示用户收听该歌曲并使用该应用程序。此外,网络系统1902可以在对应于歌曲和应用程序的概念节点2004之间创建“播放”边2006(如图20中所示),以指示特定应用程序播放了特定歌曲。在这种情况下,“播放”边2006对应于外部应用程序(音乐(MUSIC))对外部音频文件(歌曲“想象(Imagine)”)执行的动作。尽管本公开描述了具有连接用户节点2002和概念节点2004的特定属性的特定边2006,但是本公开考虑了具有连接用户节点2002和概念节点2004的任何合适属性的任何合适的边2006。此外,尽管本公开描述了在用户节点2002和概念节点2004之间表示单个关系的边,但是本公开考虑了在用户节点2002和概念节点2004之间表示一个或多个关系的边。作为示例而非限制,边2006可以表示用户喜欢特定概念和用户已经在特定概念处使用过的这两者。替代地,另一条边2006可以表示用户节点2002和概念节点2004之间(如图20中所示,用户“E”的用户节点2002和“音乐(MUSIC)”的概念节点2004之间)的每种类型的关系(或多个单独的关系)。
在特定实施例中,网络系统1902可以在社交图谱2000中的用户节点2002和概念节点2004之间创建边2006。作为示例而非限制,查看概念资料页面(例如,通过使用由用户的客户端设备1906托管的网页浏览器或专用应用程序)的用户可以通过点击或选择“喜欢”图标,来指示他或她喜欢由概念节点2004表示的概念,这可以使用户的客户端设备1906向网络系统1902发送指示了用户喜欢与概念资料页面相关联的概念的消息。响应于该消息,网络系统1902可以在与用户相关联的用户节点2002和概念节点2004之间创建边2006,如由用户节点2002和概念节点2004之间的“喜欢”边2006所示。在特定实施例中,网络系统1902可以将边2006存储在一个或多个数据存储库中。在特定实施例中,可以由网络系统1902响应于特定用户动作而自动形成边2006。作为示例而非限制,如果第一用户上传了图片、观看了电影或收听了歌曲,则可以在对应于第一用户的用户节点2002和对应于那些概念的概念节点2004之间形成边2006。尽管本公开描述了以特定方式形成特定边2006,但是本公开考虑了以任何合适的方式形成任何合适的边2006。
在特定实施例中,广告可以是文本(其可以是由HTML链接的)、一幅或多幅图像(其可以是由HTML链接的)、一个或多个视频、音频、一个或多个动画制作(ADOBE FLASH)文件、这些文件的合适组合,或者在一个或多个网页上、在一个或多个电子邮件中呈现的、任何合适数字格式的任何其他合适的广告,或者与用户请求的搜索结果相关联的、任何合适数字格式的任何其他合适的广告。附加地或作为替代,广告可以是一个或多个赞助商内容(sponsored story)(例如,网络系统1902上的新闻推送或滚动条项目)。赞助商内容可以是由用户进行的社交行为(例如,“喜欢”页面、对页面上的帖子的“喜欢”或评论、对与页面相关联的事件作出回应(RSVP)、对页面上所发布的问题进行投票、在一位置签到、使用应用程序或玩游戏、或“喜欢”或共享网站),广告商例如通过以下方式来推广该社交行为:使该社交行为在用户的资料页面或其他页面的预定区域内呈现、使该社交行为与该广告商相关联的附加信息一起呈现、使该社交行为在其他用户的新闻推送或滚动条内突出或以其他方式突出显示,或者以其他方式来推广该社交行为。广告商可以付费来推广该社交行为。作为示例而非限制,广告可以被包括在搜索结果页面的搜索结果中,其中,赞助商内容优先于非赞助内容进行推广。
在特定实施例中,可以请求在社交网络系统网页、第三方网页或其他页面内显示广告。广告可以显示在页面的专用部分中,例如在页面顶部处的横幅广告区域中、在页面侧边处的列中、在页面的图形用户界面(Graphical User Interface,GUI)中、在弹出窗口中、在下拉菜单中、在页面的输入信息栏中、在页面内容的顶部之上、或者相对于页面的其他地方。附加地或作为替代,可以在应用程序内显示广告。广告可以显示在专用页面内,从而在用户访问页面或利用应用程序之前,要求用于与该广告交互或观看该广告。例如,用户可以通过网页浏览器观看广告。
用户可以以任何合适的方式与广告交互。用户可以点击或以其他方式选择广告。通过选择广告,用户可以被引导到与广告相关联的页面(或用户正在使用的浏览器或其他应用程序)。用户可以在与广告相关联的页面处采取附加动作,例如购买与该广告相关联的产品或服务、接收与该广告相关联的信息、或者订阅与该广告相关联的新闻通讯。可以通过选择广告的组件(如“播放按钮”)来播放具有音频或视频的广告。替代地,通过选择广告,网络系统1902可以执行或修改用户的特定动作。
广告还可以包括用户可以与之交互的社交网络系统功能。作为示例而非限制,广告可以使用户能够通过选择与签发(endorsement)相关联的图标或链接来“喜欢”或以其他方式签发该广告。作为另一示例而非限制,广告可以使用户能够搜索(例如,通过执行查询来搜索)与广告商相关的内容。类似地,用户可以与另一用户共享广告(例如,通过网络系统1902)、或者对与广告相关联的事件进行回应(RSVP)(例如,通过网络系统1902)。另外或作为替代,广告可以包括针对用户的社交网络系统环境。作为示例而非限制,广告可以显示关于网络系统1902内的用户的朋友的信息,该用户的朋友已经采取了与广告的主题相关联的动作。
在特定实施例中,网络系统1902可以确定各种社交图谱实体彼此间的社交图谱亲和度(在可以称为“亲和度(affinity)”)。亲和度可以表示与在线社交网络相关联的特定对象之间的关系强度或者感兴趣程度,这些特定对象例如为用户、概念、内容、动作、广告、与在线社交网络相关联的其他对象、或它们的任何合适的组合。还可以确定关于与第三方系统1908或其他合适系统相关联的对象的亲和度。可以为每个用户、主题或内容类型建立对社交图谱实体的总体亲和度。该总体亲和度可以基于对与社交图谱实体相关联的动作或关系的持续监测而改变。尽管本公开描述了以特定方式确定特定亲和度,但本公开考虑了以任何合适的方式确定任何合适的亲和度。
在特定实施例中,网络系统1902可以使用亲和度系数(在本文中可以称为“系数”)来测量或量化社交图谱亲和度。该系数可以表示或量化与在线社交网络相关联的特定对象之间的关系的强度。该系数还可以表示基于用户对动作的兴趣来测量用户将执行特定动作的预测概率的概率或函数。以这种方式,可以基于用户的先前动作来预测用户的未来动作,其中,可以至少部分地基于用户的动作历史来计算该系数。可以使用系数来预测任何数量的、在在线社交网络内部或外部的动作。作为示例而非限制,这些动作可以包括:各种类型的通信(例如,发送消息、发布内容或评论内容);各种类型的观察动作(例如,访问或查看资料页面、媒体或其他合适的内容);关于两个或更多个社交图谱实体的各种类型的一致性信息(例如,在同一群组中、在同一照片中被标记、在同一的位置处签到或定期去同一事件);或其他适当的动作。尽管本公开描述了以特定方式测量亲和度,但本公开考虑了以任何合适的方式测量亲和度。
在特定实施例中,网络系统1902可以使用各种因素来计算系数。这些因素例如可以包括用户动作、对象之间的关系类型、位置信息、其他合适的因素、或它们的任意组合。在特定实施例中,当计算系数时,可以对不同的因素施加不同的权重。每个因素的权重可以是静态的、或者这些权重可以例如根据用户、关系类型、动作类型、用户位置等改变。可以根据这些因素的权重对这些因素的等级进行组合,以确定用户的总体系数。作为示例而非限制,可以为特定用户动作分配等级和权重这两者,同时为与特定用户动作相关联的关系分配等级和相关权重(例如,使得权重合计为100%)。为了计算用户对于特定对象的系数,分配给用户动作的等级例如可以包括总体系数的60%,而分配给用户与对象之间的关系的等级可以包括总体系数的40%。在特定实施例中,当确定用于计算系数的各种因素的权重时,网络系统1902可以考虑各种变量,这些变量例如为,信息被访问以来的时间、衰减因子、访问频率、与信息的关系或关于被访问信息的对象的关系、与连接到对象的社交图谱实体的关系、用户动作的短期平均值或长期平均值、用户反馈、其他合适的变量、或它们的任意组合。作为示例而非限制,系数可以包括衰减因子,该衰减因子使特定动作提供的信号强度随时间衰减,使得在计算系数时,越早的动作越相关。可以基于对系数所基于的动作的持续追踪,来持续更新等级和权重。可以采用任何类型的过程或算法,来对每个因素的等级以及分配给这些因素的权重进行分配、组合、平均等。在特定实施例中,网络系统1902可以使用根据历史动作和过去的用户响应而训练的机器学习算法、或者通过将用户暴露于各种选项并且测量响应而从用户获得的数据来确定系数。尽管本公开描述了以特定方式计算系数,但是本公开考虑了以任何合适的方式计算系数。
在特定实施例中,网络系统1902可以基于用户的动作来计算系数。网络系统1902可以在在线社交网络、第三方系统1908、其他合适系统或它们的任意组合上监视这种动作。可以追踪或监测任何合适类型的用户动作。典型的用户动作包括查看资料页面、创建或发布内容、与内容交互、加入群组、列出并确认出席事件、在位置处签到、喜欢特定页面、创建页面、以及执行促进社交行为的其他任务。在特定实施例中,网络系统1902可以基于用户对特定类型内容的动作来计算系数。该内容可以与在线社交网络、第三方系统1908或另一合适的系统相关联。该内容可以包括用户、资料页面、帖子、新闻内容、头条、即时消息、聊天室对话、电子邮件、广告、图片、视频、音乐、其他合适的对象或它们的任意组合。网络系统1902可以对用户的动作进行分析,以确定多个动作中的一个或多个动作是否指示对主题、内容、其他用户等的亲和度。作为示例而非限制,如果用户可能频繁发布与“咖啡”或其变型相关的内容,则网络系统1902可以确定该用户相对于概念“咖啡”具有较高的系数。可以为特定动作或特定动作类型分配比其他动作更高的权重和/或等级,更高的权重和/或等级可以影响所计算的总体系数。作为示例而非限制,如果第一用户向第二用户发送电子邮件,则该动作的权重或等级可能高于在第一用户仅查看第二用户的用户资料页面的情况下的权重或等级。
在特定实施例中,网络系统1902可以基于特定对象之间的关系类型来计算系数。参考社交图谱2000,网络系统1902可以在计算系数时,对连接特定用户节点2002和概念节点2004的边2006的数量和/或类型进行分析。作为示例而非限制,与通过朋友类型边连接的多个用户节点2002相比,通过配偶类型边(表示两个用户已结婚)连接的用户节点2002可以被分配更高的系数。换言之,取决于分配给特定用户的动作和关系的权重,可以确定关于用户配偶的内容的总体亲和度要高于关于用户朋友的内容的总体亲和度。在特定实施例中,用户与另一对象的关系可以影响用户动作关于计算该对象的系数的权重和/或等级。作为示例而非限制,如果用户在第一照片中被标记,但该用户仅喜欢第二照片,则网络系统1902可以确定用户相对于第一照片的系数高于用户相对于第二照片的系数,因为具有与内容的标记类型关系可以被分配比具有与内容的喜欢类型关系更高的权重和/或等级。在特定实施例中,网络系统1902可以基于一个或多个第二用户与特定对象的关系,来计算第一用户的系数。换言之,其他用户与对象的连接和系数可能会影响第一用户与该对象的系数。作为示例而非限制,如果第一用户连接到一个或多个第二用户、或者对于一个或多个第二用户具有高系数,并且这些第二用户连接到特定对象或对于特定对象具有高系数,则网络系统1902可以确定第一用户对于该特定对象也应该具有相对高的系数。在特定实施例中,该系数可以基于特定对象之间的疏离度。较低的系数可以表示第一用户将要共享对用户(该用户在社交图谱2000中间接连接到该第一用户)的内容对象的兴趣的可能性降低。作为示例而非限制,在社交图谱2000中更近的社交图谱实体(即,更小的疏离度)可以比在社交图谱2000中更远的实体具有更高的系数。
在特定实施例中,网络系统1902可以基于位置信息来计算系数。在地理上更靠近彼此的对象可以被认为相比于更远的对象而更加彼此相关或对彼此更加感兴趣。在特定实施例中,用户对于特定对象的系数可以基于该对象的位置与关联于该用户的当前位置(或者用户的客户端设备1906的位置)的接近度。第一用户可能对更靠近该第一用户的其他用户或概念更加感兴趣。作为示例而非限制,如果用户距离机场一英里并且距离加油站两英里,则网络系统1902可以基于机场与用户的接近度,来确定用户对于机场比对于加油站具有更高的系数。
在特定实施例中,网络系统1902可以基于系数信息执行关于用户的特定动作。该系数可以用于基于用户对动作的兴趣来预测该用户是否将执行该特定动作。当生成或向用户呈现任何类型的对象(例如,广告、搜索结果、新闻内容、媒体、消息、通知或其他合适的对象)时,可以使用系数。在适当的情况下,该系数还可以用于对这些对象进行排名和排序。以这种方式,网络系统1902可以提供与用户的兴趣和当前环境相关的信息,从而增加他们将找到这种感兴趣的信息的可能性。在特定实施例中,网络系统1902可以基于系数信息生成内容。可以基于特定于一用户的系数来提供或选择内容对象。作为示例而非限制,该系数可以用于生成针对用户的媒体,其中,可以向用户呈现该用户相对于媒体对象具有较高的总体系数的媒体。作为另一示例而非限制,该系数可以用于生成针对用户的广告,其中,可以向用户呈现该用户相对于广告对象具有较高的总体系数的广告。在特定实施例中,网络系统1902可以基于系数信息生成搜索结果。可以基于与关于查询用户的搜索结果相关联的系数,来对针对特定用户的搜索结果进行评分或排名。作为示例而非限制,在搜索结果页面上,与具有较高系数的对象相对应的搜索结果的排名可以高于与具有较低系数的对象对应的结果的排名。
在特定实施例中,网络系统1902可以响应于对来自特定系统或过程的系数请求来计算系数。为了预测用户在给定情况下可能采取的可能动作(或者可能是该动作的主题),任何过程都可以请求所计算的针对用户的系数。该请求还可以包括用于计算系数的各种因素使用的一组权重。该请求可以来自在线社交网络上运行的过程、来自第三方系统1908(例如,经由API或其他通信信道)、或者来自另一合适的系统。响应于该请求,网络系统1902可以计算系数(或者,在系数信息先前已经被计算和存储的情况下,访问该系数信息)。在特定实施例中,网络系统1902可以测量关于特定过程的亲和度。不同的过程(在线社交网络的内部和外部的过程这两者)可以请求特定对象或一组对象的系数。网络系统1902可以提供与请求亲和度测量的特定过程相关的亲和度的测量结果。以这种方式,每个过程接收针对不同背景定制的亲和度测量结果,在该背景下,过程将使用该亲和度测量结果。
与社交图谱亲和度以及亲和度系数相结合,特定实施例可以利用于2006年8月11日提交的第11/503093号美国专利申请、于2010年12月22日提交的第12/977027号美国专利申请、于2010年12月23日提交的第12/978265号美国专利申请、以及于2012年10月01日提交的第20/632869号美国专利申请中公开的一个或多个系统、部件、元件、功能、方法、动作或步骤,上述专利申请中的每个专利申请均通过引用被结合。
在特定实施例中,在线社交网络的多个内容对象中的一个或多个内容对象可以与隐私设置相关联。可以以任何合适的方式存储对象的隐私设置(或“访问设置”),这些方式例如为与该对象相关联、以授权服务器中的索引的方式、另一合适的方式、或它们的任何组合。对象的隐私设置可以指定可以如何使用在线社交网络来访问(例如,查看或共享)对象(或与该对象相关联的特定信息)。在对象的隐私设置允许特定用户访问该对象的情况下,该对象可以被描述为相对于该用户是“可见的”。作为示例而非限制,在线社交网络的用户可以指定用户资料页面的隐私设置,该隐私设置标识可以访问用户资料页面上的工作经验信息的一组用户,从而拒绝其他用户访问该信息。在特定实施例中,隐私设置可以指定不应被允许访问与对象相关联的某些信息的用户的“黑名单”。换言之,黑名单可以指定一个或多个用户或实体,对于这些用户和实体,对象是不可见的。作为示例而非限制,用户可以指定不能访问与用户相关联的相册的一组用户,从而拒绝这些用户访问该相册(同时也可能允许不在该组用户内的某些用户访问该相册)。在特定实施例中,隐私设置可以与特定的社交图谱元素相关联。社交图谱元素(例如,节点或边)的隐私设置可以指定可以如何使用在线社交网络来访问社交图谱元素、与社交图谱元素相关联的信息、或与社交图谱元素相关联的内容对象。作为示例而非限制,与特定照片相对于的特定概念节点2004可以具有如下隐私设置:该隐私设置指定了照片仅可以由照片中所标记的用户及其朋友访问。在特定实施例中,隐私设置可以允许用户选择让或不让其动作被网络系统1902记录或与其他系统(例如,第三方系统1908)共享。在特定实施例中,与对象相关联的隐私设置可以指定允许访问或拒绝访问的任何合适的粒度。作为示例而非限制,可以为以下用户指定访问或拒绝访问:特定用户(例如,仅我、我的室友和我的领导)、在特定疏离度内的用户(例如,朋友、或朋友的朋友)、用户群组(例如,游戏俱乐部、我的家庭)、用户网络(例如,特定雇主的雇员、特定大学的学生或校友)、所有用户(“公共”)、无用户(“私人”)、第三方系统1908的用户、特定应用程序(例如,第三方应用程序、外部网站)、其他合适的用户或实体或它们的任何组合。尽管本公开描述了以特定方式使用特定隐私设置,但是本公开考虑了以任何合适的方式使用任何合适的隐私设置。
在特定实施例中,一个或多个服务器可以是用于实施隐私设置的授权/隐私服务器。响应于来自用户(或其他实体)的、对存储在数据存储库中的特定对象的请求,网络系统1902可以向数据存储区发送对该对象的请求。该请求可以标识与该请求相关联的用户,并且如果授权服务器基于与对象相关联的隐私设置确定了该用户被授予了访问该对象的权限,则可以仅向该用户(或该用户的客户端设备1906)发送所请求的对象。如果请求用户未被授予访问该对象的权限,则授权服务器可以阻止从数据存储库中检索所请求的对象,或者可以阻止向用户发送所请求的对象。在搜索查询上下文中,如果查询用户被授予了访问对象的权限,则该对象可以仅作为搜索结果被生成。换言之,对象必须具有对查询用户可见的可见性。如果对象具有对用户不可见的可见性,则可以从搜索结果中排除掉该对象。尽管本公开描述了以特定方式实施隐私设置,但是本公开考虑了以任何合适的方式实施隐私设置。
参考前述说明书中的特定示例性实施例对前述说明书进行了描述。参考本文中论述的细节描述了本公开的各种实施例和方面,并且各附图示出了各种实施例。以上的描述和附图均是说明性的,且不应被解释为限制。描述了许多具体细节以提供对各种实施例的透彻理解。
在不脱离附加或替代实施例的精神或基本特征的情况下,可以以其他特定形式实施这些附加或替代实施例。所描述的实施例在所有方面仅被认为是说明性的而非限制性的。因此,本发明的范围由所附权利要求而不是由前述描述来指示。落入权利要求的等同物的含义和范围内的所有变更均被包含在权利要求书的范围内。
Claims (20)
1.一种计算机实现的方法,包括:
通过客户端设备经由流式传输信道与参与者设备进行视频通话,所述流式传输信道是针对来自所述参与者设备的所述视频通话建立的;
使用从所述参与者设备接收到的视频数据,在所述客户端设备中显示的视频通话界面内,以网格视图显示格式来渲染描绘了视频的视频单元;以及
在检测到指示了请求显示定制视频通话界面布局的用户交互时,在所述客户端设备上的定制视频通话界面内以自视图显示格式来渲染所述视频单元。
2.根据权利要求1所述的计算机实现的方法,还包括:在检测到指示了请求显示所述定制视频通话界面布局的所述用户交互时,利用所述客户端设备所采集的附加视频数据,在所述定制视频通话界面内以所述自视图显示格式渲染描绘了附加视频的附加视频单元。
3.根据权利要求1所述的计算机实现的方法,其中,在所述定制视频通话界面内渲染所述视频单元包括:基于所述定制视频通话界面,修改所述视频单元的视觉属性。
4.根据权利要求3所述的计算机实现的方法,还包括:基于检测到与所述视频单元或所述定制视频通话界面的用户交互,来修改所述视频单元的所述视觉属性。
5.根据权利要求3所述的计算机实现的方法,其中,修改所述视频单元的所述视觉属性包括:改变所述视频单元的尺寸、形状或位置。
6.根据权利要求1所述的计算机实现的方法,其中,在所述定制视频通话界面内渲染所述视频单元包括:在所述视频通话期间,在所述定制视频通话界面内动态地移动所述视频单元。
7.根据权利要求1所述的计算机实现的方法,还包括:通过在所述定制视频通话界面内渲染交互式对象,来渲染所述定制视频通话界面。
8.根据权利要求7所述的计算机实现的方法,还包括:在接收到对应于所述交互式对象的用户交互时,对所述交互式对象进行更新。
9.根据权利要求7所述的计算机实现的方法,其中,所述交互式对象包括素材或交互式应用程序。
10.根据权利要求9所述的计算机实现的方法,其中,所述交互式应用程序包括电子绘画应用程序、电子文档应用程序、数字内容流式传输应用程序、视频游戏应用程序、音乐开发应用程序或媒体浏览库应用程序。
11.一种非暂态计算机可读介质,所述非暂态计算机可读介质存储有指令,所述指令在被至少一个处理器执行时,使所述至少一个处理器:
通过客户端设备经由流式传输信道与参与者设备进行视频通话,所述流式传输信道是针对来自所述参与者设备的所述视频通话建立的;
使用从所述参与者设备接收到的视频数据,在所述客户端设备上显示的视频通话界面内,以网格视图显示格式来渲染描绘了视频的视频单元;以及
在检测到指示了请求显示定制视频通话界面布局的用户交互时,在所述客户端设备上的定制视频通话界面内以自视图显示格式来渲染所述视频单元。
12.根据权利要求11所述的非暂态计算机可读介质,其中,在所述定制视频通话界面内渲染所述视频单元包括:
修改所述视频单元的视觉属性,其中,所述视频单元的所述视觉属性包括对应于所述视频单元的尺寸、形状或位置;
对所述视频单元应用移动属性,其中,所述移动属性包括对应于所述视频单元的质量值、碰撞边界、重力值、摩擦力值或弹力值。
13.根据权利要求12所述的非暂态计算机可读介质,还包括在被所述至少一个处理器执行时使所述至少一个处理器执行如下操作的指令:对来自所述视频数据的视频进行修改,以适配所述视频单元的修改后的视觉属性。
14.根据权利要求11所述的非暂态计算机可读介质,还包括在被所述至少一个处理器执行时使所述至少一个处理器执行如下操作的指令:通过在所述定制视频通话界面内渲染交互式对象,来渲染所述定制视频通话界面。
15.根据权利要求14所述的非暂态计算机可读介质,还包括在被所述至少一个处理器执行时使所述至少一个处理器执行如下操作的指令:在经由所述流式传输信道接收到来自所述参与者设备的、对应于所述交互式对象的用户交互时,对所述交互式对象进行更新,其中,所述流式传输信道包括视频数据信道和共享数据信道。
16.一种系统,包括:
至少一个处理器;以及
至少一个非暂态计算机可读介质,所述至少一个非暂态计算机可读介质包括指令,所述指令在被所述至少一个处理器执行时,使所述系统:
通过客户端设备经由流式传输信道与参与者设备进行视频通话,所述流式传输信道是针对来自所述参与者设备的所述视频通话建立的;
使用从所述参与者设备接收到的视频数据,在所述客户端设备上显示的视频通话界面内,以网格视图显示格式来渲染描绘了视频的视频单元;以及
在检测到指示了请求显示定制视频通话界面布局的用户交互时,在所述客户端设备上的定制视频通话界面内以自视图显示格式来渲染所述视频单元。
17.根据权利要求16所述的系统,其中,在所述定制视频通话界面内渲染所述视频单元包括:基于所述定制视频通话界面,修改所述视频单元的视觉属性、或对所述视频单元应用移动属性。
18.根据权利要求17所述的系统,还包括在被所述至少一个处理器执行时使所述系统执行如下操作的指令:
利用从所述参与者设备接收到的所述视频数据,根据所述视频生成视频纹理;以及
使所述视频纹理适配于修改后视频单元内。
19.根据权利要求16所述的系统,还包括在被所述至少一个处理器执行时使所述系统执行如下操作的指令:
通过在所述定制视频通话界面内渲染交互式对象来渲染所述定制视频通话界面,其中,所述交互式对象包括素材、电子绘画应用程序、电子文档应用程序、数字内容流式传输应用程序、视频游戏应用程序、音乐开发应用程序或媒体浏览库应用程序;以及
在接收到对应于所述交互式对象的用户交互时,对所述交互式对象进行更新。
20.根据权利要求16所述的系统,还包括在被所述至少一个处理器执行时使所述系统执行如下操作的指令:经由所述客户端设备的摄像头缓冲视图以所述自视图显示格式来渲染所述定制视频通话界面,以渲染与所述参与者设备对应的所述视频的视频单元。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/663,360 | 2022-05-13 | ||
US17/663,360 US20230368444A1 (en) | 2022-05-13 | 2022-05-13 | Rendering customized video call interfaces during a video call |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117061692A true CN117061692A (zh) | 2023-11-14 |
Family
ID=88663368
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310547486.XA Pending CN117061692A (zh) | 2022-05-13 | 2023-05-15 | 在视频通话期间渲染定制视频通话界面 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20230368444A1 (zh) |
CN (1) | CN117061692A (zh) |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102047704B1 (ko) * | 2013-08-16 | 2019-12-02 | 엘지전자 주식회사 | 이동 단말기 및 이의 제어 방법 |
US9762729B1 (en) * | 2016-05-12 | 2017-09-12 | Google Inc. | Caller preview for video calls |
CN110381282B (zh) * | 2019-07-30 | 2021-06-29 | 华为技术有限公司 | 一种应用于电子设备的视频通话的显示方法及相关装置 |
CN116723266A (zh) * | 2019-07-31 | 2023-09-08 | 华为技术有限公司 | 一种悬浮窗口的管理方法及相关装置 |
US12022225B2 (en) * | 2022-03-04 | 2024-06-25 | Qualcomm Incorporated | Video calling experience for multiple subjects on a device |
US20230300292A1 (en) * | 2022-03-15 | 2023-09-21 | Meta Platforms, Inc. | Providing shared augmented reality environments within video calls |
US11949527B2 (en) * | 2022-04-25 | 2024-04-02 | Snap Inc. | Shared augmented reality experience in video chat |
-
2022
- 2022-05-13 US US17/663,360 patent/US20230368444A1/en active Pending
-
2023
- 2023-05-15 CN CN202310547486.XA patent/CN117061692A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
US20230368444A1 (en) | 2023-11-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11257170B2 (en) | Using three-dimensional virtual object models to guide users in virtual environments | |
US10712811B2 (en) | Providing a digital model of a corresponding product in a camera feed | |
CN110710232B (zh) | 在相机取景器显示内容中用增强现实元素来促使网络系统通信的方法、系统以及计算机可读存储介质 | |
US10032303B2 (en) | Scrolling 3D presentation of images | |
US11069094B1 (en) | Generating realistic makeup in a digital video stream | |
US20180300917A1 (en) | Discovering augmented reality elements in a camera viewfinder display | |
US20230300292A1 (en) | Providing shared augmented reality environments within video calls | |
US11611714B2 (en) | Generating customized, personalized reactions to social media content | |
US9830388B2 (en) | Modular search object framework | |
JP2018524679A (ja) | 電子通信スレッドにおける拡張メッセージ要素の提供 | |
US10476937B2 (en) | Animation for image elements in a display layout | |
US20160110901A1 (en) | Animation for Image Elements in a Display Layout | |
US11557093B1 (en) | Using social connections to define graphical representations of users in an artificial reality setting | |
EP2940607A1 (en) | Enhanced search results associated with a modular search object framework | |
US20230281940A1 (en) | Providing context-aware avatar editing within an extended-reality environment | |
EP4240012A1 (en) | Utilizing augmented reality data channel to enable shared augmented reality video calls | |
KR102376079B1 (ko) | 임베디드 비디오를 열람하기 위한 방법 및 시스템 | |
CN111164653A (zh) | 在社交网络系统上生成动画 | |
EP3499447A1 (en) | Providing a digital model of corresponding product in a camera feed | |
US20230368444A1 (en) | Rendering customized video call interfaces during a video call | |
US20230360282A1 (en) | Generating shared augmented reality scenes utilizing video textures from video streams of video call participants | |
CN116781853A (zh) | 在视频通话中提供共享增强现实环境 | |
US20230162447A1 (en) | Regionally enhancing faces in a digital video stream | |
US20230370408A1 (en) | Generating and surfacing messaging thread specific and content-based effects | |
TW202335713A (zh) | 在延展實境環境內提供情境感知的虛擬化身編輯 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |