CN116848507A - 应用程序投屏 - Google Patents

应用程序投屏 Download PDF

Info

Publication number
CN116848507A
CN116848507A CN202180092980.0A CN202180092980A CN116848507A CN 116848507 A CN116848507 A CN 116848507A CN 202180092980 A CN202180092980 A CN 202180092980A CN 116848507 A CN116848507 A CN 116848507A
Authority
CN
China
Prior art keywords
user interface
application
version
anchor
electronic device
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
CN202180092980.0A
Other languages
English (en)
Inventor
J·J·泰勒
P·P·陈
M·E·布尔利
N·K·维穆里
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
Priority claimed from US17/541,207 external-priority patent/US20220244903A1/en
Application filed by Apple Inc filed Critical Apple Inc
Priority claimed from PCT/US2021/062450 external-priority patent/WO2022169506A1/en
Publication of CN116848507A publication Critical patent/CN116848507A/zh
Pending legal-status Critical Current

Links

Landscapes

  • User Interface Of Digital Computer (AREA)

Abstract

本发明提供了应用程序投屏,其中将在电子设备上运行的应用程序投屏到无权访问该应用程序的另一电子设备。通过以下来投屏该应用程序:提供用于在无权访问该应用程序的该设备处渲染该应用程序的用户界面的足够多的信息,连同针对无权访问该应用程序的该设备的应用的修改,诸如用户偏好。

Description

