[go: up one dir, main page]

CN116601921A - Session Privacy for Third-Party Applications - Google Patents

Session Privacy for Third-Party Applications Download PDF

Info

Publication number
CN116601921A
CN116601921A CN202180078741.XA CN202180078741A CN116601921A CN 116601921 A CN116601921 A CN 116601921A CN 202180078741 A CN202180078741 A CN 202180078741A CN 116601921 A CN116601921 A CN 116601921A
Authority
CN
China
Prior art keywords
application
processes
data
xrce
environment
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
Application number
CN202180078741.XA
Other languages
Chinese (zh)
Inventor
L·R·德利茨·森特诺
J·P·塞拉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Apple Inc
Original Assignee
Apple Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Apple Inc filed Critical Apple Inc
Priority claimed from PCT/US2021/050468 external-priority patent/WO2022066483A1/en
Publication of CN116601921A publication Critical patent/CN116601921A/en
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • H04L12/1813Arrangements for providing special services to substations for broadcast or conference, e.g. multicast for computer conferences, e.g. chat rooms
    • H04L12/1827Network arrangements for conference optimisation or adaptation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/40Support for services or applications
    • H04L65/403Arrangements for multi-party communication, e.g. for conferences
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • H04L65/1083In-session procedures
    • H04L65/1089In-session procedures by adding media; by removing media
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/14Systems for two-way working
    • H04N7/15Conference systems
    • H04N7/157Conference systems defining a virtual conference space and using avatars or agents

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Business, Economics & Management (AREA)
  • General Business, Economics & Management (AREA)
  • General Engineering & Computer Science (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

本公开涉及用于在多用户通信会话中协作的技术,包括:在第一设备处,接收在与第二设备的多用户通信会话中启动第一应用程序的请求;在该多用户通信会话中呈现该第一应用程序的环境;通过该多用户通信会话的一个或多个进程从该第一用户接收数据,该数据包括输入数据和第一通信数据;通过该一个或多个进程向该第一应用程序提供该输入数据;通过该一个或多个进程向该第二设备提供该第一通信数据;通过该一个或多个进程从该第二设备接收第二通信数据;以及通过该一个或多个进程在该第一应用程序的该环境中呈现该第二通信数据,其中该第一应用程序被限制访问该第一通信数据和该第二通信数据。

The present disclosure relates to techniques for cooperating in a multi-user communication session, comprising: at a first device, receiving a request to launch a first application in a multi-user communication session with a second device; in the multi-user communication session Presenting the environment of the first application program; receiving data from the first user through one or more processes of the multi-user communication session, the data including input data and first communication data; sending data to the first user through the one or more processes An application program provides the input data; provides the first communication data to the second device through the one or more processes; receives second communication data from the second device through the one or more processes; and through the one or more processes Processes present the second communication data in the environment of the first application, wherein the first application is restricted from accessing the first communication data and the second communication data.

Description

第三方应用程序的会话隐私Session Privacy for Third-Party Applications

背景技术Background technique

本公开整体涉及多用户环境。更具体地,但不作为限制,本公开涉及用于在多用户通信环境诸如扩展现实(XR)环境(XRE)的上下文中执行的第三方应用程序的会话隐私的技术和系统。This disclosure generally relates to multi-user environments. More specifically, but not by way of limitation, the present disclosure relates to techniques and systems for session privacy for third-party applications executing in the context of a multi-user communication environment, such as an extended reality (XR) environment (XRE).

一些设备能够生成和呈现XRE。XRE可包括人们经由电子系统感知和/或与其交互的完全或部分模拟的环境。在XRE中,跟踪人的物理运动的子集或其表示,并且作为响应,以符合至少一个物理定律的方式调节在XRE中模拟的一个或多个虚拟对象的一个或多个特性。一些XRE允许多个用户在XRE中相互交互。然而,所需要的是在XRE中托管应用程序同时管理用户的私人信息的技术。Some devices are capable of generating and rendering XRE. XREs may include fully or partially simulated environments that humans perceive and/or interact with via electronic systems. In XRE, a subset or representation of the person's physical motion is tracked, and in response, one or more properties of one or more virtual objects simulated in XRE are adjusted in a manner consistent with at least one law of physics. Some XREs allow multiple users to interact with each other within the XRE. What is needed, however, is a technology to host applications in XRE while managing users' private information.

附图说明Description of drawings

图1以框图形式示出了根据一个或多个实施方案的简化系统图。Figure 1 shows, in block diagram form, a simplified system diagram according to one or more embodiments.

图2示出了根据一个或多个实施方案的示例性操作环境的图。Figure 2 illustrates a diagram of an exemplary operating environment, according to one or more implementations.

图3A和图3B是示出根据本公开的各方面的用于将应用程序体验带到多用户通信扩展现实环境的接口的线条绘图。3A and 3B are line drawings illustrating interfaces for bringing an application experience to a multi-user communication extended reality environment in accordance with aspects of the present disclosure.

图4是示出根据本公开的各方面的应用程序体验的图。4 is a diagram illustrating an application experience according to aspects of the present disclosure.

图5是示出根据本公开的各方面的用于在多用户通信会话中协作的技术的流程图。5 is a flow diagram illustrating techniques for cooperating in a multi-user communication session in accordance with aspects of the present disclosure.

图6A至图6B示出了用于在各种扩展现实技术中使用的示例性系统。6A-6B illustrate example systems for use in various augmented reality technologies.

具体实施方式Detailed ways

本公开涉及供用户在扩展现实环境(XRE)内协作以共享应用程序体验的技术。某些应用程序可由多个用户在XRE内体验。在某些情况下,期望某些应用程序呈现应用程序环境来代替XRE。例如,游戏应用程序或多用户绘画应用程序可呈现它们自己的环境来代替XRE,同时保留XRE的某些元素,诸如头像和参与者之间的语音通信。在某些情况下,可能存在关于允许应用程序潜在地能够访问语音通信、参与者的视觉表示或关于应用程序体验的参与者的可识别信息的隐私问题。因此,期望允许应用程序呈现应用程序环境来代替XRE,同时防止应用程序访问潜在敏感的信息。This disclosure relates to techniques for users to collaborate within an extended reality environment (XRE) to share application experiences. Certain applications can be experienced within XRE by multiple users. In some cases, it is desirable for certain applications to present an application environment in place of XRE. For example, gaming applications or multi-user painting applications can present their own environments in place of XRE, while retaining certain elements of XRE, such as avatars and voice communication between participants. In some cases, there may be privacy concerns about allowing an application to potentially have access to voice communications, visual representations of participants, or identifiable information about participants experiencing an application experience. Accordingly, it would be desirable to allow applications to present application environments in place of XRE, while preventing applications from accessing potentially sensitive information.

人可以在不借助于电子设备的情况下与物理环境或物理世界交互以及/或者感知物理环境或物理世界。物理环境可包括物理特征,诸如物理对象或表面。物理环境的示例是包括物理植物和动物的物理森林。人可以通过各种手段(诸如听觉、视觉、味觉、触觉和嗅觉)直接感知物理环境以及/或者与物理环境交互。相比之下,人可以使用电子设备与完全或部分模拟的扩展现实(XR)环境交互以及/或者感知该扩展现实环境。该XR环境可以包括混合现实(MR)内容、增强现实(AR)内容、虚拟现实(VR)内容等等。利用XR系统,人的物理运动或其表示的一些可被跟踪,并且作为响应,能够以符合至少一个物理定律的方式调节在XR环境中模拟的虚拟对象的特征。例如,该XR系统可检测用户头部的移动,并调节呈现给用户的图形内容和听觉内容(类似于此类视图和声音在物理环境中是如何改变的)。又如,该XR系统可检测呈现XR环境的电子设备(例如,移动电话、平板计算机、膝上型计算机等)的移动,并调节呈现给用户的图形内容和听觉内容(类似于此类视图和声音在物理环境中是如何改变的)。在一些情形中,该XR系统可以响应于诸如物理运动的表示的其他输入(例如,语音命令)而调节图形内容的特征。A person can interact with and/or perceive the physical environment or the physical world without the aid of electronic devices. The physical environment may include physical features, such as physical objects or surfaces. An example of a physical environment is a physical forest including physical plants and animals. Humans can directly perceive and/or interact with the physical environment through various means such as hearing, vision, taste, touch and smell. In contrast, a human can use an electronic device to interact with and/or perceive a fully or partially simulated extended reality (XR) environment. The XR environment may include mixed reality (MR) content, augmented reality (AR) content, virtual reality (VR) content, and the like. Using an XR system, a person's physical motion, or some representation thereof, can be tracked, and in response, characteristics of a virtual object simulated in an XR environment can be adjusted in a manner consistent with at least one law of physics. For example, the XR system can detect the movement of the user's head and adjust the graphical and auditory content presented to the user (similar to how such views and sounds change in the physical environment). As another example, the XR system may detect movement of an electronic device (e.g., mobile phone, tablet, laptop, etc.) presenting an XR environment and adjust the graphical and auditory content presented to the user (similar to such visual and How sound changes in the physical environment). In some cases, the XR system may adjust characteristics of the graphical content in response to other inputs such as indications of physical motion (eg, voice commands).

许多不同类型的电子系统可使用户能够与XR环境交互和/或感知XR环境。示例的非排他性列表包括抬头显示器(HUD)、头戴式系统、基于投影的系统、具有集成显示能力的窗户或车辆挡风玻璃、形成为放置于用户眼睛上的透镜的显示器(例如,接触镜片)、头戴式受话器/耳机、具有触觉反馈或不具有触觉反馈的输入系统(例如,可穿戴或手持式控制器)、扬声器阵列、智能电话、平板计算机和台式计算机/膝上型计算机。头戴式系统可具有不透明显示器和一个或多个扬声器。其它头戴式系统可被配置为接受不透明外部显示器(例如,智能电话)。头戴式系统可包括用于捕获物理环境的图像或视频的一个或多个图像传感器、和/或用于捕获物理环境的音频的一个或多个麦克风。头戴式系统可具有透明或半透明显示器,而不是不透明显示器。透明或半透明显示器可具有媒介,光通过该媒介被引导到用户的眼睛。显示器可利用各种显示技术,例如uLED、OLED、LED、硅基液晶、激光扫描光源、数字光投影或其组合。光波导、光学反射器、全息图媒介、光学组合器及其组合或其它类似技术可用于媒介。在一些具体实施中,透明或半透明显示器可被选择性地控制而变得不透明。基于投影的系统可利用将图形图像投影到用户的视网膜上的视网膜投影技术。投影系统也可以将虚拟对象投影到物理环境中(例如,作为全息图或投影到物理表面上)。Many different types of electronic systems may enable a user to interact with and/or perceive an XR environment. A non-exclusive list of examples includes heads-up displays (HUDs), head-mounted systems, projection-based systems, windows or vehicle windshields with integrated display capabilities, displays formed as lenses placed over the user's eyes (e.g., contact lenses ), headsets/earphones, input systems with or without haptic feedback (eg, wearable or handheld controllers), speaker arrays, smartphones, tablet computers, and desktop/laptop computers. A head mounted system may have an opaque display and one or more speakers. Other head-mounted systems may be configured to accept opaque external displays (eg, smartphones). A head-mounted system may include one or more image sensors for capturing images or video of the physical environment, and/or one or more microphones for capturing audio of the physical environment. A head mounted system may have a transparent or translucent display instead of an opaque display. Transparent or translucent displays may have a medium through which light is directed to the user's eyes. Displays can utilize various display technologies such as uLEDs, OLEDs, LEDs, liquid crystal on silicon, laser scanning light sources, digital light projection, or combinations thereof. Optical waveguides, optical reflectors, holographic media, optical combiners and combinations thereof, or other similar technologies can be used for the media. In some implementations, transparent or translucent displays can be selectively controlled to become opaque. Projection-based systems may utilize retinal projection technology that projects graphic images onto the user's retina. Projection systems can also project virtual objects into the physical environment (eg, as holograms or onto physical surfaces).

出于本公开的目的,XR通信(XRC)会话是指XR多用户通信会话,诸如两个或更多个设备正在参与的XRE。For purposes of this disclosure, an XR communication (XRC) session refers to an XR multi-user communication session, such as an XRE in which two or more devices are participating.

出于本公开的目的,本地XRC设备是指XRC会话中的所描述的或由所描述的用户控制的当前设备。For the purposes of this disclosure, a local XRC device refers to the current device in the XRC session described or controlled by the described user.

出于本公开的目的,共址XRC设备是指共享物理环境和XRC会话的两个设备,使得共址设备的用户可体验相同的物理对象和XR对象。For the purposes of this disclosure, a co-located XRC device refers to two devices that share a physical environment and an XRC session such that users of the co-located devices experience the same physical objects and XR objects.

出于本公开的目的,远程XRC设备是指位于与当前本地XRC设备分开的物理环境中的辅助设备。在一个或多个实施方案中,该远程XRC设备可为XRC会话的参与者。For the purposes of this disclosure, a remote XRC device refers to an auxiliary device located in a separate physical environment from the current local XRC device. In one or more implementations, the remote XRC device may be a participant in an XRC session.

出于本公开的目的,共享虚拟元素是指对XR会话中的参与者可见或XR会话中的参与者能够以其他方式体验的XR对象。For the purposes of this disclosure, a shared virtual element refers to an XR object that is visible to or otherwise experienced by participants in an XR session.

出于本公开的目的,XRC计算环境(XRCE)是指能够托管应用程序的XRC会话的计算环境或容器。XRCE使得应用程序能够在XRC会话内运行。在某些情况下,XRCE可使得XRC会话的用户能够与被托管的应用程序在XRC会话内交互。For purposes of this disclosure, an XRC Computing Environment (XRCE) refers to a computing environment or container capable of hosting an XRC session of an application. XRCE enables applications to run within an XRC session. In some cases, XRCE may enable users of an XRC session to interact with hosted applications within the XRC session.

出于本公开的目的,XRCE实例是指所描述的或者由所描述的用户控制的当前设备的XRCE。XRCE实例可允许用户参与XRC会话并且在XRC会话中运行应用程序。For purposes of this disclosure, an XRCE instance refers to the XRCE of the current device described or controlled by the described user. An XRCE instance may allow users to participate in XRC sessions and run applications in XRC sessions.

出于本公开的目的,第二XRCE实例是指XRC会话中的除了本地XRCE实例之外的辅助设备的XRCE或者由第二用户控制的XRCE。第二XRCE实例可以是远程的或共址的。For the purposes of this disclosure, a second XRCE instance refers to an XRCE of an auxiliary device in an XRC session other than the local XRCE instance or an XRCE controlled by a second user. The second XRCE instance can be remote or co-located.

出于本公开的目的,XRCE应用程序是指能够在XRCE的上下文中执行的应用程序。For the purposes of this disclosure, an XRCE application refers to an application capable of executing within the context of XRCE.

出于本公开的目的,第二XRCE应用程序是指XRC会话中的除了本地XRCE应用程序之外的辅助设备的XRCE应用程序或者由第二用户控制的XRCE应用程序。第二XRCE应用程序可以是远程的或共址的。For the purposes of this disclosure, a second XRCE application refers to an XRCE application of an auxiliary device in an XRC session other than the native XRCE application or an XRCE application controlled by a second user. The second XRCE application can be remote or co-located.

在以下描述中,为了解释的目的,阐述了很多具体细节以便提供对所公开构思的彻底理解。作为该描述的一部分,本公开的附图中的一些附图以框图形式表示结构和设备,以避免模糊所公开构思的新颖方面。为了清晰起见,可能未对实际具体实施的所有特征进行描述。另外,作为本说明书的一部分,本公开的一些附图可以流程图的形式提供。任何特定流程图中的框可以特定顺序呈现。然而,应当理解,任何给定流程图的特定顺序仅用于举例说明一个实施方案。在其他实施方案中,可删除流程图中描绘的各种元件中的任何元件,或者可以不同的顺序,或甚至同时执行图示的操作序列。此外,其他实施方案可包括未被示为流程图的一部分的附加步骤。此外,本公开中所使用的语言已主要被选择用于可读性和指导性目的,并且可能没有被选择为划定或限定本发明的主题,从而诉诸于所必需的权利要求以确定此类发明主题。在本公开中提到“一个实施方案”或“实施方案”意指结合该实施方案所述的特定特征、结构或特性被包括在所公开主题的至少一个实施方案中,并且多次提到“一个实施方案”或“实施方案”不应被理解为必然地全部涉及相同的实施方案。In the following description, for purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the concepts disclosed. As part of this description, some of the drawings of the present disclosure represent structures and devices in block diagram form in order to avoid obscuring the novel aspects of the disclosed concepts. In the interest of clarity, not all features of an actual implementation may be described. Additionally, some of the drawings of this disclosure may be provided in the form of flowcharts as part of this specification. The blocks in any particular flowchart may be presented in a particular order. It should be understood, however, that the specific order of any given flowchart is for illustrative purposes only of one embodiment. In other embodiments, any of the various elements depicted in the flowcharts may be deleted, or the illustrated sequence of operations may be performed in a different order, or even simultaneously. Furthermore, other embodiments may include additional steps not shown as part of the flowchart. In addition, the language used in this disclosure has been chosen primarily for readability and instructional purposes, and may not have been chosen to delineate or delimit the inventive subject matter, so that recourse to the claims is necessary to determine such subject of invention. Reference in this disclosure to "one embodiment" or "an embodiment" means that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment of the disclosed subject matter, and multiple references to " One embodiment" or "an embodiment" should not be read as necessarily all referring to the same embodiment.

应当理解,在任何实际具体实施的开发中(如在任何软件和/或硬件开发项目中那样),必须要作出许多决策以实现开发者的特定目标(例如,符合与系统和商务相关的约束条件),并且这些目标在不同具体实施之间可能不同。还应理解,此类开发工作可能复杂且耗时,但是尽管如此,对于在受益于本公开而设计和实施图形建模系统的那些普通技术人员而言,这仍然是他们的日常工作。It should be appreciated that in the development of any actual implementation (as in any software and/or hardware development project), many decisions must be made to achieve the developer's specific goals (e.g., compliance with system and business-related constraints ), and these goals may vary between implementations. It should also be appreciated that such development efforts might be complex and time-consuming, but nonetheless constitute a daily task for those of ordinary skill in designing and implementing graphical modeling systems having the benefit of this disclosure.

参见图1,示出了根据本公开的一个或多个实施方案的通过网络105可通信地连接到附加的电子设备110和网络存储装置115的电子设备100的简化框图。电子设备100可为多功能设备诸如移动电话、平板计算机、个人数字助理、便携式音乐/视频播放器、可穿戴设备、头戴式系统、基于投影的系统、基站、膝上型计算机、台式计算机、网络设备或诸如本文所述的任何其他电子系统的一部分。电子设备100、附加的电子设备110和/或网络存储装置115可附加地或另选地包括一个或多个附加的设备(诸如服务器设备、基站、附件设备等等),在这些附加的设备中可容纳各种功能,或者可在这些设备上分布各种功能。诸如网络105的例示性网络包括但不限于本地网络(诸如通用串行总线(USB)网络)、组织的局域网以及广域网(诸如互联网)。根据一个或多个实施方案,电子设备100用于参与XRC会话。应当理解,电子设备100、附加的电子设备110和网络存储装置115内的各种部件和功能可不同地分布在设备上或者可分布在附加的设备上。Referring to FIG. 1 , a simplified block diagram of an electronic device 100 communicatively connected to an additional electronic device 110 and a network storage device 115 via a network 105 is shown, in accordance with one or more embodiments of the present disclosure. The electronic device 100 may be a multifunction device such as a mobile phone, tablet computer, personal digital assistant, portable music/video player, wearable device, head mounted system, projection based system, base station, laptop computer, desktop computer, part of a network device or any other electronic system such as those described herein. Electronic device 100, additional electronic device 110, and/or network storage 115 may additionally or alternatively include one or more additional devices (such as server devices, base stations, accessory devices, etc.) in which Various functions can be accommodated or distributed across the devices. Exemplary networks such as network 105 include, but are not limited to, local networks such as a Universal Serial Bus (USB) network, an organization's local area network, and wide area networks such as the Internet. According to one or more embodiments, the electronic device 100 is configured to participate in an XRC session. It should be appreciated that various components and functions within electronic device 100, additional electronic device 110, and network storage 115 may be distributed across the devices differently or may be distributed across additional devices.

电子设备100可包括一个或多个处理器125,诸如中央处理单元(CPU)。处理器125可包括片上系统(诸如存在于移动设备中的片上系统),并且可包括一个或多个专用图形处理单元(GPU)。另外,处理器125可包括相同或不同类型的多个处理器。电子设备100还可包括存储器135。存储器135可包括一个或多个不同类型的存储器,该一个或多个不同类型的存储器可用于结合处理器125执行设备功能。例如,存储器135可包括高速缓存、ROM、RAM或能够存储计算机可读代码的任何种类的暂态或非暂态计算机可读存储介质。存储器135可存储用于由处理器125执行的各种编程模块,包括XR模块165、XRCE模块170和其他各种应用程序175。电子设备100还可包括存储装置130。存储装置130可包括一个或多个非暂态计算机可读存储介质,该非暂态存储介质包括例如磁盘(固定硬盘、软盘和可移动磁盘)和磁带、光学介质(例如CD-ROM和数字视频光盘(DVD))以及半导体存储设备(例如电可编程只读存储器(EPROM)和电可擦除可编程只读存储器(EEPROM))。根据一个或多个实施方案,存储装置130可被配置为存储内容项160。Electronic device 100 may include one or more processors 125, such as central processing units (CPUs). Processor 125 may include a system-on-chip, such as found in mobile devices, and may include one or more dedicated graphics processing units (GPUs). Additionally, the processor 125 may include multiple processors of the same or different types. The electronic device 100 may also include a memory 135 . Memory 135 may include one or more different types of memory that may be used in conjunction with processor 125 to perform device functions. For example, memory 135 may include cache, ROM, RAM, or any kind of transitory or non-transitory computer-readable storage medium capable of storing computer-readable code. Memory 135 may store various programming modules for execution by processor 125 , including XR module 165 , XRCE module 170 and other various application programs 175 . The electronic device 100 may further include a storage device 130 . Storage device 130 may include one or more non-transitory computer-readable storage media including, for example, magnetic disks (fixed, floppy, and removable) and magnetic tape, optical media such as CD-ROM and digital video compact disk (DVD)), and semiconductor storage devices such as electrically programmable read-only memory (EPROM) and electrically erasable programmable read-only memory (EEPROM). According to one or more embodiments, storage device 130 may be configured to store content item 160 .

电子设备100还可包括一个或多个相机140或其他传感器145,诸如可根据其确定场景深度的深度传感器。在一个或多个实施方案中,一个或多个相机140中的每个相机可为传统RGB相机或深度相机。此外,相机140可包括立体相机或其他多相机系统、飞行时间相机系统等。电子设备100还可包括显示器155。显示设备155可利用数字光投影、OLED、LED、uLED、硅基液晶、激光扫描光源或这些技术的任意组合。媒介可以是光学波导、全息图媒介、光学组合器、光学反射器、或它们的任意组合。在一个实施方案中,透明或半透明显示器可被配置为选择性地变得不透明。基于投影的系统可以采用将图形图像投影到人的视网膜上的视网膜投影技术。投影系统也可以被配置为将虚拟对象投影到物理环境中,例如作为全息图或在物理表面上。The electronic device 100 may also include one or more cameras 140 or other sensors 145, such as a depth sensor from which a depth of a scene may be determined. In one or more implementations, each of the one or more cameras 140 may be a conventional RGB camera or a depth camera. Additionally, cameras 140 may include stereo cameras or other multi-camera systems, time-of-flight camera systems, and the like. The electronic device 100 may also include a display 155 . Display device 155 may utilize digital light projection, OLED, LED, uLED, liquid crystal on silicon, laser scanning light source, or any combination of these technologies. The media can be optical waveguides, holographic media, optical combiners, optical reflectors, or any combination thereof. In one embodiment, a transparent or translucent display can be configured to selectively become opaque. Projection-based systems may employ retinal projection techniques that project graphic images onto a person's retina. The projection system may also be configured to project virtual objects into a physical environment, for example as a hologram or onto a physical surface.