应用程序投屏
相关申请的交叉引用
本申请要求提交于2021年2月4日的名称为“Application Casting”的美国临时专利申请号63/145,952的优先权权益,该申请的公开内容据此全文并入本文。
技术领域
本说明书整体涉及计算平台中的多用户环境。
背景技术
电子设备的用户通常使用在该电子设备上运行的应用程序来查看数据和/或与数据交互。通常,用户交换数据,诸如凭借通过电子邮件发送文件,每个用户可利用在他们自己的电子设备上运行的应用程序本地查看和操纵数据。然后,如果需要,每个用户可与其他用户重新共享更新的数据。为了提高共享数据的效率,一些应用程序允许由在多个设备上安装和本地运行的公共应用程序的多个用户协作查看和/或操纵数据。然而,在其中用户中的一个用户不具有在他们的设备上安装或运行的应用程序的场景中,应用程序数据的共享通常是受限的或不可用的。
附图说明
本主题技术的一些特征在所附权利要求书中予以阐述。然而,出于说明的目的,在以下附图中阐述了本主题技术的若干具体实施。
图1示出了根据一个或多个具体实施的包括可实现本主题***的各种电子设备的示例性***架构。
图2示出了可实现本主题技术的各方面的示例性计算设备。
图3示出了可实现本主题技术的各方面的计算设备的另一示例。
图4示出了根据本主题技术的各方面的第一电子设备的环境的示例。
图5示出了根据本主题技术的各方面的第二电子设备的环境的示例。
图6示出了根据本主题技术的各方面的第一电子设备的物理环境中用于本地应用程序的用户界面的物理锚点对象的示例。
图7示出了根据本主题技术的各方面的从远程设备接收的、并且锚定到第二电子设备的环境中的虚拟锚点的用户界面的版本的示例。
图8示出了根据本主题技术的各方面的从远程设备接收的、并且锚定到第二电子设备的物理环境中的虚拟锚点对象的用户界面的版本的示例。
图9示出了根据本主题技术的各方面的用于接收投屏的应用程序的示例性过程的流程图。
图10示出了根据本主题技术的各方面的用于渲染投屏的应用程序的用户界面的所接收的版本的示例性过程的流程图。
图11示出了根据本主题技术的各方面的用于应用程序投屏的示例性过程的流程图。
图12示出了根据本主题技术的各方面的用于接收投屏的应用程序以进行利用锚定的三维显示的示例性过程的流程图。
图13示出了根据本主题技术的各方面的用于利用锚定的应用程序投屏的示例性过程的流程图。
图14示出了可用以实施本主题技术的各方面的示例性计算设备。
具体实施方式
下面示出的具体实施方式旨在作为本主题技术的各种配置的描述并且不旨在表示主题技术可被实践的唯一配置。附图被并入本文并且构成具体实施方式的一部分。具体实施方式包括具体的细节旨在提供对本主题技术的透彻理解。然而,主题技术不限于本文所述的具体细节,并且可使用一个或多个其他具体实施来实践。在一个或多个具体实施中,以框图形式示出了结构和部件,以便避免使本主题技术的概念模糊。
物理环境是指人们在没有电子设备帮助的情况下能够对其感测和/或与其交互的物理世界。物理环境可包括物理特征,诸如物理表面或物理对象。例如,物理环境对应于包括物理树木、物理建筑物和物理人的物理公园。人们能够诸如通过视觉、触觉、听觉、味觉和嗅觉来直接感测物理环境和/或与物理环境交互。相反,扩展现实(XR)环境是指人们经由电子设备感测和/或交互的完全或部分模拟的环境。例如,XR环境可包括增强现实(AR)内容、混合现实(MR)内容、虚拟现实(VR)内容等。在XR***的情况下,跟踪人的物理运动的一个子集或其表示,并且作为响应,以符合至少一个物理定律的方式调节在XR环境中模拟的一个或多个虚拟对象的一个或多个特征。如一个示例,XR***可以检测头部移动,并且作为响应,以与此类视图和声音在物理环境中变化的方式类似的方式调节呈现给人的图形内容和声场。如另一示例,XR***可以检测呈现XR环境的电子设备(例如,移动电话、平板电脑、膝上型电脑等)的移动,并且作为响应,以类似于此类视图和声音在物理环境中将如何改变的方式调节呈现给人的图形内容和声场。在一些情况下(例如,出于可达性原因),XR***可响应于物理运动的表示(例如,声音命令)来调节XR环境中图形内容的特征。
有许多不同类型的电子***使人能够感测和/或与各种XR环境交互。示例包括头戴式***、基于投影的***、平视显示器(HUD)、集成有显示能力的车辆挡风玻璃、集成有显示能力的窗户、被形成为设计用于放置在人的眼睛上的透镜的显示器(例如,类似于隐形眼镜)、耳机/听筒、扬声器阵列、输入***(例如,具有或不具有触觉反馈的可穿戴或手持式控制器)、智能电话、平板电脑、以及台式/膝上型计算机。头戴式***可具有集成不透明显示器和一个或多个扬声器。另选地,头戴式***可被配置为接受外部不透明显示器(例如,智能电话)。头戴式***可结合用于捕获物理环境的图像或视频的一个或多个成像传感器、和/或用于捕获物理环境的音频的一个或多个麦克风。头戴式***可具有透明或半透明显示器,而不是不透明显示器。透明或半透明显示器可以具有媒介,代表图像的光通过该媒介被引导到人的眼睛。显示器可以利用数字光投影、OLED、LED、uLED、硅基液晶、激光扫描光源或这些技术的任意组合。媒介可以是光学波导、全息图媒介、光学组合器、光学反射器、或它们的任意组合。在一些具体实施中,透明或半透明显示器可被配置为选择性地变得不透明。基于投影的***可以采用将图形图像投影到人的视网膜上的视网膜投影技术。投影***也可以被配置为将虚拟对象投影到物理环境中,例如作为全息图或在物理表面上。
本文所述的本主题技术的具体实施提供应用程序在电子设备之间的共享,尤其是当电子设备中的一个电子设备无权访问应用程序时(例如,因为应用程序或应用程序的更新的版本未安装和/或未在设备处运行)。在一些场景中,用于在运行应用程序数据的设备处显示应用程序的用户界面(UI)的应用程序数据中的所有应用程序数据可以被连续地传输到另一电子设备,使得在另一电子设备处提供应用程序的全部功能性。然而,以这种方式发送全部应用程序数据可能消耗大量带宽和处理能力,这在各种场景中可能是不可用的或不切实际的。
在其他场景中,可将UI的平面图像从运行该应用程序的设备发送到不具有该应用程序的设备,使得另一设备的用户可正如运行该应用程序的设备处显示的那样查看该UI(例如,在视频会议应用程序的屏幕共享模式中)。然而,向另一设备提供仅平面图像会阻止另一设备根据第二设备的用户的优选格式、另一偏好或位置或取向来显示或修改UI。当应用程序的UI被共享以用于在三维环境(诸如XR环境)中显示时,这可能尤其成问题。
当应用程序仅被安装在设备中的一个设备处时,本主题技术的各方面便于第一设备和第二设备的第一用户和第二用户对应用程序的协作使用。在一个或多个具体实施中,应用程序不可知的框架(例如,两个设备上的***级框架)允许运行应用程序的设备向其上未安装应用程序的第二设备投屏在运行应用程序的第一设备处显示的应用程序用户界面(UI)的版本。
应用程序的版本可以是在第一设备处显示的UI的非交互式版本,但可包括足够多的状态信息以允许第二设备使用存储在第二设备处的一个或多个用户或设备偏好和/或使用第二设备的环境的特征来渲染UI。在其他具体实施中,状态信息可包括足够多的信息以允许与在第二设备处显示的UI的版本交互,此类交互包括独立于在第一设备处显示的UI而对该UI进行移动、尺寸调整、旋转或重新着色。在其他具体实施中,状态信息可包括足够多的信息以允许交互(例如,到应用程序的用户输入),这些交互被第二设备捕获并且作为到在第一设备上运行的应用程序的输入被发送回到第一设备(例如,并且被重新投屏回到第二设备)。
在一个或多个具体实施中,应用程序将在运行该应用程序的第一设备处显示的应用程序用户界面的版本连同锚定信息一起投屏到其上未安装该应用程序的第二设备,该锚定信息允许第一设备和第二设备在每个设备的相应三维(例如,XR)环境中的协调位置处显示其相应的UI的版本。可提供锚定信息以确保UI由两个设备显示为相对于每个设备的环境中的共享原点的公共位置。当同时显示多个UI元素和/或其他(例如,共享的)应用程序时,这可能是有用的,以允许由设备中的一个设备在元素或应用程序之间传送内容,和/或允许在两个设备处正确地显示元素和/或应用程序交互。例如,这可用于调整第二设备处的UI的版本的尺寸或取向以考虑第二设备的用户相对于UI的所显示的版本的位置。
在一个或多个具体实施中,由第二设备显示的应用程序的版本可被移动到第二设备的第二物理环境中的新位置,而影响或不影响由第一设备显示的UI的位置。在一个或多个具体实施中,可将UI的足够多的状态信息从第一设备提供到第二设备以允许与由第二设备显示的用户界面的版本的部分或完全用户交互来控制在第一设备处运行的应用程序。
图1示出了根据一个或多个具体实施的包括可实现本主题***的各种电子设备的示例性***架构100。然而,并非所有所描绘的部件均可在所有具体实施中使用,并且一个或多个具体实施可包括与图中所示的那些相比附加的或不同的部件。可进行这些部件的布置和类型的变化,而不脱离本文所列出的权利要求的实质或范围。可提供附加的部件、不同的部件或更少的部件。
***架构100包括电子设备105、电子设备110、电子设备115和服务器120。出于解释的目的,***架构100在图1中被示为包括电子设备105、电子设备110、电子设备115和服务器120;然而,***架构100可包括任何数量的电子设备以及任何数量的服务器或包括多个服务器的数据中心。
电子设备105可以是智能手机、平板设备或可穿戴设备(诸如头部可安装便携式***),其包括能够向用户101呈现扩展现实环境的可视化的显示***。电子设备105可用电池和/或任何其他电源供电。在一个示例中,电子设备105的显示***向用户提供扩展现实环境的立体呈现,使得能够提供特定场景渲染的三维视觉显示。在一个或多个具体实施中,代替利用电子设备105来访问扩展现实环境或除此之外,用户可使用手持式电子设备104,诸如平板电脑、手表、移动设备等。
电子设备105可包括一个或多个相机,诸如相机150(例如,可见光相机、红外相机等)。此外,电子设备105可包括各种传感器152,包括但不限于相机、图像传感器、触摸传感器、麦克风、惯性测量单元(IMU)、心率传感器、温度传感器、激光雷达传感器、雷达传感器、声纳传感器、GPS传感器、Wi-Fi传感器、近场通信传感器等。此外,电子设备105可包括可接收用户输入的硬件元件,诸如硬件按钮或开关。由此类传感器和/或硬件元件检测到的用户输入对应于用于在给定扩展现实环境内发起记录的各种输入模态。例如,此类输入模态可包括但不限于面部跟踪、眼睛跟踪(例如,注视方向)、手部跟踪、姿态跟踪、生物识别读数(例如,心率、脉搏、瞳孔扩张、呼吸、温度、脑电图、嗅觉)、识别语音或音频(例如,特定热字词)以及激活按钮或开关等。电子设备105还可对电子设备105的物理环境中的物理对象进行检测和/或分类。
电子设备105可通信地耦接到基础设备,诸如电子设备110和/或电子设备115。一般来讲,与电子设备105相比,此类基础设备可包括更多计算资源和/或可用功率。在一个示例中,电子设备105可以各种模式操作。例如,电子设备105可独立于任何基础设备以独立模式操作。当电子设备105以独立模式操作时,输入模态的数量可受到电子设备105的功率限制(诸如设备的可用电池功率)的约束。响应于功率限制,电子设备105可停用设备自身内的某些传感器以保持电池功率。
电子设备105还可以无线连线模式操作(例如,经由无线连接与基础设备连接),从而与给定基础设备结合工作。电子设备105还可以电子设备105物理地连接到基础设备(例如,经由电缆或一些其他物理连接器)的连接模式工作,并且可利用由基础设备提供的电力资源(例如,在基础设备在物理地连接时对电子设备105充电的情况下)。
当电子设备105以无线连线模式或连接模式操作时,可将处理用户输入和/或渲染扩展现实环境的至少一部分卸载到基础设备,从而减少电子设备105上的处理负担。例如,在一个具体实施中,电子设备105结合电子设备110或电子设备115工作以生成扩展现实环境,该扩展现实环境包括以实时方式在用户与扩展现实环境之间实现不同形式的交互(例如,视觉、听觉和/或物理或触觉交互)的物理对象和/或虚拟对象。在一个示例中,电子设备105提供对应于扩展现实环境的场景的渲染,该场景可被用户感知并以实时方式交互。另外,作为呈现渲染场景的一部分,电子设备105可向用户提供声音和/或触觉或触感反馈。给定渲染场景的内容可能取决于可用处理能力、网络可用性和容量、可用电池功率和当前***工作负载。
电子设备105还可以检测已发生在扩展现实环境的场景内的事件。此类事件的示例包括检测场景中特定人、实体或对象的存在。检测到的物理对象可由电子设备105、电子设备110和/或电子设备115分类,并且物理对象的定位、位置、尺寸、维度、形状和/或其他特性可用于向XR应用程序提供物理锚点对象,从而生成用于在XR环境内显示的虚拟内容(诸如应用程序的UI)。
还应当理解,电子设备110和/或电子设备115还可结合电子设备105工作或独立于电子设备105生成此类扩展现实环境。
网络106可将例如电子设备105、电子设备110和/或电子设备115与服务器120和/或一个或多个其他用户的一个或多个电子设备通信地(直接或间接)耦接。在一个或多个具体实施中,网络106可以是可包括互联网或可通信地耦接到互联网的设备的互连网络。
电子设备110可包括触摸屏并且可以是例如包括触摸屏的智能电话、便携式计算设备,诸如包括触摸屏的膝上型计算机、包括触摸屏的***设备(例如数字相机、耳机)、包括触摸屏的平板设备、包括触摸屏的可穿戴设备(诸如手表、腕带等)、包括例如触摸屏的任何其他适当设备或者任何具有触控板的电子设备。在一个或多个具体实施中,电子设备110可不包括触摸屏,但可支持触摸屏类似的手势,诸如在扩展现实环境中。在一个或多个具体实施中,电子设备110可包括触控板。在图1中,通过举例的方式,电子设备110被描绘为具有触摸屏的移动智能电话设备。在一个或多个具体实施中,电子设备110、手持式电子设备104和/或电子设备105可是和/或可包括下文相对于图14讨论的电子***的全部或部分。在一个或多个具体实施中,电子设备110可以是另一设备,诸如互联网协议(IP)相机、平板电脑或***设备诸如电子触笔等。
电子设备115可为例如台式计算机、便携式计算设备诸如膝上型计算机、智能电话、***设备(例如,数字相机、耳机)、平板设备、可穿戴设备诸如手表、腕带等。在图1中,通过举例的方式,电子设备115被描绘为台式计算机。电子设备115可以是和/或可包括下文相对于图14讨论的电子***的全部或部分。
服务器120可形成计算机网络或服务器组130的全部或部分,诸如在云计算或数据中心实施中。例如,服务器120存储数据和软件,并且包括用于渲染和生成扩展现实环境的内容诸如图形、图像、视频、音频和多媒体文件的特定硬件(例如,处理器、图形处理器和其他专用或定制处理器)。在一个具体实施中,服务器120可用作云存储服务器,该云存储服务器存储由上述设备和/或服务器120生成的任何前述扩展现实内容。
图2示出了根据本主题技术的一个或多个具体实施的可由电子设备105和另一电子设备205(例如,手持式电子设备114、电子设备110、电子设备115或另一电子设备105)实现的示例性架构。出于解释的目的,图2的架构的部分被描述为由图1的电子设备105实施,诸如由电子设备的处理器和/或存储器实施;然而,架构的适当部分可由任何其他电子设备实现,包括电子设备110、电子设备115和/或服务器120。然而,并非所有所描绘的部件均可在所有具体实施中使用,并且一个或多个具体实施可包括与图中所示的那些相比附加的或不同的部件。可进行这些部件的布置和类型的变化,而不脱离本文所列出的权利要求的实质或范围。可提供附加的部件、不同的部件或更少的部件。
图2的架构的各个部分可在软件或硬件中实施,包括通过一个或多个处理器和包含指令的存储器设备来实施,这些指令当由处理器执行时使得该处理器执行本文所述的操作。在图2的示例中,应用程序(诸如应用程序202)向渲染引擎223提供用于渲染应用程序的UI的应用程序数据。应用程序数据可包括应用程序生成的内容(例如,窗口、按钮、工具等)和/或用户生成的内容(例如,文本、图像等)以及用于渲染UI中的内容的信息。渲染引擎223渲染UI以用于由显示器(诸如电子设备105的显示器225)显示。
如图2所示,与电子设备105通信的另一电子设备205不具有安装的或可用的应用程序202。在图2的示例中,电子设备105通过向另一电子设备205(例如,向另一电子设备205的渲染引擎263)提供远程UI信息来将应用程序(例如,应用程序的UI)投屏到另一电子设备205。在图2的示例中,渲染引擎223被示出为向另一电子设备205提供远程UI信息。然而,这仅是例示性的,并且远程UI信息可由应用程序202和/或在电子设备105处运行的其他***进程提供,包括可在流水线中的渲染引擎223之前或之后实现的用于向显示器225提供应用程序202的UI的***进程。
从电子设备105向电子设备205提供的远程UI信息可包括与用户界面的一个或多个元素相关联的一个或多个图像、一个或多个视频流和/或一个或多个其他资产;描述用户界面的该一个或多个元素的布局和/或外观的一个或多个层树;以及用户界面的元数据。在一个或多个具体实施中,元数据可包括该一个或多个层树。例如,当渲染引擎223生成用于由显示器225显示UI的所渲染的显示帧时,渲染引擎223还可生成UI的各部分的一个或多个显示帧(例如,UI的元素,诸如文本字段、按钮、工具、窗口、动态内容、图像、嵌入视频等)。UI的各部分的显示帧可作为静态元素的图像来提供,和/或可形成可被提供给另一电子设备205以用于由渲染引擎263渲染UI的版本的对应视频流。在一个或多个具体实施中,电子设备105可将UI的元素中的一个或多个元素组合到组合的视频流中。例如,电子设备105可确定UI的两个或更多个元素共面且部分重叠,并且生成表示该两个或更多个共面且部分重叠的元素的当前视图的视频流。
电子设备105处的渲染引擎223、应用程序202和/或其他进程还可基于应用程序数据来生成一个或多个层树,该一个或多个层树描述(例如,以分级形式)与UI的元素相关联的该一个或多个图像、视频流和/或状态信息可如何被组合以形成用于显示器225的UI的版本。电子设备105处的渲染引擎223、应用程序202和/或其他进程还可生成元数据,该元数据包括用于同步层树与UI的各个部分的图像、视频流和/或状态信息(例如,图元)的定时信息,以用于在另一电子设备205处生成UI的版本。在一个或多个具体实施中,当在电子设备105处显示的UI改变时(例如,由于在电子设备105处的用户输入和/或由于应用程序202的应用程序活动),可向另一电子设备205发送一个或多个新的层树或一个或多个增量(差值)层树以更新该另一设备处的UI的版本。
在另一电子设备205处,渲染引擎263可通过以下来使用该一个或多个层树和该一个或多个视频流来渲染用户界面的版本:例如,将第二设备的偏好应用于一个或多个层树中的至少一个层树,以及使用从第一设备接收的元数据来同步该一个或多个视频流和该一个或多个层树。另一电子设备205随后可使用显示器265来显示用户界面的所渲染的版本(例如,根据该一个或多个层树中的指令来显示该一个或多个视频流和/或一个或多个其他资产)。在一些使用情况下,层树可在用于该层树的层的相应资产之前到达电子设备205处。在此类用例中,电子设备205可在该资产的位置处显示占位符,直到该资产从电子设备105到达。
在一个或多个具体实施中,层树可提供分级结构、树或图结构(例如,视图树和/或场景图)和/或描述UI的任何其他声明性形式。例如,层树可包括描述用于显示的UI的每层的层分级结构和/或可与其相关联。例如,UI可包括结合背景的内容,背景可利用一个或多个模糊层和/或其他过滤层。因此,树可包括节点和/或子树,其包含描述模糊层的一个或多个属性,诸如深度、尺寸、放置等。在一个或多个具体实施中,渲染引擎263可解析层树以管理UI的各部分的渲染,诸如对应于用于UI的各个视频流的各部分。在一个或多个具体实施中,电子设备105(例如,渲染引擎223或电子设备105处的***进程)可将层树和/或一个或多个资产(诸如图像、视频流等)串行化以用于向电子设备205传输。
在一些使用情况下,电子设备105可确定被发送用于在电子设备205处渲染的UI的版本不再能够作为组合资产、层树和/或元数据来发送。例如,电子设备105可确定电子设备105与电子设备205之间的连接的带宽和/或质量不够,接收设备的计算资源(例如,功率、存储器和/或处理资源)不够,和/或电子设备105的操作***与电子设备205的操作***之间的兼容性问题可能导致和/或可能已导致电子设备205处的UI或其一部分的无效状态。在其中电子设备105确定被发送用于在电子设备205处渲染的UI的版本不再能够作为组合资产、层树和/或元数据来发送(例如,由于另一电子设备105的降低的能力)的用例中,电子设备可切换到回退模式,在该回退模式中UI(例如,整个UI)被编码到视频流中并被发送到电子设备205(例如,没有用于在电子设备205处重构和/或渲染UI的元数据)。在一个或多个具体实施中,电子设备105可监视电子设备205的连接和/或计算资源,并且在连接和/或计算资源足以避免电子设备205处的无效状态时切换回将UI的版本作为组合资产、层树和/或元数据来发送。
在一个或多个具体实施中,层树的层可与深度信息相关联,该深度信息可被转换成三维坐标系中的z坐标(和/或z平面)。在图2的示例中,应用程序202被投屏用于例如在二维场景中(诸如智能电话的显示器、平板设备、或计算机监视器、或电视机上)显示应用程序202的UI。
图3示出了另一具体实施,其中提供了附加信息以用于在三维(例如,XR)场景中显示应用程序202的UI。在图3的示例中,传感器152向操作***(OS)诸如OS200提供环境信息(例如,来自一个或多个深度传感器的深度信息)。在一个或多个具体实施中,OS服务200可以是由电子设备105的操作***提供的、并且执行用于生成XR环境的操作的服务。相机150还可向OS服务200提供物理环境的图像。OS服务200可使用来自传感器152和相机150的环境信息(例如,深度信息和/图像)来生成电子设备105的物理环境的一些或全部的三维场景信息,诸如三维映射。
如图3所示,应用程序202可在锚点请求中从OS服务200请求锚点,诸如物理对象锚点。应用程序202可以是游戏应用程序、媒体播放器应用程序、内容编辑器应用程序、训练应用程序、模拟器应用程序或通常任何提供在取决于物理环境的位置处显示的UI的应用程序,诸如通过将UI锚定到物理对象锚点。
物理对象锚点可以是一般物理对象,诸如水平平坦表面(例如,地板或桌面的表面)、竖直平坦表面(例如,墙壁的表面)或特定物理对象(诸如桌子、墙壁、电视柜、沙发、冰箱、桌子、椅子等)。应用程序202可包括代码,该代码在由电子设备105的一个或多个处理器执行时生成应用程序数据,以用于在物理对象锚点上、物理对象锚点附近、附接到物理对象锚点或以其他方式与物理对象锚点相关联地显示应用程序的UI。
一旦应用程序数据已生成,就可向OS服务200和/或渲染引擎223提供应用程序数据,如图3所示。环境信息诸如物理环境的深度图和/或在物理环境中检测到的对象的对象信息也可被提供给渲染引擎223。渲染引擎223可随后渲染来自应用程序202的应用程序数据,以用于由电子设备105的显示器225显示。应用程序202的UI被渲染用于在显示器225上的适当位置处显示,以与物理锚点对象或由OS服务200提供的其他锚点看起来相关联。显示器225可为例如不透明显示器,并且相机150可被配置为向不透明显示器提供透传视频馈送。UI可被渲染以用于显示在显示器上的对应于透传视频中的物理锚点对象的显示位置的位置处。如另一示例,显示器225可为透明或半透明显示器。UI可被渲染以用于显示在显示器上的对应于通过透明或半透明显示器的物理锚点对象的直接视野的位置处。
如图所示,电子设备105还可包括合成引擎227,该合成引擎基于来自相机150的图像来合成物理环境的视频图像,以与来自渲染引擎223的渲染UI一起显示。例如,合成引擎227可被提供在包括不透明显示器的电子设备105中,以向显示器提供透传视频。在用允许用户直接查看物理环境的透明或半透明显示器实现的电子设备105中,在一些情况下可省略或不使用合成引擎227,或者可结合到渲染引擎223中。尽管图3的示例示出了与OS服务200分开的渲染引擎223,但应当理解,OS服务200和渲染引擎223可形成公共服务和/或用于渲染内容以用于显示的渲染操作可由OS服务200执行。尽管图3的示例示出了与应用程序202分开的渲染引擎223,但应当理解,在一些具体实施中,应用程序202可渲染内容以用于由显示器225显示而不使用独立的渲染引擎。
电子设备105可允许应用程序202(例如,经由应用程序编程接口或API)从OS服务200请求并获得锚点信息,如图3所示,这可有利于应用程序202的高效开发、实施和/或运行时执行(例如,因为每个应用程序202不必执行其自身的对象检测、场景映射等)。如图3所示,当投屏应用程序202以用于由另一电子设备(诸如另一电子设备205)进行三维显示时,OS服务200(例如,或应用程序202或渲染引擎223)可向另一电子设备205(例如,向操作***(OS)服务(诸如OS服务260)和/或向该另一电子设备处的渲染引擎263)提供用于应用程序202的UI的锚定信息(例如,远程锚点信息)。在一个或多个具体实施中,OS服务260可以是由电子设备205的操作***提供的、并且执行用于生成XR环境的操作的服务。在一个或多个具体实施中,锚定信息可连同一个或多个资产(例如,图像、视频流等)、一个或多个层树和/或其他元数据(例如,包括定时信息)一起被串行化以用于从电子设备105向电子设备205传输。尽管图3的示例示出了与OS服务260分开的渲染引擎263,但应当理解,OS服务260和渲染引擎263可形成公共服务和/或用于渲染内容以用于显示的渲染操作可由OS服务260执行。
如图3所示,即使应用程序202在另一电子设备205处不可用,OS服务260(例如,和/或渲染引擎263)也可使用远程UI信息和远程锚点信息(例如,结合由另一电子设备205的传感器152和/或相机150获得的环境信息)来生成场景信息。如图所示,另一电子设备205还可包括合成引擎267,该合成引擎合成视频(例如,来自另一电子设备205处的相机150)以用于由显示器265显示。
从电子设备105向另一电子设备205提供的锚定信息(例如,远程锚点信息)可包括指示位置的信息,另一电子设备205应当在另一电子设备205的环境(例如,物理环境、混合现实环境或虚拟环境)中在该位置处渲染对应于应用程序202的UI。在一个示例中,锚定信息可包括变换,该变换使得和UI被电子设备105相对于电子设备105的环境中的原点定位一样,用于另一电子设备205的UI的锚点位置相似地相对于另一电子设备205的环境中的原点定位。在其中电子设备105和另一电子设备205协同定位(例如,在公共或重叠的物理环境中)的操作场景中,电子设备105的原点和另一电子设备205的原点可在相同位置处。在其中电子设备105和另一电子设备205不协同定位(例如,电子设备105和另一设备在远程物理环境中)的操作场景中,电子设备105的原点和另一电子设备205的原点可在不同位置处。
在一个或多个具体实施中,电子设备105在电子设备的物理环境中的锚点位置处显示在设备上运行的应用程序(诸如应用程序202)的用户界面。图4示出了其中(例如,应用程序202的)用户界面304由电子设备105显示为看起来在环境(诸如电子设备105的物理环境300)中的位置305处的示例。在图4的示例中,UI 304包括多个窗口308,每个窗口可包括一个或多个元素306。元素306可包括文本输入字段、按钮、可选工具、滚动条、菜单、下拉式菜单、链接、插件、图像查看器、媒体播放器、滑动条等。在图4的示例中,还显示了另一应用程序的UI 315。在一个或多个具体实施中,对应于UI 315的应用程序可以是在电子设备105和一个或多个其他电子设备(诸如图2和图3的其他电子设备205)上运行的共享应用程序。
在图4的示例中,UI 304和UI 315两者显示在电子设备105的显示器的可视区307中,以在电子设备105的三维环境中看起来好像它们在物理环境300中的物理墙壁301上。在该示例中,物理桌子312也存在于物理环境300中。可部分地通过在物理墙壁上的位置305处限定用于UI 304的锚点位置来实现将UI 304显示为看起来好像在物理墙壁301上。锚点位置可通过检测到物理墙壁来限定,和/或相对于物理环境300中的电子设备105的原点310限定。例如,电子设备105可生成和/或存储原点310与位置305处的锚点位置之间的变换。以这种方式,如果电子设备105在物理环境300内移动,则显示UI 304保持在物理墙壁301上的锚点位置处。在一个或多个具体实施中,当电子设备105和一个或多个其他电子设备(诸如图2和图3的其他电子设备205)通信地联接时,电子设备105可与其他电子设备共享原点信息。
在一个或多个具体实施中,电子设备105的用户可能期望与另一设备(例如,位于相同物理环境300或远离、分开的物理环境中的另一设备)的另一用户共享应用程序202的UI 304。在一个或多个具体实施中,电子设备105可确定正在与该设备通信(例如,并且用户已指示期望与其共享UI 304)的另一设备(例如,图2和图3的另一电子设备205)未安装有该应用程序。响应于确定另一设备未安装有该应用程序,电子设备105可向其上未安装该应用程序的另一设备提供与应用程序202的用户界面304相关联的信息。如本文所讨论的,与用户界面304相关联的信息可包括用于用户界面304的视觉显示信息(例如,如结合图2和/或图3所述的远程UI信息)和锚定信息(例如,如结合图3所述的远程锚点信息)。例如,锚定信息可相对于电子设备105的物理环境300中的原点310限定位置305处的锚点位置。
图5示出了另一电子设备205的物理环境400的示例。在该示例中,物理环境400与电子设备105的物理环境300分开并且远离。在图5的示例中,另一电子设备205已接收并且正在显示由运行应用程序202的电子设备105显示的UI 304的版本404。在该示例中,UI 304的版本404包括图4的UI 304的多个窗口308的版本408以及图4的UI 304的元素306的版本406。元素306的版本406可基于如由电子设备105提供的元素的状态信息、元素的图像和/或元素的视频流来生成。可使用从电子设备105提供的一个或多个层树和对应的元数据来确定从状态信息重构的元素、对应于这些元素的图像和/或对应于这些元素的视频流的布置,以整体形成窗口308的版本408和UI 304的版本404。例如,OS服务260、渲染引擎263和/或合成引擎267可解析该一个或多个层树以管理UI的各个元素306的渲染。
如图4所示,元素306的版本406中的一些版本在UI 304的版本404中看起来与对应元素306在由电子设备105显示的UI 304中看起来不同。在该示例中,元素306的版本406中的两个版本在尺寸上大于UI 304的对应元素306,并且元素306的版本406中的一个版本与UI 304的对应UI元素306具有相同尺寸(但不同颜色)。UI 304和版本404的部分(但不是全部)中的这些差异可能是由于另一电子设备205的一个或多个偏好(例如,用户偏好)的应用程序被应用于从电子设备105接收的视觉显示信息中包括的一个或多个层树。元素306和窗口308与对应版本406和408之间的其他差异可包括颜色、字体、字体尺寸、主题、相对于用户的取向等的差异。
在一个或多个具体实施中,其上未安装应用程序202的另一电子设备205从运行应用程序202的电子设备105接收与应用程序202的用户界面304相关联的信息,诸如当用户界面304由电子设备105在电子设备105的第一环境(例如,物理环境300)中的第一锚点位置(例如,位置305)处显示时。如图5所示,电子设备205(例如,第二电子设备)可使用来自电子设备105的视觉显示信息来渲染用户界面304的版本404,并且可显示锚定到第二锚点位置(例如,在位置405处)的用户界面304的版本404,第二锚点位置使用锚定信息来相对于第二设备的第二环境(例如,物理环境400)中的第二原点410限定。
如图5所示,由另一电子设备205显示的UI 304的版本404可看起来在对应于另一电子设备205的显示器的可视区407内、与UI 304在电子设备105的可视区307中的位置不同的位置处(例如,由于另一电子设备205和/或另一电子设备205的用户的当前位置、取向等)。然而,可使用所接收的锚定信息在与UI 304相对于原点310的相对位置305相同的相对于原点410的相对位置处显示UI 304的版本404(参见图4)。在图5的示例中,物理环境400不包括物理墙壁301并且包括在不同物理位置处的不同物理桌子415。
如图5的示例中所示,因为物理环境300的物理墙壁301不存在于物理环境400中,所以由另一电子设备205显示的UI 304的版本404可被显示为看起来像是浮动的UI。
在图4和图5的示例中,第一设备(例如,电子设备105)的第一环境(例如,物理环境300)远离第二设备(例如,另一电子设备205)的第二环境(例如,物理环境300),第一原点(例如,原点310)在第一环境本地,并且第二原点(例如,原点410)在第二环境本地。在该示例中,从第一设备向第二设备提供的锚定信息可包括例如变换,该变换使得和UI 304的第一锚点位置相对于第一原点定位一样,版本404的第二锚点位置相似地相对于第二原点定位。然而,还应当理解,在一些场景中,第一设备的第一环境与第二设备的第二环境相同(例如,相同物理环境),并且第一原点和第二原点是在单个位置处的公共原点。
如本文所讨论的,由其上未安装应用程序202的另一电子设备205显示的UI 304的版本404可以是该UI的非交互式版本。然而,在一个或多个其他具体实施中,可向另一电子设备205的用户提供与版本404的交互性,诸如将版本404移动到新位置、或调整版本404的尺寸或旋转该版本的能力。在另一电子设备205处的这种交互性可独立于UI 304在电子设备105处的显示,并且/或者可向电子设备105发送与这些交互性相关联的信息以引起由电子设备105显示的UI 304的对应移动、尺寸调整、旋转等。
例如,在一个或多个具体实施中,另一电子设备205可接收到在另一电子设备205处显示的用户界面的版本404的用户输入。响应于用户输入,另一电子设备205可将在另一电子设备205处显示的用户界面的版本404从对应锚点位置(例如,在位置405处)解除锚点,并且将在第二设备处显示的用户界面的版本移动(和/或调整尺寸和/或旋转)到物理环境400中的新锚点位置。在一个或多个具体实施中,移动在另一电子设备205处显示的用户界面的版本404独立于用户界面304在电子设备105处的显示。在一个或多个其他具体实施中,移动在另一电子设备205处显示的用户界面的版本404引起在电子设备105处显示的用户界面304的对应移动(例如,使用描述从另一电子设备205向电子设备105提供的移动和/或用户输入的信息)。
如图5的示例中所示,当另一设备205具有与在电子设备105上运行的应用程序相同的安装的应用程序并且该应用程序是共享应用程序时,电子设备105和另一电子设备205两者可显示共享应用程序的相同UI 315。这是因为,与仅安装在设备中的一个设备上的应用程序202相比,在两个设备上运行的相同应用程序可以相同的方式解释相同的应用程序数据以在两个设备处生成共享应用程序的本地UI。
尽管图4的示例示出了锚定到物理墙壁301的UI 304,但这仅是例示性的,并且UI304可初始显示在其他位置处和/或由电子设备105的用户移动到其他位置。例如,图6示出了其中UI 304显示在(例如,锚定到)电子设备105的物理环境300中的物理桌子312上的示例。如图7所示,因为物理桌子312不存在于另一电子设备205的物理环境400中,所以由另一电子设备205显示的UI 304的版本404可被显示在与相对于原点310显示UI 304相同的相对于原点410的相对位置处,看起来像是浮动的UI。
在图6和图7的示例中,UI 304的第一锚点位置对应于电子设备105的物理环境(例如,物理环境300)中的物理锚点对象(例如,物理桌子312),并且版本404的第二锚点位置对应于另一电子设备205的第二环境(例如,物理环境400)中的虚拟锚点。如图8所示,在一些场景中,当物理锚点对象(例如,在该示例中的物理桌子312)在另一电子设备的物理环境400中不可用时,可生成虚拟锚点对象(诸如虚拟桌子812)以用于锚定由另一电子设备205显示的版本404。在图8的示例中,虚拟锚点对象已被渲染用于在用于版本404的虚拟锚点处显示。在该示例中,虚拟锚点对象具有形式(例如,虚拟桌子812的形式),该形式对应于物理锚点对象的形式。
如以上结合图4和图5所讨论的,在一个或多个具体实施中,可向另一电子设备205的用户提供与版本404的交互性,诸如将版本404移动到新位置、或调整版本404的尺寸或旋转该版本的能力。在另一电子设备205处的这种交互性可独立于UI 304在电子设备105处的显示,并且/或者可向电子设备105发送与这些交互性相关联的信息以引起由电子设备105显示的UI 304的对应移动、尺寸调整、旋转等。
例如,在一个例示性用例中,图6的UI 304可以是或包括在电子设备105处运行的、锚定到物理桌子312的象棋应用程序的棋盘的表示。在一个或多个具体实施中,由电子设备105向电子设备205提供的锚定信息可由电子设备205使用以将棋盘定向在与由电子设备105显示的棋盘相同的取向上。在该示例中,即使当电子设备105的用户和电子设备205的用户处于远程位置时,电子设备205的用户也可以行走或以其他方式在棋盘的所显示的版本404周围移动以将他们自己定位成与电子设备105的用户相对。
在一个或多个其他具体实施中,由电子设备205显示的棋盘的版本404的取向可与由电子设备105显示的棋盘的取向不同地定向。例如,由电子设备205显示的棋盘的版本404可与UI 304相对于原点310的定位相似地相对于原点410定位(例如,使用从电子设备105接收的锚定信息),但旋转(例如,基于电子设备205处的偏好),使得与棋盘面向电子设备105的用户的一侧不同的棋盘相对侧面向电子设备205的用户。
在棋盘UI的示例性用例中,另一电子设备205可接收到在另一电子设备205处显示的棋盘的版本404的用户输入。例如,用户输入可以是手势输入,该手势输入对应于从虚拟锚点位置抬起由电子设备205显示的棋盘的版本404,以及将由电子设备205显示的棋盘的版本404放置在物理桌子415上。响应于该用户输入,另一电子设备205可将在另一电子设备205处显示的棋盘的版本404从对应锚点位置(例如,在位置405处)解除锚点,并且将在电子设备205处显示的棋盘的版本移动到与物理桌子415相关联的新锚点位置。如另一示例,用户输入可以是手势输入,该手势输入对应于旋转由电子设备205显示的棋盘的版本404(例如,使得棋盘的期望侧面向电子设备205的用户)。响应于该用户输入,另一电子设备205可根据旋转手势来旋转在另一电子设备205处显示的棋盘的版本404。在一个或多个具体实施中,移动和/或旋转在另一电子设备205处显示的棋盘的版本404独立于在电子设备105处显示的棋盘的显示。在一个或多个其他具体实施中,移动和/或旋转在另一电子设备205处显示的棋盘的版本404引起在电子设备105处显示的棋盘的对应移动和/或旋转(例如,使用描述从另一电子设备205向电子设备105提供的移动和/或用户输入的信息)。
在一个或多个具体实施中,电子设备205处的用户输入中的一些可引起由电子设备205显示的棋盘的版本404的改变而不影响由电子设备105显示的棋盘的显示,并且到由电子设备205显示的棋盘的版本404的其他用户输入可引起对棋盘在电子设备105处的显示的改变。例如,可向电子设备205的用户提供旋转棋盘而不影响由电子设备105显示的棋盘的旋转的能力,以及移动由电子设备205显示的棋盘的版本404上的棋子从而引起由电子设备105显示的棋盘上的相同棋子的对应运动的能力。
例如,电子设备105可确定(例如,基于与从电子设备105发送的UI 304的版本一起提供的元数据)不将用于旋转棋盘的手势输入发送回到电子设备105,并且将对应于移动棋盘上的棋子的手势输入发送回到电子设备105。在各种具体实施中,对应于棋子移动的手势输入信息可由电子设备205本地应用于由电子设备205显示的棋盘的版本404,并且被发送到电子设备105以应用于由电子设备105显示的棋盘(例如,以及用于游戏管理的底层应用程序),或者手势输入信息可被发送到电子设备105以用于影响由电子设备105显示的棋盘(例如,以及用于更新用于游戏管理的底层应用程序),并且然后由电子设备205显示的棋盘的版本404可基于由电子设备105响应于电子设备105接收到被提供给电子设备205的手势输入而生成的更新的UI信息和/或锚定信息(例如,并且从电子设备105被发送到电子设备205)来更新。
图9示出了根据本主题技术的各方面的用于接收投屏的应用程序的示例性过程的流程图。过程900的框在本文中被描述为顺序地或线性地发生。然而,过程900的多个框可以并行地发生。此外,过程900的框不必按所示顺序执行,并且/或者过程900的一个或多个框不必执行和/或可由其他操作替代。
在图9的示例中,在框902处,在其上未安装应用程序的第二设备处,从运行应用程序的第一设备接收应用程序的用户界面的版本。在一个或多个具体实施中,用户界面的版本包括与用户界面的一个或多个元素相关联的一个或多个视频流。在一个或多个具体实施中,用户界面的版本还包括与用户界面的该一个或多个元素相关联的一个或多个层树,以及用户界面的元数据。例如,第一设备和第二设备可经由安全无线连接通信。在各种具体实施中,第一设备和第二设备(和/或一个或多个附加设备)可以是作为视频会议会话或共存会话的参与者设备。
在一个或多个具体实施中,用户界面的该一个或多个元素包括数据编辑字段和按钮。该一个或多个视频流可包括对应于数据编辑字段的第一视频流和对应于按钮的第二视频流。
在框904处,利用第二设备使用该一个或多个层树和该一个或多个视频流来渲染用户界面的版本。下文结合例如图10描述用户界面的版本的渲染的进一步细节。
在框906处,利用第二设备显示用户界面的所渲染的版本。在一个或多个具体实施中,可诸如由第二设备接收到利用第二设备显示的用户界面的版本的用户输入。可根据用户输入来修改在第二设备处显示的用户界面的版本,而引起或不引起对在第一设备处显示的用户界面的修改。
例如,修改在第二设备处显示的用户界面的版本可包括独立于在第一设备处显示的用户界面对在第二设备处显示的用户界面的版本进行移动、尺寸调整、旋转或重新着色(例如,而不改变在第一设备处显示的用户界面的位置、尺寸、旋转或颜色)。
如另一示例,第二设备可向第一设备发送与用户输入相关联的信息,以引起在第一设备处显示的用户界面的对应修改。与用户输入相关联的信息可包括相对于在第二设备处显示的用户输入的版本的一个或多个元素描述用户输入的位置、运动、方向、深度或其他信息。
图10示出了根据本主题技术的各方面的用于渲染从另一设备接收的用户界面的版本的示例性过程的流程图。过程1000的框在本文中被描述为顺序地或线性地发生。然而,过程1000的多个框可以并行地发生。此外,过程1000的框不必按所示顺序执行,并且/或者过程1000的一个或多个框不必执行和/或可由其他操作替代。
在图10的示例中,在框1002处,将第二设备的偏好应用于该一个或多个层树中的至少一个层树。例如,存储在第二设备处的偏好可包括存储在第二设备处用于显示安装在该设备上的其他应用程序的用户界面的文本尺寸、字体、颜色或主题。因为由第一设备提供的用户界面的版本除了包括一个或多个视频流之外还包括该一个或多个层树,所以可应用第二设备偏好以在第二设备处与在第一设备处显示的UI不同地渲染用户界面的版本。
在框1004处,使用从第一设备接收的元数据来同步该一个或多个视频流和该一个或多个层树。使用从第一设备接收的元数据来同步该一个或多个视频流和该一个或多个层树可包括使用从第一设备接收的元数据在时间上同步该一个或多个视频流和该一个或多个层树。例如,元数据可包括时间信息,该时间信息指示该一个或多个视频流中的每个视频流的哪些帧将在任何给定时间被包括在由该一个或多个层树描述的用户界面的版本中(该一个或多个层树本身可根据在第一设备处显示的用户界面的改变而随时间改变)。
在一个或多个具体实施中,由于将偏好应用于该一个或多个层树中的至少一个层树,因此在第一设备处显示的用户界面中的该一个或多个元素中的至少一个元素与在第二设备处显示的用户界面的版本中的该一个或多个元素中的该至少一个元素看起来不同。例如,将第二设备的偏好应用于该一个或多个层树中的至少一个层树包括根据偏好来修改由该一个或多个层树中的一个层树的一部分指示的尺寸、形状或颜色,该一部分对应于用户界面的元素中的一个或多个元素。例如,在一个示例性操作场景中,使用来自第一设备的按钮的视频流在第二设备处显示的按钮或其他交互工具可基于第二设备的文本尺寸偏好在第二设备处放大(例如,相对于用户界面的其他元素)。如另一示例性操作场景,按钮当由第一设备显示时可具有基本上橙色的颜色,并且当由第二设备显示时可根据第二设备的主题或颜色偏好被修改为具有基本上蓝色的颜色。
图11示出了根据本主题技术的各方面的用于投屏应用程序的示例性过程的流程图。过程1100的框在本文中被描述为顺序地或线性地发生。然而,过程1100的多个框可以并行地发生。此外,过程1100的框不必按所示顺序执行,并且/或者过程1100的一个或多个框不必执行和/或可由其他操作替代。
在图11的示例中,在框1102处,设备显示在设备上运行的应用程序的用户界面。用户界面可包括一个或多个元素,诸如图4的用户界面304的元素306。
在框1104处,设备可确定与设备通信的另一设备不具有安装的该应用程序。确定另一设备不具有安装的该应用程序可包括:从第一设备向另一设备或向与该设备和另一设备相关联的服务器发送查询;以及响应于来自另一设备或服务器的查询,接收应用程序在另一设备处不可用或未安装的指示。当在设备处启动应用程序时,响应于来自在该设备上运行的该应用程序的用户针对应用程序共享的请求,或在启动该应用程序之前(例如,在握手操作期间和/或在该设备与另一设备之间的通信会话的建立期间),可执行另一设备不具有安装的该应用程序的确定。可由该应用程序和/或由在该设备上运行并且与该应用程序通信的一个或多个后台或***进程来执行另一设备不具有安装的该应用程序的确定。
在框1106处,该设备向其上未安装该应用程序的另一设备提供该应用程序在该设备处显示的用户界面的版本。从该设备向另一设备提供的用户界面的版本可包括与用户界面的一个或多个元素相关联的一个或多个视频流、与用户界面的该一个或多个元素相关联的一个或多个层树以及用户界面的元数据。例如,该一个或多个视频流包括各自对应于用户界面的多个元素中的一个元素的多个视频流。元数据可包括用于该一个或多个视频流和该一个或多个层树的同步的时间信息。
在一个或多个具体实施中,设备接收到在该设备处显示的用户界面的用户输入。作为示例,用户输入可包括到UI的文本输入字段的文本输入、对UI的显示按钮的点击、或对UI的元素(例如,子窗口)的尺寸调整。设备可根据用户输入来修改在该设备处显示的用户界面(例如,以在文本输入字段中显示键入的文本、执行对应于按钮的动作、或调整用户界面的元素的尺寸)。设备可根据用户输入来修改该一个或多个视频流和该一个或多个层树中的至少一者,使得另一设备可渲染对在另一设备处显示的用户界面的版本的对应修改。例如,根据用户输入来修改该一个或多个视频流和该一个或多个层树中的至少一者可包括独立于该多个视频流中的一个视频流(例如,对应于文本输入字段的视频流或对应于按钮的视频流)来修改该多个视频流中的另一视频流。
如本文所述,在另一设备处显示的用户界面的版本可以是用户界面的非交互式版本。然而,在一些具体实施中,与用户界面的版本的一些交互性可由另一设备提供。例如,在一个或多个具体实施中,设备可从另一设备接收对到在另一设备处显示的用户界面的版本的用户输入的指示,并且根据到在另一设备处显示的用户界面的版本的用户输入来修改在该设备处显示的用户界面。
在一个或多个具体实施中,过程1100还可包括由该设备确定另一设备的降低的能力(例如,降低的带宽和/或降低的计算能力),从而停止向另一设备提供包括该一个或多个视频流、该一个或多个层树和元数据的用户界面的版本,以及从该设备向另一设备提供表示该应用程序在该设备处显示的整个用户界面的单个视频流。
在一个或多个具体实施中,由设备显示的用户界面可被显示在三维显示(诸如混合现实或虚拟现实环境)中。为了允许另一设备与由该设备显示的UI相似地显示该UI的版本,也可从该设备向另一设备提供锚定信息。例如,显示在设备上运行的应用程序的用户界面可包括显示锚定到设备的物理环境中的物理锚点的用户界面,并且可向另一设备提供用于界面的版本的锚点信息。锚点信息可包括例如第一设备的物理环境中的原点与由第一设备显示的UI之间的变换。
例如,如果设备的用户口头地描述用户界面在其环境中的位置或用户界面的元素的内容相对于用户界面的其他元素的位置,并且另一设备的用户(例如,在远程位置处)期望查看正被描述的UI或其元素,则向另一设备提供锚定信息可能是有帮助的。
结合图12和图13描述其中提供应用程序投屏以进行三维显示的具体实施的进一步特征。
图12示出了根据本主题技术的各方面的用于接收投屏的应用程序以进行三维显示的示例性过程的流程图。过程1200的框在本文中被描述为顺序地或线性地发生。然而,过程1200的多个框可以并行地发生。此外,过程1200的框不必按所示顺序执行,并且/或者过程1200的一个或多个框不必执行和/或可由其他操作替代。
在图12的示例中,在框1202处,其上未安装应用程序的第二设备从运行该应用程序的第一设备接收与第一设备在第一设备的第一环境中的第一锚点位置处显示的应用程序的用户界面相关联的信息。例如,与用户界面相关联的信息可包括用户界面的视觉显示信息和锚定信息。锚定信息可相对于第一设备的第一环境中的第一原点限定第一锚点位置。
在框1204处,第二设备使用视觉显示信息(例如,远程UI信息)来渲染用户界面的版本。渲染用户界面的版本可包括使用包括在视觉显示信息中的元数据来同步视觉显示信息中的一个或多个视频流与视觉显示信息中的一个或多个层树(例如,通过执行以上结合图10所述的操作中的一个或多个操作)。
在框1206处,第二设备显示锚定到第二锚点位置的用户界面的版本,第二锚点位置使用锚定信息来相对于第二设备的第二环境中的第二原点限定。例如,锚定信息可包括第一原点与用户界面的第一锚点位置之间的变换。显示锚定到第二锚点位置的用户界面的版本可包括通过相对于第二原点应用相同变换来确定第二锚点位置。
在一个或多个具体实施中,第一锚点位置对应于第一设备的物理环境中的物理锚点对象,并且第二锚点位置对应于第二设备的第二环境中的虚拟锚点(例如,如以上结合图7所述)。在一个或多个具体实施中,第二设备可在虚拟锚点位置处渲染和/或显示虚拟锚点对象(例如,如以上结合图8所述)。例如,虚拟锚点对象可具有形式,该形式对应于物理锚点对象的形式。
在一个或多个具体实施中,第一设备的第一环境与第二设备的第二环境相同(例如,相同物理环境),并且第一原点和第二原点是在单个位置处的公共原点。在其他具体实施中,第一设备的第一环境远离第二设备的第二环境,第一原点在第一环境本地并且第二原点在第二环境本地,并且锚定信息包括变换,该变换使得和第一锚点位置相对于第一原点定位一样,第二锚点位置相似地相对于第二原点定位。
如本文所述,在另一设备处显示的用户界面的版本可以是用户界面的非交互式版本。然而,在一些具体实施中,与用户界面的版本的一些交互性可由另一设备提供。例如,在一个或多个具体实施中,第二设备可接收到在第二设备处显示的用户界面的版本的用户输入(例如,用户输入诸如对应于抓取和移动用户界面的手势)。响应于用户输入,第二设备可将在第二设备处显示的用户界面的版本从第二锚点位置解除锚点,并且将在第二设备处显示的用户界面的版本移动到第二环境中的新锚点位置。在一个或多个具体实施中,移动在第二设备处显示的用户界面的版本独立于用户界面在第一设备处的显示。在一个或多个其他具体实施中,移动在第二设备处显示的用户界面的版本引起在第一设备处显示的用户界面的对应移动。例如,可从第二设备向第一设备发送对用户输入的指示,使得当用户界面显示在第一设备处时,第一设备可执行用户界面的对应移动。
图13示出了根据本主题技术的各方面的用于投屏应用程序以进行三维显示的示例性过程的流程图。过程1300的框在本文中被描述为顺序地或线性地发生。然而,过程1300的多个框可并行地发生。此外,过程1300的框不必按所示顺序执行,并且/或者过程1300的一个或多个框不必执行和/或可由其他操作替代。
在图13的示例中,在框1302处,在设备的环境中的锚点位置处显示在设备上运行的应用程序的用户界面。
在框1304处,设备可确定与设备通信的另一设备不具有安装的该应用程序。确定另一设备不具有安装的该应用程序可包括:从第一设备向另一设备或向与该设备和另一设备相关联的服务器发送查询;以及响应于来自另一设备或服务器的查询,接收应用程序在另一设备处不可用或未安装的指示。当在设备处启动应用程序时,响应于来自在该设备上运行的该应用程序的用户针对应用程序共享的请求,或在启动该应用程序之前(例如,在握手操作期间和/或在该设备与另一设备之间的通信会话的建立期间),可执行另一设备不具有安装的该应用程序的确定。可由该应用程序和/或由在该设备上运行并且与该应用程序通信的一个或多个后台进程来执行另一设备不具有安装的该应用程序的确定。
在框1306处,该设备可向其上未安装该应用程序的另一设备提供与该应用程序的用户界面相关联的信息。与用户界面相关联的信息可包括用于用户界面的视觉显示信息和锚定信息。锚定信息可相对于设备的环境中的原点限定锚点位置。例如,锚定信息可包括原点与用户界面的锚点位置之间的变换。视觉显示信息(例如,远程UI信息)可包括各自对应于用户界面的元素的多个视频流。视觉显示信息还可包括元数据,该元数据包括用于使用该多个视频流在另一设备处渲染用户界面的版本的时间信息。
在一个或多个具体实施中,设备的环境中的锚点位置对应于设备的物理环境中的物理锚点对象,并且物理锚点对象在另一设备的另一物理环境中不可用(例如,如以上结合图7所述)。在一个或多个具体实施中,设备可响应于来自应用程序针对物理锚点对象的请求(例如,针对特定物理对象(诸如桌子或墙壁)或针对更一般的物理对象(诸如竖直平面或水平平面)的请求)来识别物理锚点对象。
如上所述,本主题技术的各方面可包括从应用程序到其他用户的计算设备的数据的收集和传递。本公开设想,在一些实例中,该所收集的数据可包括唯一地识别或可用于识别具体人员的个人信息数据。此类个人信息数据可包括人口统计数据、基于位置的数据、在线标识符、电话号码、电子邮件地址、家庭地址、与用户的健康或健身级别相关的数据或记录(例如,生命特征测量、药物信息、锻炼信息)、出生日期或任何其他个人信息。
本公开认识到在本发明技术中使用此类个人信息数据可用于使用户受益。例如,可在与多个用户的协作设置使用个人信息数据。此外,本公开还预期个人信息数据有益于用户的其他用途。例如,健康和健身数据可根据用户的偏好来使用以提供对其总体健康状况的见解,或者可用作对使用技术来追求健康目标的个体的积极反馈。
本公开设想负责收集、分析、公开、传输、存储或其他使用此类个人信息数据的实体将遵守既定的隐私政策和/或隐私实践。具体地,将期望此类实体实现和一贯地应用一般公认为满足或超过维护用户隐私的行业或政府所要求的隐私实践。关于使用个人数据的此类信息应当被突出地并能够被用户方便地访问,并应当随数据的收集和/或使用变化而被更新。用户的个人信息应被收集仅用于合法使用。另外,此类收集/共享应仅发生在接收到用户同意或在适用法律中所规定的其他合法根据之后。另外,此类实体应考虑采取任何必要步骤,保卫和保障对此类个人信息数据的访问,并确保有权访问个人信息数据的其他人遵守其隐私政策和流程。另外,这种实体可使其本身经受第三方评估以证明其遵守广泛接受的隐私政策和实践。此外,应针对被收集和/或访问的特定类型的个人信息数据调整政策和实践,并使其适用于适用法律和标准,包括可用于施加较高标准的辖区专有的具体考虑因素。例如,在美国,对某些健康数据的收集或获取可能受联邦和/或州法律的管辖,诸如健康保险流通和责任法案(HIPAA);而其他国家的健康数据可能受到其他法规和政策的约束并应相应处理。
不管前述情况如何,本公开还设想用户选择性地阻止使用或访问个人信息数据的具体实施。即本公开预期可提供硬件元件和/或软件元件,以防止或阻止对此类个人信息数据的访问。例如,在从特定应用程序共享信息的情况下,本发明的技术可被配置为在注册服务期间或之后任何时候允许用户选择“选择加入”或“选择退出”参与对个人信息数据的收集。除了提供“选择加入”和“选择退出”选项外,本公开还设想提供与访问或使用个人信息相关的通知。例如,可在下载应用时向用户通知其个人信息数据将被访问,然后就在个人信息数据被应用访问之前再次提醒用户。
此外,本公开的目的是应管理和处理个人信息数据以最小化无意或未经授权访问或使用的风险。一旦不再需要数据,通过限制数据收集和删除数据可最小化风险。此外,并且当适用时,包括在某些健康相关应用程序中,数据去标识可用于保护用户的隐私。可在适当时通过移除标识符、控制所存储数据的量或特异性(例如,在城市级别而不是在地址级别收集位置数据)、控制数据如何被存储(例如,在用户间汇集数据)和/或其他方法诸如差异化隐私来促进去标识。
因此,虽然本公开广泛地覆盖了使用个人信息数据来实现一个或多个各种所公开的实施方案,但本公开还预期各种实施方案也可在无需访问此类个人信息数据的情况下被实现。即,本发明技术的各种实施方案不会由于缺少此类个人信息数据的全部或一部分而无法正常进行。
图14示出了根据一个或多个具体实施的可用以实施本主题技术的各方面的示例性计算设备。计算设备1400可以是用于生成上文所述特征和过程的任何计算设备或服务器并且/或者可以是用于生成上文所述特征和过程的任何计算设备或服务器的一部分,包括但不限于膝上型计算机、智能电话、平板设备、可穿戴设备,诸如护目镜或眼镜等。计算设备1400可包括各种类型的计算机可读介质以及用于各种其他类型的计算机可读介质的接口。计算设备1400包括永久性存储设备1402、***存储器1404(和/或缓冲器)、输入设备接口1406、输出设备接口1408、总线1410、ROM 1412、一个或多个处理单元1414、一个或多个网络接口1416和/或它们的子集和变型。
总线1410总体表示通信地连接计算设备1400的许多内部设备的所有***、***设备和芯片组总线。在一个或多个具体实施中,总线1410将一个或多个处理单元1414与ROM1412、***存储器1404和永久性存储设备1402通信地连接。一个或多个处理单元1414从这些各种存储器单元检索要执行的指令和要处理的数据,以便执行本主题公开的过程。在不同的具体实施中,一个或多个处理单元1414可以是单个处理器或多核处理器。
ROM 1412存储一个或多个处理单元1414以及计算设备1400的其他模块所需要的静态数据和指令。在其他方面,永久性存储设备1402可以是读写存储器设备。永久性存储设备1402可以是即使在计算设备1400关闭时也存储指令和数据的非易失性存储器单元。在一个或多个具体实施中,海量存储设备(诸如磁盘或光盘及其对应盘驱动器)可用作永久性存储设备1402。
在一个或多个具体实施中,可移除存储设备(诸如软盘、闪存驱动器及其对应盘驱动器)可用作永久性存储设备1402。与永久性存储设备1402一样,***存储器1404可以是读写存储器设备。然而,与永久性存储设备1402不同,***存储器1404可以是易失性读写存储器,诸如随机存取存储器。***存储器1404可存储一个或多个处理单元1414在运行时可能需要的指令和数据中的任何指令和数据。在一个或多个具体实施中,本主题公开的过程被存储在***存储器1404、永久性存储设备1402和/或ROM 1412中。一个或多个处理单元1414从这些各种存储器单元检索要执行的指令和要处理的数据,以便执行一个或多个具体实施的过程。
总线1410还连接到输入设备接口1406和输出设备接口1408。输入设备接口1406使得用户能够向计算设备1400传送信息以及选择命令。可与输入设备接口1406一起使用的输入设备可包括例如字母数字混合键盘和指向设备(也称为“光标控制设备”)。输出设备接口1408可例如使得能够显示计算设备1400所生成的图像。可与输出设备接口1408一起使用的输出设备可包括例如打印机和显示设备,诸如液晶显示器(LCD)、发光二极管(LED)显示器、有机发光二极管(OLED)显示器、柔性显示器、平板显示器、固态显示器、投影仪或用于输出信息的任何其他设备。
一个或多个具体实施可包括既充当输入设备又充当输出设备的设备,诸如触摸屏。在这些具体实施中,提供给用户的反馈可以是任何形式的感官反馈,诸如视觉反馈、听觉反馈或触觉反馈;并且可以任何形式接收来自用户的输入,包括声学、语音或触觉输入。
最后,如图14所示,总线1410还通过一个或多个网络接口1416将计算设备1400耦接到一个或多个网络和/或耦接到一个或多个网络节点。以此方式,计算设备1400可以是计算机网络(诸如,LAN、广域网(“WAN”)或内联网)的一部分,或者可以是网络的网络(诸如互联网)的一部分。计算设备1400的任何或所有部件可与本主题公开一起使用。
可以使用编写有一个或多个指令的有形计算机可读存储介质(或一种或多种类型的多个有形计算机可读存储介质)部分地或全部地实现本公开范围之内的具体实施。有形计算机可读存储介质实质上也可以是非暂态的。
计算机可读存储介质可以是任何可以由通用或专用计算设备读、写或以其他方式访问的存储介质,包括任何能够执行指令的处理电子器件和/或处理电路。例如,非限制地,计算机可读介质可包括任何易失性半导体存储器,诸如RAM、DRAM、SRAM、T-RAM、Z-RAM和TTRAM。计算机可读介质也可包括任何非易失性半导体存储器,诸如ROM、PROM、EPROM、EEPROM、NVRAM、闪存、nvSRAM、FeRAM、FeTRAM、MRAM、PRAM、CBRAM、SONOS、RRAM、NRAM、赛道存储器、FJG和Millipede存储器。
此外,计算机可读存储介质可包括任何非半导体存储器,诸如光盘存储装置、磁盘存储装置、磁带、其他磁性存储设备或者能够存储一个或多个指令的任何其他介质。在一个或多个具体实施中,有形计算机可读存储介质可直接耦接到计算设备,而在其他具体实施中,有形计算机可读存储介质可例如经由一个或多个有线连接、一个或多个无线连接、或它们的任意组合而间接地耦接到计算设备。
指令可以是直接能执行的,或者可用于开发可执行指令。例如,指令可被实现为可执行的或不可执行的机器代码,或者可被实现为可被编译以产生可执行的或不可执行的机器代码的高级语言指令。此外,指令也可被实现为数据,或者可包括数据。计算机可执行指令也可以任何格式组织,包括例程、子例程、程序、数据结构、对象、模块、应用程序、小程序、函数等。如本领域技术人员认识到的那样,包括但不限于指令的数量、结构、序列和组织的细节可明显不同,而不改变底层的逻辑、功能、处理和输出。
虽然以上论述主要涉及执行软件的微处理器或多核处理器,但一个或多个具体实施由一个或多个集成电路诸如ASIC或FPGA执行。在一个或多个具体实施中,此类集成电路执行存储在电路自身上的指令。
本领域的技术人员将会认识到,本文所述的各种例示性的框、模块、元件、部件、方法和算法可被实现为电子硬件、计算机软件或两者的组合。为了说明硬件和软件的这种可互换性,上文已经一般性地按照功能性对各种例示性的框、模块、元件、部件、方法和算法进行了描述。此类功能性是被实现为硬件还是软件取决于具体应用程序以及对整个***施加的设计约束。技术人员对于每个具体应用程序可通过不同方式实现所描述的功能性。各种部件和框可被不同地布置(例如,以不同的顺序排列,或以不同的方式划分),而不脱离本主题技术的范围。
应当理解,本发明所公开的过程中的框的特定顺序或层级结构为示例性方法的例示。基于设计优选要求,应当理解,过程中的框的特定顺序或者层级结构可被重新布置或者所有示出的框都被执行。这些框中的任何框可被同时执行。在一个或多个具体实施中,多任务和并行处理可能是有利的。此外,上文所述具体实施中的各个***部件的划分不应被理解为在所有具体实施中都要求此类划分,并且应当理解,所述程序部件(例如,计算机程序产品)和***可一般性地被一起整合在单个软件产品中或者封装到多个软件产品中。
如本说明书以及本专利申请的任何权利要求中所用,术语“基站”、“接收器”、“计算机”、“服务器”、“处理器”及“存储器”均是指电子设备或其他技术设备。这些术语排除人或者人的群组。出于本说明书的目的,术语“显示”或“正在显示”意指在电子设备上显示。
如本文所用,在用术语“和”或“或”分开项目中任何项目的一系列项目之后的短语“中的至少一者”是将列表作为整体进行修饰,而不是修饰列表中的每个成员(即每个项目)。短语“中的至少一者”不要求选择所列出的每个项目中的至少一个;相反,该短语允许包括任何一个项目中的至少一个和/或项目的任何组合中的至少一个和/或每个项目中的至少一个的含义。举例来说,短语“A、B和C中的至少一者”或“A、B或C中的至少一者”各自是指仅A、仅B或仅C;A、B和C的任意组合;和/或A、B和C中的每一个中的至少一个。
谓词字词“被配置为”、“能够操作以”以及“被编程以”并不意味着对某一主题进行任何特定的有形或无形的修改而是旨在可互换使用。在一个或多个具体实施中,被配置为监视和控制操作或部件的处理器也可以是意指处理器被编程以监视和控制操作或者处理器可操作以监视和控制操作。同样,被配置为执行代码的处理器可解释为被编程以执行代码或能够操作以执行代码的处理器。
短语诸如方面、该方面、另一方面、一些方面、一个或多个方面、具体实施、该具体实施、另一具体实施、一些具体实施、一个或多个具体实施、实施方案、该实施方案、另一实施方案、一些实施方案、一个或多个实施方案、配置、该配置、其他配置、一些配置、一种或多种配置、主题技术、公开、本公开、它们的其他变型等等都是为了方便,并不意味着涉及这样的一个或多个短语的公开对于主题技术是必不可少的,也不意味着这种公开适用于主题技术的所有配置。涉及此类一个或多个短语的公开可适用于所有配置或一个或多个配置。涉及此类一个或多个短语的公开可提供一个或多个示例。短语诸如方面或一些方面可指代一个或多个方面,反之亦然,并且这与其他前述短语类似地应用。
字词“示例性”在本文中被用于意指“用作示例、实例或者例示”。在本文中被描述为“示例性的”或作为“示例”的任何实施方案不必被理解为优选于或优于其他具体实施。此外,在术语“包括”、“具有”等在说明书或权利要求中使用的限度内,这样的术语旨在是包含性的,与术语“包括”当在权利要求中被用作过渡字词时“包括”被解释的方式类似。
本领域的普通技术人员已知或稍后悉知的贯穿本公开描述的各个方面的元素的所有结构和功能等同物通过引用明确地并入本文,并且旨在被权利要求书所涵盖。此外,本文所公开的任何内容并非旨在提供给公众,而与该公开是否明确地被陈述在权利要求中无关。不应根据35U.S.C.§112(f)的规定解释任何权利要求要素,除非使用短语“用于……的装置”明确陈述了该要素,或者就方法权利要求而言,使用短语“用于……的步骤”陈述了该要素。
先前的描述被提供以使得本领域的技术人员能够实践本文所述的各个方面。这些方面的各种修改对本领域的技术人员而言是显而易见的,并且本文所限定的通用原则可应用于其他方面。因此,本权利要求书并非旨在受限于本文所示的方面,而是旨在使得全部范围与语言权利要求书一致,其中对奇异值中的元素的引用并非旨在意味着“仅仅一个”,而是指“一个或多个”,除非被具体指出。除非另外特别说明,否则术语“一些”是指一个或多个。男性的代名词(例如,他的)包括女性和中性(例如,她的和它的),并且反之亦然。标题和子标题(如果有的话)仅为了方便起见而使用并且不限制本主题公开。