根据一个或多个实施方案,存储器135可包括一个或多个模块,该一个或多个模块包括能够由处理器125执行以执行功能的计算机可读代码。该存储器可包括,例如可用来为本地XRC设备提供XRE的XR模块165。XRCE模块170可生成支持XRE的环境。例如,XRCE模块170可提供可由XRE和/或被托管的应用程序使用以与电子设备100的操作系统(OS)和/或硬件交接的服务和/或应用程序编程接口。XRC会话可以是支持电子设备100以及附加的电子设备110的共享体验的计算环境。According to one or more embodiments, the memory 135 may include one or more modules including computer readable code executable by the processor 125 to perform functions. This memory may include, for example, an XR module 165 that may be used to provide XRE to a local XRC device. The XRCE module 170 can generate an XRE-enabled environment. For example, the XRCE module 170 may provide services and/or application programming interfaces that may be used by the XRE and/or hosted applications to interface with the operating system (OS) and/or hardware of the electronic device 100 . An XRC session may be a computing environment that supports a shared experience of the electronic device 100 and the additional electronic device 110 .

存储器135还可包括OS模块180,用于支持电子设备100的基本功能和管理电子设备的硬件。OS模块180提供应用程序175可在其中执行的环境。在某些情况下,XRCE模块170和XR模块165可在OS模块180的上下文中运行。在其他情况下,XRCE模块170和XR模块165可与OS模块180并行地或替代OS模块处理电子设备100的基本功能和管理电子设备的硬件。XRCE模块170还提供应用程序175可在其中执行的环境。应用程序175可包括例如可由多个设备(诸如电子设备100和附加的电子设备110)在XRC会话中体验的计算机应用程序。The memory 135 may also include an OS module 180 for supporting basic functions of the electronic device 100 and managing hardware of the electronic device. The OS module 180 provides an environment in which the application program 175 can execute. In some cases, XRCE module 170 and XR module 165 may run within the context of OS module 180 . In other cases, the XRCE module 170 and the XR module 165 may process basic functions of the electronic device 100 and manage hardware of the electronic device in parallel with the OS module 180 or instead of the OS module. XRCE module 170 also provides an environment in which application programs 175 can execute. Applications 175 may include, for example, computer applications that may be experienced by multiple devices, such as electronic device 100 and additional electronic device 110, in an XRC session.

虽然电子设备100被描述为包括上述众多部件,但在一个或多个实施方案中,各种部件可分布在多个设备上。因此,尽管本文相对于所描绘的特定系统描述了某些调用和传输,但在一个或多个实施方案中,各种调用和传输可基于不同分布的功能而被不同地引导。另外,可使用附加部件,也可组合任何部件的功能的某些组合。Although electronic device 100 is described as including the numerous components described above, in one or more implementations, various components may be distributed across multiple devices. Thus, although certain calls and transfers are described herein with respect to the particular system depicted, in one or more implementations, various calls and transfers may be directed differently based on different distributions of functionality. Additionally, additional components may be used, and some combination of the functionality of any of the components may be combined.

图2示出了根据一个或多个实施方案的示例性操作环境的图。尽管示出了相关特征,但本领域的普通技术人员将从本公开中认识到,为简洁起见并且为了不模糊本文所公开的具体实施中的示例的更多相关方面,未示出各种其它特征。为此,作为非限制性示例,操作环境240包括第一物理环境,而操作环境250包括第二物理环境。Figure 2 illustrates a diagram of an exemplary operating environment, according to one or more implementations. While relevant features are shown, those of ordinary skill in the art will recognize from this disclosure that various other feature. To this end, operating environment 240 includes, by way of non-limiting example, a first physical environment and operating environment 250 includes a second physical environment.

图2示出了根据一个或多个实施方案的示例性操作环境的图。尽管示出了相关特征,但本领域的普通技术人员将从本公开中认识到,为简洁起见并且为了不模糊本文所公开的具体实施中的示例的更多相关方面,未示出各种其它特征。为此,作为非限制性示例,操作环境240包括第一物理环境,而操作环境250包括第二物理环境。Figure 2 illustrates a diagram of an exemplary operating environment, according to one or more implementations. While relevant features are shown, those of ordinary skill in the art will recognize from this disclosure that various other feature. To this end, operating environment 240 includes, by way of non-limiting example, a first physical environment and operating environment 250 includes a second physical environment.

如图2所示,第一环境240包括正在使用第一电子设备200的第一用户220,并且第二环境250包括正在使用第二电子设备210的第二用户232。在一个或多个实施方案中,第一电子设备200和第二电子设备210包括移动设备,诸如手持设备、可穿戴设备等等。As shown in FIG. 2 , the first environment 240 includes a first user 220 who is using the first electronic device 200 , and the second environment 250 includes a second user 232 who is using the second electronic device 210 . In one or more embodiments, the first electronic device 200 and the second electronic device 210 include mobile devices, such as handheld devices, wearable devices, and the like.

在一个或多个实施方案中,第一电子设备200和第二电子设备210经由网络205互相通信。网络205的示例可包括例如互联网、广域网(WAN)、局域网(LAN)等。在一个或多个实施方案中,第一电子设备200和第二电子设备210可参与XRC会话。In one or more implementations, the first electronic device 200 and the second electronic device 210 communicate with each other via the network 205 . Examples of network 205 may include, for example, the Internet, a wide area network (WAN), a local area network (LAN), and the like. In one or more implementations, the first electronic device 200 and the second electronic device 210 may participate in an XRC session.

尽管电子设备200和第二电子设备210可参与共同XRC会话,但是XRE在每个设备上可不同地渲染。如图所示,电子设备200可描绘环境240的物理对象。如图所示,物理桌子222可在显示器242上被描绘为虚拟桌子224。在一个或多个实施方案中,显示器242可以是透视显示器,并且虚拟桌子224可只是通过显示器242的物理桌子222的视图。Although the electronic device 200 and the second electronic device 210 may participate in a common XRC session, the XRE may be rendered differently on each device. As shown, electronic device 200 may depict physical objects of environment 240 . As shown, physical table 222 may be depicted on display 242 as virtual table 224 . In one or more implementations, display 242 may be a see-through display, and virtual table 224 may simply be a view of physical table 222 through display 242 .

电子设备200的显示器242还可包括对应于物理环境250中的用户232的头像226。出于本公开的目的,头像可包括用户的虚拟表示。该头像可描绘对应用户232的实时动作,包括移动、经更新位置和/或与XRC会话内的各种物理部件和/或虚拟部件的交互。头像可以模拟或可以不模拟用户的物理特性,并且可以模拟或可以不模拟用户的面部表情。The display 242 of the electronic device 200 may also include an avatar 226 corresponding to the user 232 in the physical environment 250 . For purposes of this disclosure, an avatar may include a virtual representation of a user. The avatar may depict real-time actions of the corresponding user 232, including movement, updated location, and/or interaction with various physical and/or virtual components within the XRC session. The avatar may or may not simulate the user's physical characteristics, and may or may not simulate the user's facial expressions.

根据一个或多个实施方案,XRCE可以是支持一个或多个XRCE应用程序或其他模块的XRC会话,该一个或多个XRCE应用程序或其他模块跨所有参与设备诸如电子设备200和第二电子设备210提供对象的描绘。如显示器242中所示,呈现面板230A是可对所有参与设备可见的虚拟对象的示例。According to one or more embodiments, XRCE may be an XRC session that supports one or more XRCE applications or other modules across all participating devices such as the electronic device 200 and the second electronic device 210 provides a depiction of the object. As shown in display 242, presentation panel 230A is an example of a virtual object that is visible to all participating devices.

作为示例,返回到环境250,第二电子设备210包括显示器252,在该显示器上描绘了呈现面板虚拟对象230B。应当理解,在一个或多个实施方案中,尽管相同的虚拟对象可跨所有参与设备可见,但是根据电子设备的位置、电子设备的取向或与电子设备200和210相关联的其他物理或虚拟特性和/或在显示器242和252内所描绘的XRCE可不同地渲染该虚拟对象。As an example, returning to environment 250, second electronic device 210 includes display 252 on which presentation panel virtual object 230B is depicted. It should be understood that, in one or more embodiments, although the same virtual object may be visible across all participating devices, depending on the position of the electronic device, the orientation of the electronic device, or other physical or virtual characteristics associated with the electronic devices 200 and 210 And/or the XRCE depicted within displays 242 and 252 may render the virtual object differently.

返回到环境250,XRC会话的另一个特性是,虽然虚拟对象可跨参与设备共享,但物理世界可看起来是不同的。因此,物理椅子234被描绘为虚拟椅子236。如上所述,以及如一个或多个实施方案,显示器252可以是透视显示器,并且虚拟椅子236可以是通过透视显示器252的物理椅子234的视图。此外,第二电子设备210描绘了对应于物理环境240内的用户220的头像238。Returning to environment 250, another characteristic of XRC sessions is that while virtual objects may be shared across participating devices, the physical world may appear different. Accordingly, physical chair 234 is depicted as virtual chair 236 . As noted above, and as one or more embodiments, display 252 may be a see-through display, and virtual chair 236 may be a view of physical chair 234 through see-through display 252 . Additionally, the second electronic device 210 depicts an avatar 238 corresponding to the user 220 within the physical environment 240 .

根据一个或多个实施方案,诸如呈现面板230的虚拟对象可结合XRCE应用程序被渲染。在一个或多个实施方案中,可在XRCE内执行多个XRCE应用程序。例如,XRCE可将XRCE应用程序作为虚拟对象托管在XRCE的XRE内。虽然被托管在XRCE内,但XRCE应用程序可作为与XRCE的一个或多个进程分开的进程来执行。如下文进一步讨论,应用程序可被配置为在XRCE内或外运行。例如,基于应用程序正在其中执行的操作环境或上下文,应用程序可包括多个操作模式,例如XRCE模式和非XRCE模式。可确定应用程序诸如通过应用程序编程接口(API)正在XRCE的上下文内运行并且以XRCE模式操作。当在XRCE外运行时,应用程序可以非XRCE模式运行。例如,当在电子设备的OS的上下文中而不是在XRCE中运行时,应用程序以非XRCE模式运行。如本文所用,XRCE应用程序或被托管的应用程序还可指以XRCE模式运行的应用程序以及仅被配置为在XRCE的上下文内运行的应用程序。XRCE可以类似于操作系统的方式提供XRCE应用程序可在其中运行的容器或计算环境。这些容器可作为虚拟对象呈现给用户,使得XRCE应用程序看起来是在窗口中、表面上或另一虚拟对象上执行。According to one or more embodiments, virtual objects such as presentation panel 230 may be rendered in conjunction with an XRCE application. In one or more implementations, multiple XRCE applications can be executed within XRCE. For example, XRCE may host XRCE applications as virtual objects within XRCE's XRE. Although hosted within XRCE, an XRCE application may execute as a process separate from one or more processes of XRCE. As discussed further below, applications can be configured to run inside or outside of XRCE. For example, an application may include multiple modes of operation, such as an XRCE mode and a non-XRCE mode, based on the operating environment or context in which the application is executing. The application can be determined to be running within the context of XRCE and operate in XRCE mode, such as through an application programming interface (API). When running outside of XRCE, applications can run in non-XRCE mode. For example, an application runs in a non-XRCE mode when running in the context of the OS of the electronic device but not in XRCE. As used herein, an XRCE application or hosted application can also refer to an application running in XRCE mode as well as an application configured to run only within the context of XRCE. XRCE can provide a container or computing environment in which XRCE applications can run, in a manner similar to an operating system. These containers can be presented to the user as virtual objects, making it appear that the XRCE application is executing in a window, on a surface, or on another virtual object.

在某些情况下,XRCE应用程序在特定XRCE实例的上下文中执行。例如,与第一设备相关联的第一用户可和与第二设备相关联的第二用户参与XRC会话。该示例中的XRCE应用程序在第一设备和第二设备两者上执行。基于来自第一用户的输入,第一设备可执行在本地XRCE实例中托管的第一XRCE应用程序。第一XRCE应用程序可与在第二设备上执行的在第二XRCE实例中托管的第二XRCE应用程序共享数据。执行在特定XRCE实例的上下文内托管的应用程序帮助为XRCE内的本地用户提供隐私措施。在某些情况下,XRCE实例可在本地设备中执行。在其他情况下,XRCE实例可至少部分地在网络或被托管的设备上执行。In some cases, XRCE applications execute in the context of a specific XRCE instance. For example, a first user associated with a first device may participate in an XRC session with a second user associated with a second device. The XRCE application in this example executes on both the first device and the second device. Based on input from the first user, the first device may execute a first XRCE application hosted in a local XRCE instance. The first XRCE application may share data with a second XRCE application executing on the second device hosted in the second XRCE instance. Execution of applications hosted within the context of a specific XRCE instance helps provide privacy measures for native users within XRCE. In some cases, XRCE instances can be executed locally on the device. In other cases, an XRCE instance may execute at least partially on a network or hosted device.

在某些情况下,XRC会话的用户可能期望与XRC会话的其他用户共享XRCE应用程序的应用程序体验。例如,一组用户可能想要一起体验XRCE应用程序,诸如游戏、群画应用程序、生产力应用程序等,作为XRC会话内的共享XRCE应用程序体验。在某些情况下,应用程序可被配置为在XRCE内或外运行。例如,应用程序可确定其诸如通过API正在XRCE的上下文内运行,并且以XRCE模式操作。允许XRCE应用程序访问来自XRCE的数据可引起隐私问题。例如,可能不期望允许XRCE应用程序访问如共享XRCE应用程序体验中的用户之间的语音数据、头像或其他通信数据。为了帮助保持隐私,XRCE应用程序可在XRCE应用程序可接收的数据的类型方面受到限制。In some cases, a user of an XRC session may desire to share the application experience of the XRCE application with other users of the XRC session. For example, a group of users may want to experience an XRCE application together, such as a game, group drawing application, productivity application, etc., as a shared XRCE application experience within an XRC session. In some cases, applications can be configured to run inside or outside of XRCE. For example, an application may determine that it is running within the context of XRCE, such as through an API, and operate in XRCE mode. Allowing XRCE applications to access data from XRCE can raise privacy concerns. For example, it may not be desirable to allow an XRCE application to access voice data, avatars, or other communication data between users as in a shared XRCE application experience. To help maintain privacy, XRCE applications may be limited in the types of data that XRCE applications may receive.

图3A是示出根据本公开的各方面的用于将XRCE应用程序体验带到XRCE的XRCE接口300的线条绘图。在某些情况下,XRCE 302可将视图显示到共享XRC会话中。XRCE 302可包括接口,诸如用户可利用来选择要带到XRCE 302中的应用程序的菜单、手势、语音命令或其他接口。在该示例中,XRCE 302包括用于将应用程序体验带到XRCE 302的菜单304。菜单304可被细分,例如,以便对可用的XRCE应用程序进行分类。在该示例中,选择游戏类别306,该游戏类别显示可被带到XRCE 302中的可用应用程序的列表308。3A is a line drawing illustrating an XRCE interface 300 for bringing the XRCE application experience to XRCE in accordance with aspects of the present disclosure. In some cases, XRCE 302 may display views into a shared XRC session. XRCE 302 may include interfaces such as menus, gestures, voice commands, or other interfaces that a user may utilize to select applications to be brought into XRCE 302 . In this example, XRCE 302 includes a menu 304 for bringing the application experience to XRCE 302 . Menu 304 may be subdivided, for example, to categorize available XRCE applications. In this example, the games category 306 is selected, which displays a list 308 of available applications that can be brought into the XRCE 302 .

在某些情况下,XRCE可例如作为后台应用程序运行。例如,用户可切换出活动XRCE并切换到另一个应用程序以浏览和/或选择带到XRC会话中的应用程序。图3B是示出根据本公开的各方面的用于将应用程序体验带到XRC会话350的另一个接口的线条绘图。在该示例中,用于共享内容的接口在XRCE的上下文之外执行。作为示例,用户可在他们的设备上浏览应用程序或内容并且访问用于例如使用按钮、长按、选择内容项等将应用程序体验带到XRCE中的接口。在该示例中,用户可选择应用程序352并且访问与应用程序352相关联的上下文菜单354。上下文菜单354包括将应用程序体验带到XRCE中的菜单项356。在某些情况下,用户可从XRCE内访问XRCE应用程序,而XRCE应用程序对于XRCE的其他用户不可见。在XRCE不运行的某些情况下,可启动XRCE实例,并且然后将应用程序带到XRCE中。In some cases, XRCE may run, for example, as a background application. For example, a user may switch out of an active XRCE and switch to another application to browse and/or select an application to bring into the XRC session. 3B is a line drawing illustrating another interface for bringing application experience to an XRC session 350 in accordance with aspects of the present disclosure. In this example, the interface for sharing content executes outside the context of XRCE. As an example, a user may browse an application or content on their device and access an interface for bringing the application experience into XRCE, eg, using a button, long press, selecting a content item, and the like. In this example, a user may select application 352 and access context menu 354 associated with application 352 . Context menu 354 includes menu item 356 that brings the application experience into XRCE. In some cases, users can access XRCE applications from within XRCE, while XRCE applications are not visible to other users of XRCE. In some cases where XRCE is not running, an instance of XRCE can be started and the application then brought into XRCE.

在某些情况下,XRCE可包括应用程序可能够利用的功能。作为示例,第一用户可与第二用户和第三用户处于XRC会话中,并且第一用户可开始与第二用户的XRCE应用程序的应用程序体验。可使用XRCE应用程序正在XRC会话的上下文中执行的指示诸如使用标志或开关来调用或启动XRCE应用程序。在某些情况下,启动XRC会话中的多个用户之间的XRCE应用程序体验可启动每个用户的本地设备上的XRCE应用程序的实例。例如,XRC会话可调用参与应用程序体验的每个用户的每个本地设备上的XRCE应用程序。应用程序可访问允许应用程序利用由XRCE会话提供的特征的一个或多个API。例如,XRCE应用程序可能够调用由XRCE提供的API来访问由XRCE提供的功能。在某些情况下,XRCE可提供当XRCE应用程序在XRCE的上下文中执行时XRCE应用程序可使用的数据传输、联网、音频、视频和头像处理功能。继续该示例,在应用程序体验中的参与者诸如第二用户不具有XRCE应用程序的情况下,XRCE应用程序诸如在第一用户的本地设备上执行的XRCE应用程序可利用XRCE的联网功能并且传输或者使第二设备以其他方式获取XRCE应用程序的版本以供在应用程序体验期间使用。在某些情况下,与完全XRCE应用程序相比,XRCE应用程序的版本可提供减少的或不同的功能。然后,与第一用户相关联的XRCE应用程序的实例可使用由XRCE提供的联网功能来向XRCE应用程序的其他实例传输数据。In some cases, XRCE may include functionality that applications may be able to take advantage of. As an example, a first user may be in an XRC session with a second user and a third user, and the first user may start an application experience with the second user's XRCE application. The XRCE application may be invoked or launched with an indication that the XRCE application is executing within the context of an XRC session, such as using a flag or switch. In some cases, initiating an XRCE application experience among multiple users in an XRC session may launch an instance of the XRCE application on each user's local device. For example, an XRC session may invoke an XRCE application on each local device of each user participating in the application experience. The application can access one or more APIs that allow the application to take advantage of the features provided by the XRCE session. For example, an XRCE application may be able to call an API provided by XRCE to access functionality provided by XRCE. In some cases, XRCE may provide data transfer, networking, audio, video, and avatar processing functionality that an XRCE application may use when the XRCE application executes within the context of XRCE. Continuing with the example, where a participant in the application experience, such as a second user, does not have an XRCE application, an XRCE application, such as an XRCE application executing on the first user's local device, can take advantage of XRCE's networking capabilities and transmit Or cause the second device to otherwise obtain a version of the XRCE application for use during the application experience. In some cases, a version of an XRCE application may provide reduced or different functionality compared to a full XRCE application. The instance of the XRCE application associated with the first user can then use the networking functionality provided by XRCE to transfer data to other instances of the XRCE application.