Claims (41)

1.一种方法,包括:
在其上未安装应用程序的第二设备处,从运行所述应用程序的第一设备接收在所述第一设备处显示的针对所述应用程序用户界面的版本,
其中所述用户界面的所述版本包括:
与所述用户界面的一个或多个元素相关联的一个或多个视频流,
与所述用户界面的所述一个或多个元素相关联的一个或多个层树,以及
所述用户界面的元数据,
使用所述一个或多个层树和所述一个或多个视频流,利用所述第二设备通过以下来渲染所述用户界面的所述版本:
将所述第二设备的偏好应用于所述一个或多个层树中的至少一个层树,以及
使用从所述第一设备接收的所述元数据来同步所述一个或多个视频流和所述一个或多个层树;以及
利用所述第二设备显示所述用户界面的所渲染的版本。
2.根据权利要求1所述的方法,其中由于将所述偏好应用于所述一个或多个层树中的所述至少一个层树,因此在所述第一设备处显示的所述用户界面中的所述一个或多个元素中的至少一个元素与在所述第二设备处显示的所述用户界面的所述版本中的所述一个或多个元素中的所述至少一个元素看起来不同。
3.根据权利要求1所述的方法,其中所述用户界面的所述一个或多个元素包括数据编辑字段和按钮。
4.根据权利要求3所述的方法,其中所述一个或多个视频流包括对应于所述数据编辑字段的第一视频流和对应于所述按钮的第二视频流。
5.根据权利要求1所述的方法,其中存储在所述第二设备处的所述偏好包括文本尺寸、颜色或主题。
6.根据权利要求1所述的方法,还包括接收利用所述第二设备显示的所述用户界面的所述版本的用户输入。
7.根据权利要求6所述的方法,还包括根据所述用户输入来修改在所述第二设备处显示的所述用户界面的所述版本,而不引起对在所述第一设备处显示的所述用户界面的修改。
8.根据权利要求7所述的方法,其中修改在所述第二设备处显示的所述用户界面的所述版本包括:独立于在所述第一设备处显示的所述用户界面对在所述第二设备处显示的所述用户界面的所述版本进行移动、尺寸调整、旋转或重新着色。
9.根据权利要求6所述的方法,还包括:
根据所述用户输入来修改在所述第二设备处显示的所述用户界面的所述版本;以及
向所述第一设备发送与所述用户输入相关联的信息,以引起在所述第一设备处显示的所述用户界面的对应修改。
10.根据权利要求1所述的方法,其中使用从所述第一设备接收的所述元数据来同步所述一个或多个视频流和所述一个或多个层树包括:使用从所述第一设备接收的所述元数据在时间上同步所述一个或多个视频流和所述一个或多个层树。
11.根据权利要求1所述的方法,其中将所述第二设备的所述偏好应用于所述一个或多个层树中的至少一个层树包括:根据所述偏好来修改由所述一个或多个层树中的一个层树的一部分指示的尺寸、形状或颜色,所述一部分对应于所述用户界面的所述元素中的一个或多个元素。
12.一种包括存储在有形计算机可读存储介质中的代码的计算机程序产品,所述代码包括:
用于在其上未安装应用程序的第二设备处,从运行所述应用程序的第一设备接收在所述第一设备处显示的针对所述应用程序的用户界面的版本的代码,
其中所述用户界面的所述版本包括:
与所述用户界面的一个或多个元素相关联的一个或多个视频流,
与所述用户界面的所述一个或多个元素相关联的一个或多个层树,以及
所述用户界面的元数据,
用于使用所述一个或多个层树和所述一个或多个视频流,利用所述第二设备通过以下来渲染所述用户界面的所述版本的代码:
将所述第二设备的偏好应用于所述一个或多个层树中的至少一个层树,以及
使用从所述第一设备接收的所述元数据来同步所述一个或多个视频流和所述一个或多个层树;以及
用于利用所述第二设备显示所述用户界面的所渲染的版本的代码。
13.一种设备,包括:
处理器;以及
存储器,所述存储器包含指令,所述指令在由所述处理器执行时致使所述处理器:
显示在所述设备上运行的应用程序的用户界面;
确定与所述设备通信的另一设备未安装有所述应用程序;以及
从所述设备向其上未安装所述应用程序的所述另一设备提供在所述设备处显示的针对所述应用程序的用户界面的版本,
其中所述用户界面的所述版本包括:
与所述用户界面的一个或多个元素相关联的一个或多个视频流,
与所述用户界面的所述一个或多个元素相关联的一个或多个层树,以及
所述用户界面的元数据。
14.一种方法,包括:
由设备显示在所述设备上运行的应用程序的用户界面;
由所述设备确定与所述设备通信的另一设备未安装有所述应用程序;以及
从所述设备向其上未安装所述应用程序的所述另一设备提供在所述设备处显示的针对所述应用程序的用户界面的版本,
其中所述用户界面的所述版本包括:
与所述用户界面的一个或多个元素相关联的一个或多个视频流,
与所述用户界面的所述一个或多个元素相关联的一个或多个层树,以及
所述用户界面的元数据。
15.根据权利要求14所述的方法,还包括:
接收在所述设备处显示的所述用户界面的用户输入;
根据所述用户输入来修改在所述设备处显示的所述用户界面;以及
根据所述用户输入来修改所述一个或多个视频流和所述一个或多个层树中的至少一者。
16.根据权利要求15所述的方法,其中所述一个或多个视频流包括各自对应于所述用户界面的多个元素中的一个元素的多个视频流。
17.根据权利要求16所述的方法,其中根据所述用户输入来修改所述一个或多个视频流和所述一个或多个层树中的至少一者包括:独立于所述多个视频流中的另一视频流来修改所述多个视频流中的一个视频流。
18.根据权利要求14所述的方法,其中所述元数据包括用于所述一个或多个视频流和所述一个或多个层树的同步的时间信息。
19.根据权利要求14所述的方法,还包括:
在所述设备处,从所述另一设备接收对在所述另一设备处显示的所述用户界面的所述版本的用户输入的指示;以及
根据在所述另一设备处显示的所述用户界面的所述版本的所述用户输入来修改在所述设备处显示的所述用户界面。
20.根据权利要求14所述的方法,其中显示在所述设备上运行的所述应用程序的所述用户界面包括:显示锚定到所述设备的物理环境中的物理锚点的所述用户界面,所述方法还包括向所述另一设备提供针对所述用户界面的所述版本的锚点信息。
21.根据权利要求14所述的方法,还包括:
由所述设备确定所述另一设备的降低的能力;
停止向所述另一设备提供包括所述一个或多个视频流、所述一个或多个层树和所述元数据的所述用户界面的所述版本;以及
从所述设备向所述另一设备提供单个视频流,所述单个视频流表示在所述设备处显示的针对所述应用程序的整个用户界面。
22.一种方法,包括:
在其上未安装应用程序的第二设备处,从运行所述应用程序的第一设备接收与所述应用程序的用户界面相关联的信息,其中所述用户界面由所述第一设备在所述第一设备的第一环境中的第一锚点位置处显示,
其中与所述用户界面相关联的所述信息包括针对所述用户界面的视觉显示信息和锚定信息,并且
其中所述锚定信息相对于所述第一设备的所述第一环境中的第一原点限定所述第一锚点位置;
由所述第二设备使用所述视觉显示信息来渲染所述用户界面的版本;以及
由所述第二设备显示锚定到第二锚点位置的所述用户界面的所述版本,所述第二锚点位置是使用所述锚定信息相对于所述第二设备的第二环境中的第二原点而限定的。
23.根据权利要求22所述的方法,其中所述第一锚点位置对应于所述第一设备的物理环境中的物理锚点对象,并且其中所述第二锚点位置对应于所述第二设备的所述第二环境中的虚拟锚点。
24.根据权利要求23所述的方法,还包括由所述第二设备在所述虚拟锚点处渲染虚拟锚点对象。
25.根据权利要求24所述的方法,其中所述虚拟锚点对象具有对应于所述物理锚点对象的形式的形式。
26.根据权利要求22所述的方法,其中所述第一设备的所述第一环境与所述第二设备的所述第二环境相同,并且其中所述第一原点和所述第二原点是在单个位置处的公共原点。
27.根据权利要求22所述的方法,其中所述第一设备的所述第一环境远离所述第二设备的所述第二环境,其中所述第一原点在所述第一环境本地并且所述第二原点在所述第二环境本地,并且其中所述锚定信息包括变换,所述变换使得所述第二锚点位置如同所述第一锚点位置相对于所述第一原点定位而相似地相对于所述第二原点定位。
28.根据权利要求27所述的方法,还包括:
接收在所述第二设备处显示的所述用户界面的所述版本的用户输入;以及
响应于所述用户输入:
将在所述第二设备处显示的所述用户界面的所述版本从所述第二锚点位置解除锚定;以及
将在所述第二设备处显示的所述用户界面的所述版本移动到所述第二环境中的新锚点位置。
29.根据权利要求28所述的方法,其中移动在所述第二设备处显示的所述用户界面的所述版本独立于所述用户界面在所述第一设备处的显示。
30.根据权利要求28所述的方法,其中移动在所述第二设备处显示的所述用户界面的所述版本引起在所述第一设备处显示的所述用户界面的对应移动。
31.一种设备,包括:
处理器;以及
存储器,所述存储器包含指令,所述指令在由所述处理器执行时致使所述处理器:
在所述设备的环境中的锚点位置处显示在所述设备上运行的应用程序的用户界面;
确定与所述设备通信的另一设备未安装有所述应用程序;以及
从所述设备向其上未安装所述应用程序的所述另一设备提供与所述应用程序的所述用户界面相关联的信息,
其中与所述用户界面相关联的所述信息包括针对所述用户界面的视觉显示信息和锚定信息,并且
其中所述锚定信息相对于所述设备的所述环境中的原点限定所述锚点位置。
32.根据权利要求31所述的设备,其中所述视觉显示信息包括各自对应于所述用户界面的元素的多个视频流。
33.根据权利要求32所述的设备,其中所述视觉显示信息还包括元数据,所述元数据包括用于使用所述多个视频流在所述另一设备处渲染所述用户界面的版本的时间信息。
34.根据权利要求31所述的设备,其中所述设备的所述环境中的所述锚点位置对应于所述设备的物理环境中的物理锚点对象。
35.根据权利要求34所述的设备,其中所述物理锚点对象在所述另一设备的另一物理环境中不可用。
36.根据权利要求35所述的设备,其中处理器被配置为响应于来自所述应用程序的针对所述物理锚点对象的请求来识别所述物理锚点对象。
37.一种方法,包括:
在设备的环境中的锚点位置处显示在所述设备上运行的应用程序的用户界面;
确定与所述设备通信的另一设备未安装有所述应用程序;以及
从所述设备向其上未安装所述应用程序的所述另一设备提供与所述应用程序的所述用户界面相关联的信息,
其中与所述用户界面相关联的所述信息包括针对所述用户界面的视觉显示信息和锚定信息,并且
其中所述锚定信息相对于所述设备的所述环境中的原点限定所述锚点位置。
38.根据权利要求37所述的方法,其中所述视觉显示信息包括各自对应于所述用户界面的元素的多个视频流。
39.根据权利要求38所述的方法,其中所述视觉显示信息还包括元数据,所述元数据包括用于使用所述多个视频流在所述另一设备处渲染所述用户界面的版本的时间信息。
40.根据权利要求39所述的方法,其中:
所述设备的所述环境中的所述锚点位置对应于所述设备的物理环境中的物理锚点对象;以及
所述物理锚点对象在所述另一设备的另一物理环境中不可用。
41.根据权利要求40所述的方法,还包括响应于来自所述应用程序的针对所述物理锚点对象的请求来识别所述物理锚点对象。
CN202180092980.0A 2021-02-04 2021-12-08 应用程序投屏 Pending CN116848507A (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US63/145,952 2021-02-04
US17/541,207 2021-12-02
US17/541,207 US20220244903A1 (en) 2021-02-04 2021-12-02 Application casting
PCT/US2021/062450 WO2022169506A1 (en) 2021-02-04 2021-12-08 Application casting

Publications (1)

Publication Number Publication Date
CN116848507A true CN116848507A (zh) 2023-10-03

Family

ID=88162110

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202180092980.0A Pending CN116848507A (zh) 2021-02-04 2021-12-08 应用程序投屏

Country Status (1)

Country Link
CN (1) CN116848507A (zh)

Similar Documents

Publication Publication Date Title
US11831814B2 (en) Parallel video call and artificial reality spaces
US20230102820A1 (en) Parallel renderers for electronic devices
US20210326594A1 (en) Computer-generated supplemental content for video
US20230040610A1 (en) Object placement for electronic devices
US20210074014A1 (en) Positional synchronization of virtual and physical cameras
KR20220156870A (ko) 확장 현실 레코더
US20240211053A1 (en) Intention-based user interface control for electronic devices
US20230221830A1 (en) User interface modes for three-dimensional display
US20220244903A1 (en) Application casting
CN116848507A (zh) 应用程序投屏
WO2022169506A1 (en) Application casting
US11361473B1 (en) Including a physical object based on context
US11816759B1 (en) Split applications in a multi-user communication session
US11972088B2 (en) Scene information access for electronic device applications
US12052430B2 (en) Energy efficient context relevant processing for content
CN117999532A (zh) 用于电子设备的并行渲染器
US20230072623A1 (en) Artificial Reality Device Capture Control and Sharing
US20230319296A1 (en) Energy efficient context relevant processing for content
US20230315385A1 (en) Methods for quick message response and dictation in a three-dimensional environment
CN118235104A (zh) 用于电子设备的基于意图的用户界面控制
CN118284880A (zh) 用于三维显示的用户界面模式
CN118265962A (zh) 用于电子设备应用程序的场景信息访问
WO2023014618A1 (en) Object placement for electronic devices
WO2023192047A1 (en) Energy efficient context relevant processing for content

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