根据本公开的各方面,来自XRCE应用程序的图形数据可与视觉表示数据一起被并入到XRC会话的视频流中。视觉表示数据是表示用户的图形数据,诸如头像和/或来自用户的视频数据。视觉表示数据例如由XRCE实例收集并且分布在参与XRC会话的其他设备之间。在某些情况下,视觉表示数据可由另一个XRCE应用程序处理。该其他XRCE应用程序可集成到XRCE中,例如,作为分开来的XRCE的第一方逻辑部件,例如以允许发送单独的更新,或者作为第一或第三方的可信应用程序。According to aspects of the present disclosure, graphical data from an XRCE application may be incorporated into a video stream of an XRC session along with visual representation data. Visual representation data is graphical data representing the user, such as an avatar and/or video data from the user. Visual representation data is eg collected by an XRCE instance and distributed among other devices participating in the XRC session. In some cases, the visual representation data can be processed by another XRCE application. This other XRCE application may be integrated into XRCE, for example, as a first party logical component of a separate XRCE, eg to allow individual updates to be sent, or as a first or third party trusted application.

用户可与XRE内的头像相关联。在XRE中,生成头像,将头像打包到视频流中,并且将头像分发给XRC会话的其他参与者。头像的动画和/或应用于头像的效果连同如在XRC会话中的参与者之间的视频(如果有的话)也可由XRCE实例处理并且可基于视频流中的信息。Users can be associated with an avatar within XRE. In XRE, an avatar is generated, packaged into a video stream, and distributed to other participants of the XRC session. Animation of the avatar and/or effects applied to the avatar, as well as video (if any) between participants in an XRC session can also be handled by the XRCE instance and can be based on information in the video stream.

当XRCE应用程序在XRCE实例的上下文中运行时,诸如在应用程序体验期间,由XRCE应用程序提供的图形可例如经由API传递到XRCE实例,并且作为XRC会话的视频流的一部分被发送。在某些情况下,XRCE应用程序的图形环境可被显示为XRC会话的图形环境的一部分。在其他情况下,在应用程序体验期间,XRCE实例的图形环境可被XRCE应用程序的图形环境替换。图4是示出根据本公开的各方面的应用程序体验400的图。在该示例性应用程序体验400中,代替XRCE实例的图形环境,示出了XRCE应用程序402的图形环境。在某些情况下,由XRCE应用程序生成的图形数据可例如经由API发送到XRCE实例并且与视觉表示数据诸如头像一起集成到XRC会话的视频流中。根据本公开的各方面,XRCE实例继续将表示第一用户404和第二用户406的头像绘制到XRCE应用程序402的图形环境中。例如,在两个用户正在参与XRCE体验的情况下,XRCE应用程序可提供在何处显示表示这两个用户的两个头像的位置信息。头像的动画、效果等可由XRCE实例以与在XRC的图形环境中呈现的那些头像的动画、效果等类似的方式在XRCE应用程序402的图形环境中呈现。例如,XRCE可具有对本地用户的头像信息的访问权限,并且XRCE可在对应于由XRCE应用程序提供的位置信息的位置处渲染表示本地用户的头像。类似地,本地XRCE可从第二XRCE应用程序接收头像信息。头像信息可包含用于渲染和/或以动画方式显示表示第二用户的第二头像的信息。XRCE应用程序可在对应于由XRCE应用程序提供的位置信息的位置处渲染第二头像。在某些情况下,第二XRCE应用程序还可提供一个或多个头像的位置信息。在某些情况下,可基于参与应用程序体验来调节或更改与用户自身相关联的动画或用户自身的图形表示。When an XRCE application is running in the context of an XRCE instance, such as during an application experience, graphics provided by the XRCE application may be passed to the XRCE instance, eg, via an API, and sent as part of the video stream of the XRC session. In some cases, the XRCE application's graphical environment may be displayed as part of the XRC session's graphical environment. In other cases, the graphical environment of the XRCE instance may be replaced by the graphical environment of the XRCE application during the application experience. FIG. 4 is a diagram illustrating an application experience 400 according to aspects of the present disclosure. In this example application experience 400, instead of the graphical environment of an XRCE instance, a graphical environment of an XRCE application 402 is shown. In some cases, graphics data generated by an XRCE application may be sent to the XRCE instance, eg, via an API, and integrated into the video stream of the XRC session, along with visual representation data such as an avatar. According to aspects of the present disclosure, the XRCE instance proceeds to draw avatars representing the first user 404 and the second user 406 into the graphical environment of the XRCE application 402 . For example, where two users are participating in an XRCE experience, the XRCE application may provide location information where to display two avatars representing the two users. Avatar animations, effects, etc. may be rendered by the XRCE instance in the graphical environment of the XRCE application 402 in a manner similar to those of the avatar animations, effects, etc. rendered in the graphical environment of XRCE. For example, XRCE may have access to the local user's avatar information, and XRCE may render the avatar representing the local user at a location corresponding to the location information provided by the XRCE application. Similarly, the native XRCE may receive avatar information from a second XRCE application. The avatar information may include information for rendering and/or animating a second avatar representing the second user. The XRCE application may render the second avatar at a location corresponding to the location information provided by the XRCE application. In some cases, the second XRCE application may also provide location information for one or more avatars. In some cases, an animation associated with the user himself or a graphical representation of the user himself may be adjusted or changed based on the engaging application experience.

当接收视频流时,输入视频流由本地XRCE实例处理,并且XRCE应用程序的图形数据可由XRCE实例直接呈现,或者XRCE应用程序的图形数据可从接收到的视频流中提取并且传递给XRCE应用程序以进行处理和呈现。由于XRCE应用程序只具有对由XRCE应用程序生成或使用的图形数据的访问权限,因此XRCE应用程序不能访问用户的视觉表示。When a video stream is received, the input video stream is processed by the local XRCE instance, and the graphics data of the XRCE application can be directly rendered by the XRCE instance, or the graphics data of the XRCE application can be extracted from the received video stream and passed to the XRCE application for processing and rendering. Since the XRCE application only has access to graphical data generated or used by the XRCE application, the XRCE application does not have access to the user's visual representation.

在某些情况下,XRCE应用程序可能够控制视觉表示数据的各方面。例如,XRCE应用程序可请求XRCE实例不显示用户的图形表示。在此类情况下,可隐藏用户的头像和/或其他图形表示。作为另一示例,XRCE应用程序可向XRCE实例提供用于图形表示的位置信息和/或大小信息。这帮助允许XRCE应用程序指示将例如用户头像定位在XRCE应用程序环境内的何处以帮助优化应用程序体验。在该示例中,第一用户404跨由XRCE应用程序生成的游戏板与第二用户406相对地定位。在某些情况下,XRCE应用程序可改变或更新用户的图形表示的位置和/或大小。在某些情况下,XRCE应用程序可在每个参与者的基础上提供位置信息。例如,XRCE应用程序可能够经由XRCE实例访问关于用户的非个人可识别信息,诸如用户标识符。然后可为每个用户标识符分别提供用户的图形表示的位置和/或大小信息。该非个人可识别信息可在应用程序体验的实例之间改变或随机化。在某些情况下,XRCE应用程序可包括XRCE应用程序内的登录或账户功能。在此类情况下,参与者可登录或创建账户,并且XRCE应用程序可能够将由XRCE实例提供的非个人可识别信息与账户或登录相关联。In some cases, an XRCE application may be able to control aspects of the visual representation of the data. For example, an XRCE application may request that the XRCE instance not display a graphical representation of the user. In such cases, the user's avatar and/or other graphical representation may be hidden. As another example, an XRCE application may provide an XRCE instance with position information and/or size information for a graphical representation. This helps to allow the XRCE application to dictate where to position eg a user avatar within the XRCE application environment to help optimize the application experience. In this example, a first user 404 is positioned opposite a second user 406 across a game board generated by the XRCE application. In some cases, the XRCE application may change or update the position and/or size of the user's graphical representation. In some cases, XRCE applications may provide location information on a per-participant basis. For example, an XRCE application may be able to access non-personally identifiable information about a user, such as a user identifier, via an XRCE instance. Position and/or size information for the graphical representation of the user may then be provided separately for each user identifier. This non-personally identifiable information may change or be randomized between instances of the application experience. In some cases, an XRCE application may include login or account functionality within the XRCE application. In such cases, the participant may log in or create an account, and the XRCE application may be able to associate non-personally identifiable information provided by the XRCE instance with the account or login.

根据某些方面,与用户相关联或表示用户的音频内容也可由XRCE应用程序的XRCE实例处理。例如,由XRCE应用程序生成的音频数据诸如音乐、声音效果、交互声音等可由本地XRCE应用程序传递到特定设备的XRCE实例。在某些情况下,XRCE应用程序还可将关于音频数据的元数据诸如定时信息、方向信息等传递给XRCE实例以帮助控制音频数据的回放。然后,XRCE实例可向参与应用程序体验的XRC会话的其他设备传输音频的表示或指示,以便由其他设备再现。应用程序体验的参与者之间的语音音频数据可由XRCE实例处理。例如,在XRC会话期间,从XRC会话的参与者接收语音音频数据以生成音频流,该音频流适当地在参与XRC会话的设备之间传递并由参与XRC会话的设备回放。在应用程序体验期间,XRCE实例继续处理语音音频数据。由XRCE应用程序生成的音频数据可例如由API发送到XRCE实例并且集成到音频流中。例如,XRCE应用程序可提供音频数据,该音频数据可被合并到XRCE实例的音频流中并且被发送到其他参与者以用于回放。所接收的音频流可由XRCE实例处理,并且XRCE应用程序的音频数据可或者由XRCE实例直接呈现,或者音频数据可从所接收的音频流提取并且传递到XRCE应用程序以供回放,而不需要XRCE应用程序访问音频流的其余部分中的其他音频数据诸如语音音频数据。由于XRCE应用程序只具有对由XRCE应用程序生成或使用的音频数据的访问权限,因此XRCE应用程序不能访问应用程序体验的参与者之间的语音音频数据。在某些情况下,XRCE应用程序可能够例如通过向XRCE提供方向性、静音或其他信息来控制语音音频数据的各方面。可在逐个参与者的基础上或者为应用程序体验的所有参与者提供该信息。在某些情况下,语音音频数据可由另一XRCE应用程序处理和/或传输。该其他XRCE应用程序可集成到XRCE中,例如作为XRCE的第一部分逻辑部件,或者作为第一或第三方的可信应用程序。According to certain aspects, audio content associated with or representing a user may also be processed by an XRCE instance of an XRCE application. For example, audio data such as music, sound effects, interactive sounds, etc. generated by an XRCE application can be delivered by a native XRCE application to a particular device's XRCE instance. In some cases, the XRCE application can also pass metadata about the audio data, such as timing information, direction information, etc., to the XRCE instance to help control the playback of the audio data. The XRCE instance may then transmit a representation or indication of the audio to other devices participating in the XRC session experienced by the application for reproduction by the other devices. Speech audio data between participants in an application experience can be handled by an XRCE instance. For example, during an XRC session, speech audio data is received from participants of the XRC session to generate an audio stream that is suitably passed between and played back by the devices participating in the XRC session. During the application experience, the XRCE instance continues to process speech audio data. Audio data generated by an XRCE application can eg be sent by an API to an XRCE instance and integrated into an audio stream. For example, an XRCE application can provide audio data that can be incorporated into the audio stream of the XRCE instance and sent to other participants for playback. The received audio stream can be processed by an XRCE instance, and the XRCE application's audio data can either be rendered directly by the XRCE instance, or the audio data can be extracted from the received audio stream and passed to the XRCE application for playback, without XRCE The application accesses other audio data such as speech audio data in the remainder of the audio stream. Since an XRCE application only has access to audio data generated or consumed by the XRCE application, the XRCE application does not have access to speech audio data between participants in the application experience. In some cases, the XRCE application may be able to control aspects of the speech audio data, such as by providing directional, mute, or other information to the XRCE. This information can be provided on a participant-by-participant basis or for all participants in the application experience. In some cases, speech audio data may be processed and/or transmitted by another XRCE application. This other XRCE application may be integrated into XRCE, for example as a first part of XRCE's logic, or as a first or third party trusted application.

图5是示出根据本公开的各方面的用于在多用户通信会话500中协作的技术的流程图。在框502处,接收在与第二设备的多用户通信会话中启动第一应用程序的请求。例如,多个用户可在XRC会话中协作,并且第一用户可使用XRCE应用程序开始应用程序体验。第一用户可例如经由XRCE的接口诸如菜单来启动XRCE应用程序。在其他情况下,第一用户可例如经由OS接口或应用程序接口去激活第一设备上的XRCE实例以及启动XRCE应用程序并且开始应用程序体验。在框504处,在多用户通信会话中呈现第一应用程序的环境。例如,可在XRC会话内呈现XRCE应用程序。在某些情况下,可呈现XRCE应用程序的环境来代替XRC会话的XRE。在框506处,多用户通信会话的一个或多个进程接收数据,该数据包括输入数据和第一通信数据。例如,第一用户可向XRCE应用程序提供控制输入以及语音信息。该输入可由XRCE实例接收。在一些情况下,多用户通信会话可使用一个或多个进程来执行。例如,多用户通信会话可包括渲染图形接口的进程、处理通信的另一进程等。在一些情况下,多用户通信会话可包括用于与一个或多个XRCE应用程序交接的进程。该用于与一个或多个XRCE应用程序交接的进程可与多用户通信会话的其他进程分开。例如,第一进程可向多用户通信会话的其他设备提供通信数据和/或从其接收通信数据,并且另一分开的进程可从多用户通信会话中的XRCE应用程序的环境接收信息和/或呈现该环境。在一些情况下,通信数据可由集成到XRCE中的一个或多个进程处理,例如,作为XRCE的第一部分逻辑部件。在框508处,一个或多个进程向第一应用程序提供输入数据。例如,控制输入可由XRCE实例提供给XRCE应用程序。在框510处,一个或多个进程向第二设备提供第一通信数据。例如,XRCE实例可将接收到的语音输入数据传输到参与XRC会话中的应用程序体验的另一设备。语音输入数据可由第一设备接收,例如由第一设备的麦克风接收。语音输入可由XRCE实例处理并且被提供给XRC会话而不被提供给XRCE应用程序。在框512处,一个或多个进程从第二设备接收第二通信数据。例如,XRCE实例可从参与XRC会话中的应用程序体验的另一设备接收语音数据。在框514处,一个或多个进程在第一应用程序的环境中呈现第二通信数据,其中第一应用程序被限制访问第一通信数据和第二通信数据。例如,XRCE实例将接收到的语音数据呈现给第一用户,而不将接收到的语音数据提供给XRCE应用程序。接收到的语音数据可例如由第一设备的一个或多个扬声器呈现。5 is a flow diagram illustrating techniques for cooperating in a multi-user communication session 500 in accordance with aspects of the present disclosure. At block 502, a request to launch a first application in a multi-user communication session with a second device is received. For example, multiple users can collaborate in an XRC session, and a first user can begin an application experience using an XRCE application. The first user may launch the XRCE application, for example, via an interface of XRCE, such as a menu. In other cases, the first user may deactivate the XRCE instance on the first device and launch the XRCE application and begin the application experience, eg, via the OS interface or application program interface. At block 504, an environment of a first application is presented in a multi-user communication session. For example, an XRCE application can be presented within an XRC session. In some cases, the environment of the XRCE application may be presented in place of the XRE of the XRC session. At block 506, one or more processes of the multi-user communication session receive data including input data and first communication data. For example, a first user may provide control inputs as well as voice information to the XRCE application. This input can be received by an XRCE instance. In some cases, a multi-user communication session may be performed using one or more processes. For example, a multi-user communication session may include a process that renders a graphical interface, another process that handles communications, and so on. In some cases, a multi-user communication session may include a process for interfacing with one or more XRCE applications. The process for interfacing with one or more XRCE applications may be separate from other processes of the multi-user communication session. For example, a first process may provide communication data to and/or receive communication data from other devices of the multi-user communication session, and another separate process may receive information from and/or the environment of the XRCE application in the multi-user communication session render the environment. In some cases, the communication data may be handled by one or more processes integrated into XRCE, for example, as a first part logic component of XRCE. At block 508, the one or more processes provide input data to the first application. For example, control input may be provided by an XRCE instance to an XRCE application. At block 510, the one or more processes provide first communication data to a second device. For example, an XRCE instance may transmit received speech input data to another device participating in an application experience in an XRC session. Voice input data may be received by the first device, for example by a microphone of the first device. Speech input may be handled by an XRCE instance and provided to an XRC session but not to an XRCE application. At block 512, the one or more processes receive second communication data from the second device. For example, an XRCE instance may receive voice data from another device participating in an application experience in an XRC session. At block 514, the one or more processes present the second communication data in the environment of the first application program, wherein the first application program is restricted from accessing the first communication data and the second communication data. For example, the XRCE instance presents the received speech data to the first user without providing the received speech data to the XRCE application. The received speech data may be rendered, for example, by one or more speakers of the first device.

图6A和图6B描绘了用于各种扩展现实技术的示例性系统600。6A and 6B depict an example system 600 for various extended reality technologies.

在一些示例中,如图6A所示,系统600包括设备600a。设备600a包括各种部件,诸如处理器602、RF电路604、存储器606、图像传感器608、取向传感器610、麦克风612、位置传感器616、扬声器618、显示器620和触敏表面622。这些部件可选地通过设备600a的通信总线650进行通信。In some examples, as shown in Figure 6A, system 600 includes device 600a. Device 600a includes various components such as processor 602 , RF circuitry 604 , memory 606 , image sensor 608 , orientation sensor 610 , microphone 612 , position sensor 616 , speaker 618 , display 620 , and touch-sensitive surface 622 . These components optionally communicate over communication bus 650 of device 600a.

在一些示例中,系统600的元件在基站设备(例如,计算设备,诸如远程服务器、移动设备或膝上型计算机)中实现,并且系统600的其他元件在第二设备(例如,头戴式设备)中实现。在一些示例中,设备600A在基站设备或第二设备中实现。In some examples, elements of system 600 are implemented in a base station device (e.g., a computing device such as a remote server, mobile device, or laptop) and other elements of system 600 are implemented in a second device (e.g., a head-mounted device) ) is implemented. In some examples, device 600A is implemented in a base station device or a second device.

如图6B所示,在一些示例中,系统600包括诸如通过有线连接或无线连接进行通信的两个(或更多个)设备。第一设备600B(例如,基站设备)包括处理器602、RF电路604和存储器606。这些部件可选地通过设备600B的通信总线650进行通信。第二设备600C(例如,头戴式设备)包括各种部件,诸如处理器602、RF电路604、存储器606、图像传感器608、取向传感器610、麦克风612、位置传感器616、扬声器618、显示器620和触敏表面622。这些部件可选地通过设备600C的通信总线650进行通信。As shown in FIG. 6B , in some examples, system 600 includes two (or more) devices that communicate, such as through wired or wireless connections. The first device 600B (eg, base station device) includes a processor 602 , an RF circuit 604 and a memory 606 . These components optionally communicate over communication bus 650 of device 600B. The second device 600C (e.g., a head-mounted device) includes various components such as a processor 602, RF circuitry 604, memory 606, image sensor 608, orientation sensor 610, microphone 612, position sensor 616, speaker 618, display 620, and Touch-sensitive surface 622 . These components optionally communicate over communication bus 650 of device 600C.

系统600包括处理器602和存储器606。处理器602包括一个或多个通用处理器、一个或多个图形处理器、和/或一个或多个数字信号处理器。在一些示例中,存储器606是存储计算机可读指令的一个或多个非暂态计算机可读存储介质(例如,闪存存储器,随机存取存储器),该计算机可读指令被配置为由处理器602执行以执行下述技术。System 600 includes processor 602 and memory 606 . Processor 602 includes one or more general purpose processors, one or more graphics processors, and/or one or more digital signal processors. In some examples, memory 606 is one or more non-transitory computer-readable storage media (e.g., flash memory, random access memory) storing computer-readable instructions configured to be executed by processor 602 Execute to perform the technique described below.

系统600包括RF电路604。RF电路604可选地包括用于与电子设备、网络(诸如互联网、内联网)和/或无线网络(诸如蜂窝网络和无线局域网(LAN))通信的电路。RF电路604可选地包括用于使用近场通信和/或短程通信(诸如)进行通信的电路。System 600 includes RF circuitry 604 . RF circuitry 604 optionally includes circuitry for communicating with electronic devices, networks (such as the Internet, intranets), and/or wireless networks (such as cellular networks and wireless local area networks (LANs)). RF circuitry 604 optionally includes components for use with near-field communications and/or short-range communications such as ) circuits for communication.

系统600包括显示器620。显示器620可具有不透明显示器。显示器620可具有透明或半透明显示器,该透明或半透明显示器可结合基板,表示图像的光通过该基板被引导到个体的眼睛。显示器620可结合LED、OLED、数字光投影仪、激光扫描光源、硅上液晶,或这些技术的任何组合。透射光的基板可以是光波导、光组合器、光反射器、全息基板或这些基板的任意组合。在一个示例中,透明或半透明显示器可在不透明状态与透明或半透明状态之间选择性地转换。显示器620的其他示例包括平视显示器、能够显示图形的汽车挡风玻璃、能够显示图形的窗口、能够显示图形的镜片、平板计算机、智能电话以及台式计算机或膝上型计算机。另选地,系统600可被设计为接收外部显示器(例如,智能电话)。在一些示例中,系统600是基于投影的系统,该系统使用视网膜投影将图像投影到个体的视网膜上或将虚拟对象投影到物理布景中(例如,投影到物理表面上或作为全息图)。System 600 includes display 620 . Display 620 may have an opaque display. Display 620 may have a transparent or translucent display that may incorporate a substrate through which light representing an image is directed to the individual's eye. Display 620 may incorporate LEDs, OLEDs, digital light projectors, laser scanning light sources, liquid crystal on silicon, or any combination of these technologies. The light-transmitting substrate can be an optical waveguide, an optical combiner, an optical reflector, a holographic substrate, or any combination of these substrates. In one example, a transparent or translucent display is selectively switchable between an opaque state and a transparent or translucent state. Other examples of display 620 include a head-up display, a car windshield capable of displaying graphics, a window capable of displaying graphics, glasses capable of displaying graphics, a tablet computer, a smartphone, and a desktop or laptop computer. Alternatively, system 600 may be designed to receive an external display (eg, a smartphone). In some examples, system 600 is a projection-based system that uses retinal projection to project images onto an individual's retina or to project virtual objects into a physical set (eg, onto a physical surface or as a hologram).

在一些示例中,系统600包括用于接收用户输入诸如轻击输入和轻扫输入的触敏表面622。在一些示例中,显示器620和触敏表面622形成触敏显示器。In some examples, system 600 includes touch-sensitive surface 622 for receiving user input, such as tap input and swipe input. In some examples, display 620 and touch-sensitive surface 622 form a touch-sensitive display.

系统600包括图像传感器608。图像传感器608可选地包括可操作以从物理布景获取物理元素的图像的一个或多个可见光图像传感器,诸如电荷耦合器件(CCD)传感器和/或互补金属氧化物半导体(CMOS)传感器。一个或多个图像传感器还任选地包括一个或多个红外(IR)传感器,诸如无源IR传感器或有源IR传感器,用于检测来自物理布景的红外光。例如,有源IR传感器包括IR发射器,诸如IR点发射器,用于将红外光发射到物理布景中。图像传感器608还可选地包括一个或多个事件相机,该事件相机被配置为捕获物理布景中物理元素的移动。图像传感器608还可选地包括一个或多个深度传感器,该深度传感器被配置为检测物理元素与系统600的距离。在一些示例中,系统600组合使用CCD传感器、事件相机和深度传感器来检测系统600周围的物理布景。在一些示例中,图像传感器608包括第一图像传感器和第二图像传感器。第一图像传感器和第二图像传感器任选地被配置为从两个不同的视角捕获物理布景中物理元素的图像。在一些示例中,系统600使用图像传感器608来接收用户输入,诸如手势。在一些示例中,系统600使用图像传感器608来检测系统600和/或显示器620在物理布景中的位置和取向。例如,系统600使用图像传感器608来跟踪显示器620相对于物理布景中的一个或多个固定元素的位置和取向。System 600 includes image sensor 608 . Image sensors 608 optionally include one or more visible light image sensors, such as charge-coupled device (CCD) sensors and/or complementary metal-oxide-semiconductor (CMOS) sensors, operable to acquire images of physical elements from the physical scene. The one or more image sensors also optionally include one or more infrared (IR) sensors, such as passive IR sensors or active IR sensors, for detecting infrared light from the physical set. For example, an active IR sensor includes an IR emitter, such as an IR spot emitter, for emitting infrared light into a physical set. Image sensor 608 also optionally includes one or more event cameras configured to capture movement of physical elements in the physical set. Image sensor 608 also optionally includes one or more depth sensors configured to detect the distance of a physical element from system 600 . In some examples, system 600 uses a combination of CCD sensors, event cameras, and depth sensors to detect the physical scenery surrounding system 600 . In some examples, image sensor 608 includes a first image sensor and a second image sensor. The first image sensor and the second image sensor are optionally configured to capture images of physical elements in the physical set from two different viewing angles. In some examples, system 600 uses image sensor 608 to receive user input, such as gestures. In some examples, system 600 uses image sensor 608 to detect the position and orientation of system 600 and/or display 620 within a physical set. For example, system 600 uses image sensor 608 to track the position and orientation of display 620 relative to one or more fixed elements in the physical set.

在一些示例中,系统600包括麦克风612。系统600使用麦克风612来检测来自用户和/或用户的物理布景的声音。在一些示例中,麦克风612包括麦克风阵列(包括多个麦克风),这些麦克风可选地协同操作,以识别环境噪声或定位物理布景的空间中的声源。In some examples, system 600 includes microphone 612 . System 600 uses microphone 612 to detect sounds from the user and/or the user's physical setting. In some examples, microphone 612 includes a microphone array (including a plurality of microphones), optionally operating in concert, to identify ambient noise or localize sound sources in the space of a physical set.

系统600包括用于检测系统600和/或显示器620的取向和/或移动的取向传感器610。例如,系统600使用取向传感器610来跟踪系统600和/或显示器620诸如相对于物理布景中的物理元素的位置和/或取向的改变。取向传感器610可选地包括一个或多个陀螺仪和/或一个或多个加速度计。System 600 includes orientation sensor 610 for detecting orientation and/or movement of system 600 and/or display 620 . For example, system 600 uses orientation sensor 610 to track changes in system 600 and/or display 620 , such as changes in position and/or orientation relative to physical elements in a physical set. Orientation sensor 610 optionally includes one or more gyroscopes and/or one or more accelerometers.

本文定义的技术考虑了获取并利用用户的个人信息的选项。例如,可利用此类个人信息以便在电子设备上提供改进的XRE体验和应用程序体验。然而,就收集此类个人信息而言,此类信息应当在用户的知情同意下获得,使得用户知道并控制他们的个人信息的使用。The technologies defined herein consider options for obtaining and utilizing users' personal information. For example, such personal information may be utilized to provide an improved XRE experience and application experience on electronic devices. However, insofar as such personal information is collected, such information should be obtained with the informed consent of users so that users know and control the use of their personal information.

具有对个人信息的访问权限的各方将仅为了合法和合理的目的而利用该信息,并且将遵守至少符合适当法律和规章的隐私政策和惯例。另外,此类政策应是完善的、用户可访问的,并且被认为符合或高于政府/行业标准。此外,个人信息将不会在任何合理和合法的目的之外被分发、出售或以其他方式共享。Parties with access to personal information will use that information only for lawful and reasonable purposes and will abide by privacy policies and practices that at least comply with applicable laws and regulations. Additionally, such policies should be comprehensive, user-accessible, and considered to meet or exceed government/industry standards. In addition, personal information will not be distributed, sold or otherwise shared outside of any reasonable and lawful purpose.

然而,用户可限制各方可获得个人信息的程度。本文所述的进程和设备可允许改变设置或其他偏好,使得用户控制对他们的个人信息的访问。此外,虽然在使用个人信息的上下文中描述了本文所定义的一些特征,但可在不需要使用此类信息的情况下实现这些特征的各方面。作为示例,用户的个人信息可被模糊或以其他方式被一般化,使得该信息不标识从其获得该信息的特定用户。However, users may limit the extent to which personal information is available to parties. The processes and devices described herein may allow changes to settings or other preferences that allow users to control access to their personal information. Furthermore, while some of the features defined herein are described in the context of the use of personal information, aspects of these features can be implemented without the use of such information. As an example, a user's personal information may be obfuscated or otherwise generalized such that the information does not identify the specific user from whom it was obtained.

应当理解,以上描述旨在是示例性的而非限制性的。已经呈现材料以使本领域的任何技术人员能够作出并使用受权利要求保护的所公开的主题并在特定实施方案的上下文中提供该材料,其变化对于本领域的技术人员而言将是显而易见的(例如,可彼此结合地使用所公开的实施方案中的一些)。因此,图5中所示出的步骤或动作的特定布置或者图1至图4和图6中所示出的元件的布置不应被解释为限制所公开的主题的范围。因此,应当参考所附权利要求以及赋予此类权利要求的等同形式的完整范围来确定本发明的范围。在所附权利要求书中,术语“包括”和“在其中”被用作相应术语“包含”和“其中”的通俗英语等同形式。It should be understood that the above description is intended to be illustrative and not restrictive. Material has been presented to enable any person skilled in the art to make and use the claimed disclosed subject matter and is presented in the context of specific embodiments in which variations will be apparent to those skilled in the art (eg, some of the disclosed embodiments may be used in conjunction with each other). Thus, the specific arrangement of steps or actions shown in FIG. 5 , or the arrangement of elements shown in FIGS. 1-4 and 6 should not be construed as limiting the scope of the disclosed subject matter. The scope of the invention should, therefore, be determined with reference to the appended claims, along with the full scope of equivalents to which such claims are entitled. In the appended claims, the terms "comprising" and "in which" are used as the plain-English equivalents of the respective terms "comprising" and "wherein".

Claims (38)

1. A method for collaboration in a multi-user communication session, comprising:
at a first device:
receiving a request to launch a first application in a multi-user communication session with a second device;
presenting an environment of the first application in the multi-user communication session;
receiving data through one or more processes of the multi-user communication session, the data comprising input data and first communication data;
providing, by the one or more processes, the input data to the first application;
providing the first communication data to the second device through the one or more processes;
receiving, by the one or more processes, second communication data from the second device; and
presenting, by the one or more processes, the second communication data in the environment of the first application, wherein the first application is restricted from accessing the first communication data and the second communication data.
2. The method of claim 1, further comprising:
receiving, by the one or more processes and from the first application, first head portrait location information for a first head portrait; and
Presenting, by the one or more processes, the first avatar in the environment of the first application based on the first avatar location information.
3. The method of claim 2, further comprising:
receiving, by the one or more processes and from the first application, second avatar location information;
receiving, by the one or more processes, second avatar information from the second device; and
and presenting a second head portrait based on the second head portrait position information and the second head portrait information.
4. A method according to any of claims 1-3, wherein the one or more processes comprise a system application or trusted application of the multi-user communication session.
5. The method of any of claims 1-4, further comprising updating the first application based on the input data.
6. The method of any of claims 1-5, wherein the input data is provided to the first application using an application programming interface.
7. The method of any of claims 1-6, wherein the first communication data is provided for presentation by an instance of the first application running on the second device in the multi-user communication session.
8. The method of any of claims 1-7, wherein the environment comprises an immersive environment of the first application.
9. The method of any of claims 1-8, wherein the input data includes data for controlling operation of the first application.
10. The method of any of claims 1-9, wherein the first communication data comprises audio data received by the first device, and wherein second communication data comprises audio data received from the second device.
11. The method of any of claims 1-10, wherein the first application comprises a game program.
12. A non-transitory program storage device comprising instructions stored thereon that cause one or more processors to:
receiving a request to launch a first application in a multi-user communication session with a second device;
presenting an environment of the first application in the multi-user communication session;
receiving data through one or more processes of the multi-user communication session, the data comprising input data and first communication data;
providing, by the one or more processes, the input data to the first application; and
Providing the first communication data to the second device through the one or more processes;
receiving, by the one or more processes, second communication data from the second device; and
presenting, by the one or more processes, the second communication data in the environment of the first application, wherein the first application is restricted from accessing the first communication data and the second communication data.
13. The non-transitory program storage device of claim 12, wherein the instructions further cause the one or more processors to:
receiving, by the one or more processes and from the first application, first head portrait location information for a first head portrait; and
presenting, by the one or more processes, the first avatar in the environment of the first application based on the first avatar location information.
14. The non-transitory program storage device of claim 13, wherein the instructions further cause the one or more processors to:
receiving, by the one or more processes and from the first application, second avatar location information;
receiving, by the one or more processes, second avatar information from the second device; and
And presenting a second head portrait based on the second head portrait position information and the second head portrait information.
15. The non-transitory program storage device of any one of claims 12-14, wherein the one or more processes include a system application or trusted application of the multi-user communication session.
16. The non-transitory program storage device of any one of claims 12-15, wherein the instructions further cause the one or more processors to update the first application based on the input data.
17. The non-transitory program storage device of any one of claims 12-16, wherein the input data is provided to the first application using an application programming interface.
18. The non-transitory program storage device of any one of claims 12-17, wherein the first communication data is provided for presentation by an instance of the first application running on the second device in the multi-user communication session.
19. The non-transitory program storage device of any one of claims 12-18, wherein the environment comprises an immersive environment of the first application.
20. The non-transitory program storage device of any one of claims 12-19, wherein the input data includes data for controlling operation of the first application.
21. The non-transitory program storage device of any one of claims 12-20, wherein the first communication data comprises audio data received by the first device, and wherein second communication data comprises audio data received from the second device.
22. The non-transitory program storage device of any one of claims 12-21, wherein the first application comprises a game program.
23. An electronic device, comprising:
a memory;
a display;
networking device
An input device; and
one or more processors operatively coupled to the memory, wherein the one or more processors are configured to execute instructions that cause the one or more processors to:
receiving a request to launch a first application in a multi-user communication session with a second device;
presenting, by the display, an environment of the first application in the multi-user communication session;
receiving data from the input device and through one or more processes of the multi-user communication session, the data comprising input data and first communication data;
providing, by the one or more processes, the input data to the first application; and
Providing, by the one or more processes, the first communication data to the second device via the networking device;
receiving, by the one or more processes, second communication data from the second device via the networking device; and
presenting, by the one or more processes and via the display, the second communication data in the environment of the first application, wherein the first application is restricted from accessing the first communication data and the second communication data.
24. The device of claim 23, wherein the one or more processors are configured to execute instructions that further cause the one or more processors to:
receiving, by the one or more processes and from the first application, first head portrait location information for a first head portrait; and
the first avatar is presented in the environment of the first application by the one or more processes and via the display based on the first avatar location information.
25. The device of claim 24, wherein the one or more processors are configured to execute instructions that further cause the one or more processors to:
Receiving, by the one or more processes and from the first application, second avatar location information;
receiving, by the one or more processes, second avatar information from the second device via the networking device; and
and presenting a second avatar via the display based on the second avatar position information and the second avatar information.
26. The apparatus of any of claims 23-25, wherein the one or more processes comprise a system application or trusted application of the multi-user communication session.
27. The apparatus of any of claims 23-26, wherein the instructions further cause the one or more processors to update the first application based on the input data.
28. The apparatus of any of claims 23-27, wherein the input data is provided to the first application using an application programming interface.
29. The device of any of claims 23-28, wherein the first communication data is provided for presentation by an instance of the first application running on the second device in the multi-user communication session.
30. The apparatus of any of claims 23-29, wherein the environment comprises an immersive environment of the first application.
31. The apparatus of any of claims 23-30, wherein the input data comprises data for controlling operation of the first application.
32. The device of any of claims 23-31, wherein the first communication data comprises first audio data received by the first device, and wherein second communication data comprises second audio data received from the second device via the networking device.
33. The device of claim 32, further comprising a microphone, and wherein the first audio data is received through the microphone.
34. The device of claim 32, further comprising one or more speakers, and wherein the second audio data is presented through the one or more speakers.
35. The apparatus of any of claims 23-34, wherein the first application comprises a game program.
36. The method of any of claims 1-11, wherein a first process of the one or more processes of the multi-user communication session provides the first communication data to the second device, and wherein a second process of the one or more processes of the multi-user communication session presents the environment of the first application in the multi-user communication session.
37. The non-transitory program storage device of any one of claims 12-22, wherein a first process of the one or more processes of the multi-user communication session provides the first communication data to the second device, and wherein a second process of the one or more processes of the multi-user communication session presents the environment of the first application in the multi-user communication session.
38. The device of any of claims 23-35, wherein a first process of the one or more processes of the multi-user communication session provides the first communication data to the second device, and wherein a second process of the one or more processes of the multi-user communication session presents the environment of the first application in the multi-user communication session.
CN202180078741.XA 2020-09-24 2021-09-15 Session Privacy for Third-Party Applications Pending CN116601921A (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US202063082801P 2020-09-24 2020-09-24
US63/082,801 2020-09-24
PCT/US2021/050468 WO2022066483A1 (en) 2020-09-24 2021-09-15 Conversation privacy for third party applications

Publications (1)

Publication Number Publication Date
CN116601921A true CN116601921A (en) 2023-08-15

Family

ID=86766205

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202180078741.XA Pending CN116601921A (en) 2020-09-24 2021-09-15 Session Privacy for Third-Party Applications

Country Status (3)

Country Link
US (3) US11856039B2 (en)
CN (1) CN116601921A (en)
DE (1) DE112021004966T5 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013148594A1 (en) * 2012-03-27 2013-10-03 Google Inc. Providing users access to applications during video communications
US20170354883A1 (en) * 2016-06-13 2017-12-14 Sony Interactive Entertainment LLC Method and system for directing user attention to a location based game play companion application
US20180314484A1 (en) * 2017-04-28 2018-11-01 Microsoft Technology Licensing, Llc Intuitive augmented reality collaboration on visual data

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7355621B1 (en) * 1998-06-10 2008-04-08 Fernandez Dennis S Digital television with subscriber conference overlay
US20080229215A1 (en) 2007-03-14 2008-09-18 Samuel Pierce Baron Interaction In A Virtual Social Environment
US8990329B1 (en) * 2012-08-12 2015-03-24 Google Inc. Access control list for a multi-user communication session
US20150170529A1 (en) * 2013-12-13 2015-06-18 Usman Hafeez System and method for facilitating an online study session
DE202017105929U1 (en) 2016-10-14 2018-01-09 Google LLC (n.d.Ges.d. Staates Delaware) Privacy settings for virtual reality
CN110603539B (en) 2017-02-07 2023-09-15 交互数字Vc控股公司 Systems and methods for preventing surveillance and protecting privacy in virtual reality
US10997558B2 (en) 2017-02-20 2021-05-04 Vspatial, Inc. System and method for creating a collaborative virtual session
EP3635589B1 (en) * 2017-06-05 2022-08-10 2689090 Canada Inc. System and method for displaying an asset of an interactive electronic technical publication synchronously in a plurality of extended reality display devices
CN111052045B (en) 2017-09-29 2022-07-15 苹果公司 computer-generated reality platform
US20200066046A1 (en) 2018-08-24 2020-02-27 Facebook, Inc. Sharing and Presentation of Content Within Augmented-Reality Environments
US10719989B2 (en) 2018-08-24 2020-07-21 Facebook, Inc. Suggestion of content within augmented-reality environments
US11289097B2 (en) * 2018-08-28 2022-03-29 Dell Products L.P. Information handling systems and methods for accurately identifying an active speaker in a communication session

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013148594A1 (en) * 2012-03-27 2013-10-03 Google Inc. Providing users access to applications during video communications
US20170354883A1 (en) * 2016-06-13 2017-12-14 Sony Interactive Entertainment LLC Method and system for directing user attention to a location based game play companion application
US20180314484A1 (en) * 2017-04-28 2018-11-01 Microsoft Technology Licensing, Llc Intuitive augmented reality collaboration on visual data

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
KIMBERLY RUTH: "Secure multi-user content sharing for augmented reality applications", PROCEEDINGS OF THE 28TH USENIX CONFERENCE ON SECURITY SYMPOSIUM, 14 August 2019 (2019-08-14) *

Also Published As

Publication number Publication date
US20250071161A1 (en) 2025-02-27
US12155704B2 (en) 2024-11-26
US20240163319A1 (en) 2024-05-16
US11856039B2 (en) 2023-12-26
US20230300181A1 (en) 2023-09-21
DE112021004966T5 (en) 2023-07-06

Similar Documents

Publication Publication Date Title
CN113646731B (en) Technology for participating in shared scenes
US12294812B2 (en) Environment for remote communication
US20240037886A1 (en) Environment sharing
CN116508304A (en) Recommended Avatar Placement in Ambient Representations of Multiuser Communication Sessions
US12132770B2 (en) Asymmetric presentation of an environment
US11991222B1 (en) Persistent call control user interface element in an artificial reality environment
WO2021257868A1 (en) Video chat with spatial interaction and eye contact recognition
US20250379760A1 (en) Avatar Spatial Modes
US20250071158A1 (en) Synchronization in a Multiuser Experience
US20230262406A1 (en) Visual content presentation with viewer position-based audio
US12361646B1 (en) Privately sharing user preferences
CN112912822A (en) System for controlling audio-enabled connected devices in mixed reality environments
TW202410699A (en) Delay optimization for multiple audio streams
US12155704B2 (en) Conversation privacy for third party applications
TW202331702A (en) Audio configuration switching in virtual reality
US12101197B1 (en) Temporarily suspending spatial constraints
US12489815B1 (en) Toolbox and context for user interactions
US20230297710A1 (en) Applications in a Multi-User Environment
US12531920B2 (en) Gaze-based copresence system
WO2023043607A1 (en) Aligning scanned environments for multi-user communication sessions
CN116529697A (en) Sharing spatial boundaries and phantom surfaces

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