CN115769561A - 用于相机用户界面的第三方修改 - Google Patents
用于相机用户界面的第三方修改 Download PDFInfo
- Publication number
- CN115769561A CN115769561A CN202180046360.3A CN202180046360A CN115769561A CN 115769561 A CN115769561 A CN 115769561A CN 202180046360 A CN202180046360 A CN 202180046360A CN 115769561 A CN115769561 A CN 115769561A
- Authority
- CN
- China
- Prior art keywords
- user interface
- content
- camera user
- camera
- application
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N23/00—Cameras or camera modules comprising electronic image sensors; Control thereof
- H04N23/60—Control of cameras or camera modules
- H04N23/63—Control of cameras or camera modules by using electronic viewfinders
- H04N23/631—Graphical user interfaces [GUI] specially adapted for controlling image capture or setting capture parameters
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0484—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
- G06F3/04842—Selection of displayed objects or displayed text elements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/40—Information retrieval; Database structures therefor; File system structures therefor of multimedia data, e.g. slideshows comprising image and additional audio data
- G06F16/43—Querying
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/002—Specific input/output arrangements not covered by G06F3/01 - G06F3/16
- G06F3/005—Input arrangements through a video camera
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0481—Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0484—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
- G06F3/04845—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range for image manipulation, e.g. dragging, rotation, expansion or change of colour
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/07—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail characterised by the inclusion of specific contents
- H04L51/10—Multimedia information
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/07—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail characterised by the inclusion of specific contents
- H04L51/18—Commands or executable codes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N23/00—Cameras or camera modules comprising electronic image sensors; Control thereof
- H04N23/60—Control of cameras or camera modules
- H04N23/63—Control of cameras or camera modules by using electronic viewfinders
- H04N23/631—Graphical user interfaces [GUI] specially adapted for controlling image capture or setting capture parameters
- H04N23/632—Graphical user interfaces [GUI] specially adapted for controlling image capture or setting capture parameters for displaying or modifying preview images prior to image capturing, e.g. variety of image resolutions or capturing parameters
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N5/00—Details of television systems
- H04N5/222—Studio circuitry; Studio devices; Studio equipment
- H04N5/262—Studio circuits, e.g. for mixing, switching-over, change of character of image, other special effects ; Cameras specially adapted for the electronic generation of special effects
- H04N5/272—Means for inserting a foreground image in a background image, i.e. inlay, outlay
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/52—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail for supporting social networking services
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Computational Linguistics (AREA)
- Information Transfer Between Computers (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
在一个或更多个实现方式中,可以从第三方应用访问客户端应用的相机用户界面。相机用户界面可以基于来自第三方应用的开发者的输入被修改。对相机用户界面的修改可以根据由与客户端应用有关的服务提供商提供的框架进行。对客户端应用的相机用户界面的修改可以涉及:修改相机用户界面的初始版本的一个或更多个用户界面元素,修改经由相机用户界面的初始版本可用的功能,或将与第三方应用有关的信息添加到相机用户界面的初始版本。
Description
优先权要求
本专利申请要求于2020年6月30日提交的美国临时专利申请序列号63/046,243以及2021年6月22日提交的美国专利申请序列号17/354,995的优先权的权益,上述申请以其全部内容通过引用并入本文。
背景技术
由客户端设备执行的应用可以用于生成内容。例如,客户端应用可以用于生成消息内容、图像内容、视频内容、音频内容、媒体覆盖、文档、创意作品、其组合等。在各种情况下,用户内容可以被增强现实内容所修改。至少在某些情况下,被修改的内容可以从第三方应用获得。
附图说明
在不一定按比例绘制的附图中,相似的附图标记可以在不同的视图中描述类似的部件。为了容易地识别对任何特定元件或动作的讨论,附图标记中的一个或多个最高位数字指代该元件被首次引入时所在的图号。一些实现方式通过示例而非限制的方式被示出。
图1是根据一个或更多个示例实现方式的用于通过网络交换数据(例如,消息和相关联的内容)的架构的图形表示。
图2是根据一些示例的可以具有客户端侧功能和服务器侧功能二者的系统的图形表示。
图3是示出了根据一个或更多个示例实现方式的可以存储在服务器系统的数据库中的数据的示意图。
图4是示出了根据一个或更多个示例实现方式的用于可以经由客户端应用可访问的内容的示例框架的示意图。
图5是示出了根据一个或更多个示例实现方式的用于基于第三方修改来修改相机用户界面的架构的示意图。
图6是示出了根据一个或更多个示例实现方式的用于实现第三方修改客户端应用的相机用户界面所使用的框架的过程的示例操作的流程图。
图7是示出了根据一个或更多个示例实现方式的用于基于从第三方应用开发者获得的信息生成修改后的相机用户界面的过程的示例操作的流程图。
图8是根据一个或更多个示例实现方式的用户界面的图示,该用户界面示出了相机的示图并且根据第三方应用的开发者使用的框架被格式化以将来自第三方的内容包括在用户界面中。
图9是根据一个或更多个示例实现方式的用户界面的图示,该用户界面示出了相机的示图并且使得客户端应用的用户能够修改用户界面中包括的第三方内容。
图10是根据一个或更多个示例实现方式的另外的用户界面的图示,该用户界面示出了相机的图示并且使得客户端应用的用户能够修改用户界面中包括的第三方内容。
图11是示出了根据一个或更多个示例实现方式的可以从一个或更多个机器可读介质读取和执行指令以执行本文描述的任何一种或更多种方法的计算机系统形式的机器的部件的框图。
图12是示出了根据一个或更多个示例实现方式的可以与本文描述的一个或更多硬件架构结合使用的代表性软件架构的框图。
具体实施方式
用户可以经由能够由计算设备(例如,移动计算设备、智能电话、平板计算设备、膝上型计算设备、便携式游戏设备等)执行的多个应用来访问内容或创建内容。这些应用可以被称为“应用(app)”。在各种实例下,每个应用可以针对一个或更多个特定类型的功能。例如,一些应用可能与商家或服务提供商有关,并且用于访问商家或服务提供商提供的可购买的商品或服务。在其他示例中,应用可以用于在社会环境或商业环境中的通信。应用也可以用于创建内容,如媒体内容、文字处理文档、电子表格、演示文稿等。
在多个实例下,应用的用户可能想要分发正在经由应用创建、访问或消费的内容。在一个或更多个示例中,用户用于创建、访问或消费内容的应用不包括使用户能够共享内容的功能。在其他情况下,用于创建、访问或消费内容的应用包括有限的共享内容的功能。为了说明,用于创建、访问或消费内容的应用可能在内容的分发范围方面受到限制。也就是说,用于创建、访问或消费内容的应用的用户可能无法访问用户的一个或更多个社交网络。此外,可以用于创建、访问或消费内容的应用可能具有有限的修改内容的功能。例如,用户可能无法个性化或定制经由给定应用创建、访问或消费的内容。
在应用的功能关于经由该应用创建、访问或消费的内容的分发或修改中的至少一者受到限制的场景中,该应用可以使用户启动一个或更多个另外的应用,另外的应用提供与经由初始应用创建、访问或消费的内容的分发或修改中的至少一者有关的增强功能。本文所述的系统、方法、技术、指令序列和计算机器程序产品涉及由第三方应用的开发者对可以用于分发与第三方应用有关的内容或修改该内容中的至少一者的客户端应用的相机用户界面所做的修改。具有开发、维护或实现客户端应用中的至少一者的服务提供商可以提供使第三方应用的开发者能够访问客户端应用的功能的框架。该框架可以包括软件开发工具包(SDK),该软件开发工具包包括与使用客户端应用来分发或修改第三方内容中的至少一者有关的工具、库、文档、计算机可读代码、过程、要求或应用编程接口(API)中的至少一者。
在一个或更多个实现方式中,开发者可以利用该框架来修改客户端应用的相机用户界面。相机用户界面可以显示由客户端设备的一个或更多个相机捕获的视场。相机用户界面的默认版本还可以包括很多用户界面元素,这些元素能够被选择以调用客户端应用的功能。例如,相机用户界面的默认版本可以包括与搜索操作有关的用户界面元素。为了说明,相机用户界面的默认版本可以包括捕获信息以搜索能够经由客户端应用访问的联系人或内容中的至少一者的用户界面元素。此外,相机用户界面的默认版本可以包括与客户端应用内的导航有关的一个或更多个用户界面元素。默认相机用户界面的一个或更多个导航用户界面元素能够被选择以经由客户端应用访问内容。
相机用户界面开发者框架可以使开发者能够通过删除相机用户界面的默认版本中包括的用户界面元素中的一个或更多个来修改相机用户界面的默认版本。在一个或更多个示例中,相机用户界面开发者框架可以使开发者能够删除默认相机用户界面中的针对客户端应用的搜索功能的至少一个用户界面元素。在一个或更多个另外的示例中,相机用户界面开发者框架可以使开发者能够删除默认相机用户界面中的针对客户端应用内的导航的至少一个用户界面元素。
另外,相机用户界面开发者框架可以使开发者能够添加信息或用户界面元素中的至少一者以定制相机用户界面。在一些现有的系统中,图像内容或视频内容可以从第三方应用提供至客户端应用以经由客户端应用分发。在本文所述的实现方式中,第三方应用可以向客户端应用提供信息,以经由相机界面显示,该信息是由第三方应用提供的图像内容或视频内容之外的信息。在另外的场景中,第三方应用可以不向客户端应用提供图像内容或视频内容,并且可以向客户端应用提供与和第三方应用对应的信息有关的其他内容。在一个或更多个示例中,第三方应用可以包括媒体播放器功能。在这些情况下,相机用户界面的修改版本可以包括与正在经由第三方应用消费的媒体有关的信息。例如,相机用户界面的修改版本可以包括有关经由第三方应用消费的媒体的信息,如歌曲名称和艺术家或电影名称。在各种示例中,相机用户界面的修改版本还可以包括与第三方应用对应的图形内容。为了说明,用户界面的修改版本可以包括对应于第三方应用的标志或图像,或者与正在经由第三方应用消费的媒体内容有关的标志或图像。
在一个或更多个实现方式中,客户端应用的用户也可以对包括与第三方应用有关的内容的相机用户界面的修改版本进行修改。在一个或更多个场景中,客户端应用的用户可以在使用客户端应用分发经由相机用户界面捕获的图像内容或视频内容之前删除与第三方应用有关的内容的至少一部分。在一个或更多个说明性示例中,客户端应用的用户可以在使用客户端应用分发经由相机用户界面捕获的内容之前,从相机用户界面的修改版本中删除描述使用第三方应用消费的媒体内容的信息。此外,客户端应用的用户可以添加或修改在相机用户界面的修改版本中显示的图像内容或视频内容。为了说明,可以将覆盖、注释或增强现实内容中的至少一者添加到相机用户界面的修改版本中显示的图像内容或视频内容。在这些情况下,经由客户端应用分发的内容可以包括由执行客户端应用的客户端设备的至少一个相机捕获的图像内容或视频内容、与第三方应用有关的内容以及使用客户端应用添加的对图像内容或视频内容的修改。
本文描述的实现方式使第三方应用的开发者能够利用客户端应用的在第三方应用中可能是不可用的或受限的功能,同时还使第三方应用的开发者能够在客户端应用中定制用户体验。关于本文中实现方式所描述的相机用户界面的定制由于开发者框架而可获得,该框架包括软件工具、计算机可读代码、规则、API信息或其一个组合,这些都是开发者在现有系统、方法和客户端应用方面不可用的。此外,客户端应用的用户被提供灵活性,以将与第三方应用有关的内容纳入使用客户端应用生成的另外的内容中,或相对于使用客户端应用生成的另外的内容删除与第三方应用有关的内容。
图1是用于通过网络交换数据(例如,消息和相关联的内容)的架构100的图形表示。架构100可以包括多个客户端设备102。客户端设备102可以单独地包括但不限于移动电话、台式计算机、膝上型计算设备、便携式数字助理(PDA)、智能电话、平板计算设备、超级本、上网本、多处理器系统、基于微处理器或可编程的消费者电子系统、游戏控制台、机顶盒、车辆中的计算机、可穿戴设备、其一个或更多个组合、或用户可以使用其来访问架构100中包括的一个或更多个部件的任何其他通信设备。
每个客户端设备102可以托管多个应用,包括客户端应用104和一个或更多个第三方应用106。用户可以使用客户端应用104创建内容例如视频、图像(例如,照片)、音频和媒体覆盖。在一个或更多个说明性示例中,客户端应用104可以包括使得用户能够创建和交换内容的社交网络功能。在各种示例中,客户端应用104可以包括可以用于在由各种客户端设备102执行的客户端应用104的实例之间发送消息的消息收发功能。使用客户端应用104创建的消息可以包括视频、一个或更多个图像、音频、媒体覆盖、文本、使用一个或更多个创建工具制作的内容、注释等。在一个或更多个实现方式中,客户端应用104可以用于查看和生成交互式消息、查看客户端应用104的其他用户在地图上的位置、与客户端应用104的其他用户聊天等等。
一个或更多个用户可以是人、机器或与客户端设备(例如,客户端设备102)交互的其他装置。在示例实现方式中,用户可能不是架构100的一部分,但可以经由客户端设备102或其他装置与架构100的一个或更多个部件交互。在各种示例中,用户可以向客户端设备102提供输入(例如,触摸屏输入或字母数字输入),并且该输入可以被传送至架构100中的其他实体。在这种情况下,架构100中的其他实体响应于用户输入,可以将信息传送至客户端设备102以呈现给用户。以这样的方式,用户可以使用客户端设备102与架构100中的各种实体交互。
该架构100还可以包括一个或更多个开发者设备108。一个或更多个开发者设备108可以单独包括但不限于移动电话、台式计算机、笔记本计算机计算设备、便携式数字助理(PDA)、智能手机、平板计算设备、超极本、上网本、多处理器系统、基于微处理器或可编程消费电子系统、游戏控制台、机顶盒、车辆中的计算机、可穿戴设备、其一个或更多个组合、或用户可以使用其来访问架构100中包括的一个或更多个部件的任何其它通信设备。开发者设备108可以由一个或更多个开发者使用来进行以下中的至少一者:创建第三方应用106或修改第三方应用106。如本文所使用的,术语“开发者”、“第三方开发者”和“第三方应用开发者”不限于实际开发者本身,而是可以包括托管、提供、维护、创建或对第三方应用106具有所有权的人和实体。
开发者设备108可以进行以下中的至少一者:存储内容访问应用110或执行内容访问应用110。内容访问应用110可以使开发者设备108能够进行以下中的至少一者:获得、查看服务器、网站、应用、数据仓库或其他内容存储库或与其通信。在一个或更多个说明性示例中,内容访问应用110可以包括浏览器应用。在一个或更多个另外的示例中,内容访问应用110可以访问关于与第三方应用106或客户端应用104中的至少一者的开发、修改或创建可以使用的内容。
客户端应用104和内容访问应用110的每个实例能够与客户端应用104的另一实例、一个或更多个第三方应用106、内容访问应用110的另一实例、或服务器系统112中的至少一者进行通信和交换数据。在客户端应用104的实例之间、在第三方应用106之间、在内容访问应用110的实例之间、在客户端应用104和第三方应用106的实例之间、在内容访问应用110的实例与服务器系统112之间以及在客户端应用104的示例与服务器系统112之间交换的数据包括功能(例如,调用功能的命令)和有效载荷数据(例如,文本、音频、图像、视频或其他多媒体数据)。在客户端应用104的实例之间、在第三方应用106之间、在客户端应用104的至少一者实例与内容访问应用110的至少一者实例之间、以及在客户端应用104的至少一者实例与至少一者第三方应用106之间交换的数据可以从由客户端设备102执行的应用的实例和由其他客户端设备102执行的应用或由开发者设备108执行的应用的实例直接进行交换。此外,在客户端应用104之间、在第三方应用106之间、在内容访问应用110与第三方应用106或客户端应用104中的至少一者之间、以及在至少一者客户端应用104与至少一者第三方应用106之间交换的数据可以从由客户端设备102执行的应用的实例间接(例如,经由一个或更多个中间服务器)传送至由其他客户端设备102或由开发者设备108执行的应用的另一实例。在一个或更多个说明性示例中,在应用之间的间接通信中使用的一个或更多个中间服务器可以包括在服务器系统112中。
第三方应用106可以与客户端应用104分开且不同。第三方应用106可以由客户端设备102以与客户端应用104分开的方式下载和安装。在各种实现方式中,第三方应用106在客户端应用104被下载和安装之前或之后由客户端设备102下载和安装。第三方应用106是由与提供客户端应用104的实体或组织不同的实体或组织提供的应用。第三方应用106可以由客户端设备102使用与客户端应用104不同的登录凭证来访问。也就是,第三方应用106可以保存第一用户帐户,而客户端应用104可以保存第二用户帐户。在一个或更多个实现方式中,可以由客户端设备102访问第三方应用106以执行各种活动和交互,例如听音乐、观看视频、跟踪锻炼、查看图形元素(例如,贴纸)、与其他用户通信等。作为示例,第三方应用106可以包括社交网络应用、约会应用、骑乘或汽车共享应用、购物应用、交易应用、游戏应用、成像应用、音乐应用、视频浏览应用、锻炼跟踪应用、健康监测应用、图形元素或贴纸浏览应用或者任何其他合适的应用。
服务器系统112经由一个或更多个网络114向客户端应用104或内容访问应用110中的至少一者提供服务器侧功能。根据一些示例实施方式,服务器系统112可以是云计算环境。例如,在一个说明性示例中,服务器系统112以及与服务器系统112相关联的一个或更多个服务器可以与基于云的应用相关联。在一个或更多个实现方式中,客户端设备102和服务器系统112可以经由一个或更多个网络114耦接。
服务器系统112支持被提供给客户端应用104的各种服务和操作。这样的操作包括:向客户端应用104发送数据;从客户端应用104接收数据;以及处理由客户端应用104生成的数据。该数据可以包括消息内容、媒体内容、客户端设备信息、地理位置信息、媒体注释和覆盖、消息内容持久性条件、社交网络信息和生活事件信息作为示例。通过经由客户端应用104的用户界面(UI)可用的功能来调用和控制框架100内的数据交换。服务器系统112可以是由服务提供商实现或维护的至少一者,该服务提供商经由客户端应用程序104提供一个或更多个服务。该一个或更多个服务可以与社交网络、消息收发、内容创建、内容消费、在线零售,或其一个或更多个组合有关。
虽然框架100的某些功能在本文中被描述为由客户端应用104或由服务器系统112执行,但是将某些功能定位在客户端应用104内或服务器系统112内是设计选择。例如,以下在技术上可能是优选的:最初在服务器系统112内部署某些技术和功能,但稍后将该技术和功能迁移到其中客户端设备102具有足够处理能力的客户端应用104。
服务器系统112包括应用编程接口(API)服务器116,该API服务器116耦接至应用服务器118并向应用服务器118提供编程接口。应用服务器118通信地耦接至数据库服务器120,该数据库服务器120有助于访问一个或更多个数据库122。一个或更多个数据库122可以存储与由应用服务器118处理的信息相关联的数据。一个或更多个数据库122可以是存储诸如以下信息的存储设备:未经处理的媒体内容、来自用户的原始媒体内容(例如,高质量媒体内容)、经处理的媒体内容(例如,格式化以与客户端设备102共享并在客户端设备102上观看的媒体内容)、与媒体内容项相关的上下文数据、与用户设备(例如,计算或客户端设备102)相关的上下文数据、媒体覆盖、媒体覆盖智能部件或智能元件、用户数据、用户设备信息、媒体内容(例如,视频和图像)、媒体内容数据(例如,与视频和图像相关联的数据)、计算设备上下文数据、序列化数据、会话数据项、用户设备位置数据、映射信息、交互消息使用数据、交互消息度量数据等。一个或更多个数据库122还可以存储与第三方服务器、客户端设备102、客户端应用104、用户、第三方应用106等相关的信息。
API服务器116在客户端设备102或开发者设备108中的至少一者与应用服务器118之间接收和发送数据(例如,命令和消息有效载荷)。具体地,应用程序接口(API)服务器116提供一组接口(例如,例程和协议),这组接口可以由客户端应用104调用或查询,以调用应用服务器118的功能。应用程序接口(API)服务器116公开由应用服务器118支持的各种功能,包括帐户注册、登录功能、经由应用服务器118将消息从客户端应用104的一个实例发送至客户端应用104的另一实例、将媒体文件(例如,图像、音频、视频)从客户端应用104发送至应用服务器118以及针对另一客户端应用104的可能访问,设置媒体内容的集合(例如,图库、故事、消息集合或媒体集合)、检索客户端设备102的用户的朋友的列表、检索这样的集合、检索消息和内容、向社交图添加和删除朋友、对朋友在社交图内的位置进行定位、以及打开应用事件(例如,与客户端应用104相关)。API服务器116也可以由开发者设备108提供对框架的访问,这些框架可以用于修改或定制与和第三方应用106对应的内容有关的相机用户界面。
服务器系统112还可以包括web服务器124。web服务器124耦接至应用服务器118,并且向应用服务器118提供基于web的接口。为此,web服务器124通过超文本传输协议(HTTP)和若干其他相关协议处理传入的网络请求。
应用服务器118托管多个应用和子系统,包括消息收发应用系统126、媒体内容处理系统128、社交网络系统130和相机用户界面系统132。消息收发应用系统126实现了多种消息处理技术和功能,特别是与从客户端应用104的多个实例接收到的消息中包括的内容(例如,文本和多媒体内容)的聚合和其他处理有关的消息处理技术和功能。例如,消息收发应用系统126可以使用电子邮件(email)、即时消息(IM)、短消息服务(SMS)、文本、传真来递送消息或者经由有线网络(例如,英特网)、普通老式电话服务(POTS)或无线网络(例如,移动、蜂窝、WIFI、长期演进(LTE)或蓝牙)来递送语音(例如,基于IP的语音(VoIP))消息。消息收发应用系统126可以将来自多个源的文本和媒体内容聚合成内容集合。然后,由消息收发应用系统126使这些集合对客户端应用104可用。鉴于针对这样的处理的硬件要求,也可以由消息收发应用系统126在服务器侧执行其他处理器和存储器密集型的数据处理。
媒体内容处理系统128专用于通常针对在消息的有效载荷内接收的图像、音频或视频或在消息收发应用系统126处的其他内容项执行各种媒体内容处理操作。媒体内容处理系统128可以访问一个或更多个数据存储装置(例如,数据库122)以检索所存储的数据以便在处理媒体内容中使用并且存储经处理的媒体内容的结果。
社交网络系统130支持各种社交网络功能和服务,并且使这些功能和服务可用于消息收发应用系统126。为此,社交网络系统130维护并访问数据库122内的实体图。由社交网络系统130支持的功能和服务的示例包括识别与特定用户有关系或特定用户正在“关注”的客户端应用104的其他用户,并且还识别特定用户的其他实体和兴趣。社交网络系统130可以访问与用户的朋友或其他社交网络联系中的每一个相关联的位置信息,以确定他们在地理上居住或当前位于何处。此外,社交网络系统130可以维护用户的朋友中的每个朋友的位置简档,该位置简档指示用户的朋友居住的地理位置。
相机用户界面(UI)系统132可以用来生成经由客户端应用104显示的相机用户界面的修改版本。相机用户界面可以显示客户端设备102的至少一个相机的视场。相机用户界面还可以包括一个或更多个用户界面元素,所述一个或更多个用户界面元素能够被选择以进行以下中的至少一者:调用客户端应用104的功能或执行由客户端应用104支持的一个或更多个操作。相机用户界面的默认版本可以包括一个或更多个第一用户界面元素,所述一个或更多个第一用户界面元素能够被选择以经由客户端应用104访问内容。相机用户界面的默认版本还可以包括一个或更多个第二用户界面元素,所述一个或更多个第二用户界面元素能够被选择以搜索客户端应用104的用户或与客户端应用104相关的内容中的至少一者。另外,相机用户界面的默认版本可以包括一个或更多个第三用户界面元素,所述一个或更多个第三用户界面元素能够被选择以访问增强现实内容,所述增强现实内容可以应用于相机用户界面中显示的图像内容或视频内容中的至少一者。此外,相机用户界面的默认版本可以包括与可以应用于相机用户界面中显示的图像内容或视频内容中的至少一者的一个或更多个工具对应的一个或更多个第四用户界面元素,诸如定时器工具、闪光灯工具、在相机用户界面中显示网格的工具、其一个或更多个组合等。
在一个或更多个实现方式中,相机UI系统132可以从开发者设备108获得信息以修改相机用户界面的默认版本或初始版本。在一个或更多个示例中,相机UI系统132可以提供开发者设备108对由数据库122存储的相机UI开发者信息134的访问。在各种示例中,开发者设备108可以经由内容访问应用110来访问相机UI开发者信息134。相机UI开发者信息134可以包括可以用来生成相机用户界面的修改版本的工具、库、文档、计算机可读代码、过程、指南、其一个或更多个组合等中的至少一者。在各种示例中,相机UI开发者信息134可以包括可以用来修改客户端应用104的相机用户界面的SDK。在一个或更多个另外的示例中,相机UI开发者信息134可以包括可以用来修改客户端应用104的相机用户界面的一个或更多个API。
相机UI系统132可以向开发者设备108提供一个或更多个用户界面,其可以用来根据相机UI开发者信息134对客户端应用104的相机用户界面进行修改。例如,相机UI系统132可以提供一个或更多个用户界面,所述一个或更多个用户界面使第三方应用106的开发者能够删除可以被包括在客户端应用104的相机用户界面的初始版本或默认版本中的用户界面元素。例如,相机UI系统132可以提供一个或更多个用户界面,所述一个或更多个用户界面使第三方应用106的开发者能够删除相机用户界面中的一个或更多个用户界面元素,所述一个或更多个用户界面元素针对访问使用客户端应用104生成的内容、共享由客户端应用104生成的内容、或修改客户端应用104的相机用户界面中显示的内容中的至少一者。在一个或更多个示例中,可以由相机UI开发者信息134来指示可以从客户端应用104的相机用户界面的默认版本中删除的用户界面元素。
相机UI系统132还可以向开发者设备108提供一个或更多个用户界面,以将内容添加至客户端应用104的相机用户界面的默认版本或初始版本。在各种示例中,添加至客户端应用104的相机用户界面的默认版本的内容可以包括与第三方应用106对应的图像内容、文本内容或视频内容中的至少一者。从第三方应用106的开发者获得的图像内容、文本内容、视频内容或其一个或更多个组合可以作为第三方UI数据136被存储在数据库122中。第三方UI数据136可以包括与以下相关的数据:与第三方应用106相关的标志、与第三方应用106相关的标识符(例如,品牌、公司名称、产品名称等)、与第三方应用106相关的动画、与第三方应用106相关的增强现实内容、或其一个或更多个组合。
在一个或更多个实现方式中,第三方UI数据136还可以包括当客户端应用104从第三方应用106的实例启动时从第三方应用106传送到客户端应用104的数据。在一个或更多个场景中,与由第三方应用106生成或对应于经由第三方应用106消费的内容中的至少一者的数据相关的信息可以从执行第三方应用106的实例的客户端设备102发送至服务器系统112,并作为第三方UI数据136的一部分被存储。第三方UI数据136还可以包括对应于与第三方应用106相关的内容的地址、链接或其他统一资源指示符,其中地址、链接或其他统一资源指示符可以由第三方应用106的开发者提供。客户端应用104或服务器系统112中的至少一者可以使用地址、链接或其他统一资源指示符来检索要在客户端应用104的相机用户界面的修改版本中显示的内容。
另外,第三方UI数据136可以指示与从开发者设备108获得的信息相关的格式化或放置中的至少一者,其将显示在相机用户界面的修改版本中。在一个或更多个示例中,第三方UI数据136可以指示从开发者设备108获得的图像内容、文本内容或视频内容中的至少一者在相机用户界面的修改版本内的位置。第三方UI数据136还可以包括从开发者设备108获得且要在相机用户界面的修改版本中显示的文本内容、视频内容或图像内容中的至少一者的尺寸信息、字体信息、视觉效果信息、颜色信息或其一个或更多个组合。此外,第三方UI数据136可以包括指示内容相对于彼此在相机用户界面的修改版本内的布置的布局信息。
在各种示例中,第三方UI数据136可以指示由第三方应用106的开发者设计的用户界面元素,所述用户界面元素能够被选择以在客户端应用104内执行一个或更多个动作。在一个或更多个示例中,相机UI开发者信息134可以为第三方应用106的开发者提供一个或更多个工具来设计能够被选择以在客户端应用104内执行动作的用户界面元素。在一个或更多个另外的示例中,相机UI开发者信息134可以包括与可以由客户端应用102执行的一个或更多个动作对应的多个先前生成的用户界面元素。在这些场景中,第三方应用106的开发者可以从多个先前生成的用户界面元素中选择一个或更多个用户界面元素以包括在相机用户界面的修改版本中。在一个或更多个说明性示例中,响应于对由第三方应用106的开发者所选择的一个或更多个用户界面元素的选择而要执行的动作可以包括以下中的至少一者:提供关于经由第三方应用106消费的媒体内容项的附加信息、将与第三方应用106相关的内容添加至经由客户端应用104传送的消息中、或者将与第三方应用106相关的内容包括在可以使用客户端应用104传送的社交网络内容中。
数据库122还可以存储与经由客户端应用104显示的相机用户界面对应的相机UI数据138。例如,相机UI数据136可以指示相机用户界面的默认版本的特征。在各种示例中,相机UI开发者信息134可以指示第三方应用106的开发者可以使用与相机UI开发者信息134对应的工具来进行以下中的至少一者:修改或删除相机用户界面的默认版本的特征的至少一部分。在一个或更多个另外的示例中,相机UI开发者信息134可以指示相机用户界面的默认版本的特征的至少一部分可以不被第三方应用106的开发者修改或删除中的至少一者。在一个或更多个实现方式中,相机UI数据138可以指示经由客户端应用104显示的相机用户界面的默认版本中包括的一个或更多个用户界面元素。一个或更多个用户界面元素可以与搜索功能、内容共享功能、创作工具、增强现实内容、内容访问功能、或其一个或更多个组合相关。
相机UI数据138可以包括第三方修改140。第三方修改140指示由第三方应用106的开发者基于相机UI开发者信息134对相机用户界面的默认版本进行的改变。在一个或更多个示例中,第三方修改140可以指示与各个第三方应用106对应的一个或更多个相应修改。也就是说,可以存储与相应的第三方应用106对应的相机用户界面的默认版本的修改,使得响应于从相应的第三方应用106启动客户端应用104,从数据库122检索修改并由客户端应用104实现修改。在各种示例中,针对相应的第三方应用106的第三方修改140中包括的修改可以与相应的第三方应用106的标识符相关联地存储。
在一个或更多个说明性示例中,客户端设备102的用户可以启动第三方应用106的实例。可以响应于对与第三方应用106对应的用户界面元素诸如图标的选择来启动第三方应用106的实例。对与第三方应用106对应的用户界面元素的选择可以使得第三方应用106的至少一个用户界面经由客户端设备102的显示设备被显示。在一个或更多个示例中,第三方应用106的至少一个用户界面可以包括能够被选择以在客户端设备102上启动客户端应用104的实例的用户界面元素。在各种示例中,从第三方应用106启动客户端应用104的实例可以使得客户端应用104的至少一个用户界面经由客户端设备102被显示。在一个或更多个场景中,第三方应用106可以在客户端应用104的实例已经从第三方应用106启动之后在后台操作。被包括在第三方应用106的用户界面中的与客户端应用104对应的用户界面元素可以与使得客户端应用104的相机用户界面被显示的统一资源标识符诸如链接或地址相关联。
从第三方应用106启动客户端应用104可以使得客户端应用104的相机用户界面经由客户端设备102的显示设备被显示。在一个或更多个示例中,先前经由第三方应用106显示的内容可以被包括在相机用户界面中。例如,可以在客户端应用104的相机用户界面中显示经由第三方应用106的用户界面显示的文本内容、视频内容或图像内容中的至少一者,客户端应用104的实例从第三方应用106启动。以这种方式,客户端应用104可以从第三方应用106获得要包括在相机用户界面中内容。在另外的示例中,当从第三方应用106启动客户端应用104的实例时,经由第三方应用106消费的音频内容可以继续经由客户端设备102的一个或更多个输出设备被播放。
在一个或更多个示例中,客户端应用104可以从服务器系统112获得要包括在相机用户界面的修改版本中的内容。例如,相机UI系统132可以向客户端应用104发送与第三方应用106相关的第三方UI数据136的一部分,使得可以在相机用户界面的修改版本中显示与第三方应用106相关的信息。相机UI系统132还可以响应于从第三方应用106启动客户端应用104,向客户端应用104发送信息,该信息指示要经由客户端应用104显示的相机界面的修改版本的用户界面元素或布局信息中的至少一者。
在各种示例中,响应于从客户端应用104或第三方应用106中的至少一者接收到指示,相机UI系统132可以针对第三方UI数据136或第三方修改140中的至少一者来查询数据库122,以确定要发送至客户端应用104的与客户端应用104的修改后的相机用户界面对应的数据。由相机UI系统132提供给客户端应用104的信息可以指示要包括在相机用户界面的修改版本中的一个或更多个用户界面元素、文本内容、视频内容或图像内容中的至少一者。以这种方式,客户端应用104可以使用从服务器系统112获得的信息来生成客户端应用104的相机用户界面的定制版本,该定制版本对应于客户端应用104从其启动的第三方应用106。
在一个或更多个实现方式中,客户端应用104的用户还可以改变经由相机用户界面的修改版本显示的内容。为了说明,增强现实内容可以应用于在相机用户界面的修改版本中显示的图像内容或视频内容中的至少一者。另外,覆盖或注释中的至少一者可以应用于客户端应用104的相机用户界面的修改版本中显示的图像内容或视频内容中的至少一者。客户端应用104的用户还可以从相机用户界面的修改版本中删除内容。在一个或更多个示例中,客户端应用104的用户可以删除被包括在相机用户界面的修改版本中的与第三方应用106相关的内容。
在相机用户界面的修改版本中显示的内容可以被捕获并与客户端应用104的附加用户共享。例如,经由客户端设备102的至少一个相机捕获的图像内容可以显示在相机用户界面的修改版本中。另外,还可以结合图像内容来显示与客户端应用104从其启动的第三方应用106相关的内容。客户端应用104可以生成附加内容,所述附加内容包括由客户端设备102的至少一个相机捕获的图像内容以及从启动客户端应用104的第三方应用106的实例或服务器系统112中的至少一者获得的与第三方应用106相关的信息。在一个或更多个说明性示例中,附加内容可以包括经由客户端设备102的至少一个相机捕获的客户端应用104的用户的图像以及指示用户正在经由第三方应用106收听的歌曲的信息。在一个或更多个另外的说明性示例中,附加内容可以包括经由客户端设备102的至少一个相机捕获的客户端应用104的用户的图像以及由第三方应用106生成的健身信息诸如锻炼惯例或骑自行车路线。
图2是示出根据一些示例的关于服务器系统112的进一步的细节的框图。具体地,服务器系统112被示出为包括客户端应用104和应用服务器118。服务器系统112包含若干子系统,这些子系统在客户端侧由客户端应用104支持并且在服务器侧由应用服务器118支持。这些子系统包括例如短暂定时器系统202、集合管理系统204、增强系统206、地图系统208、游戏系统210和相机UI系统132。
短暂定时器系统202负责施行由客户端应用104和消息收发应用系统126对内容进行临时或限时访问。短暂定时器系统202包含若干个定时器,这些定时器基于与消息或消息集合(例如,故事)相关联的持续时间和显示参数,选择性地实现经由客户端应用104访问(例如,用于呈现和显示)消息和相关联的内容。下面提供关于短计时器系统202的操作的进一步的细节。
集合管理系统204负责管理媒体的组或集合(例如,文本、图像、视频和音频数据的集合)。可以将内容(例如,消息,包括图像、视频、文本和音频)的集合组织成“事件图库(gallery)”或“事件故事”。可以使这样的集合在指定时间段(例如,内容所涉及的事件的持续时间)内可用。例如,可以使与音乐会相关的内容在该音乐会的持续时间内作为“故事”可用。集合管理系统204还可以负责发布向客户端应用104的用户界面提供特定集合的存在的通知的图标。
此外,集合管理系统204包括使得集合管理者能够管理和策展特定的内容集合的策展接口212。例如,策展接口212使得事件组织者能够策展与特定事件相关的内容集合(例如,删除不适当的内容或冗余消息)。此外,集合管理系统204采用机器视觉(或图像识别技术)和内容规则来自动地策展内容集合。在某些示例中,可以向用户支付对将用户生成的内容包括到集合中的补偿。在这样的情况下,集合管理系统204进行操作以自动地向这样的用户支付以便使用他们的内容。
增强系统206提供各种功能,这些功能使得用户能够增强(例如,注释或以其他方式修改或编辑)与经由客户端应用104产生的内容相关联的媒体内容例如消息。例如,增强系统206提供与生成和发布用于由服务器系统112处理的内容的媒体覆盖(media overlay)相关的功能。增强系统206基于客户端设备102的地理位置可操作地向客户端应用104供应媒体覆盖或增强(例如,图像过滤器)。在另一示例中,增强系统206基于其他信息(例如,客户端设备102的用户的社交网络信息)可操作地向客户端应用104供应媒体覆盖。媒体覆盖可以包括音频和视觉内容以及视觉效果。音频和视觉内容的示例包括图片、文本、标志、动画和声音效果。视觉效果的示例包括颜色覆盖。音频和视觉内容或视觉效果可以应用于客户端设备102处的媒体内容项(例如,照片)。例如,媒体覆盖可以包括可以覆盖在由客户端设备102拍摄的照片的顶部上的文本或图像。在另一示例中,媒体覆盖包括位置标识覆盖(例如,威尼斯海滩)、实时事件的名称或商家名称覆盖(例如,海滩咖啡馆)。在另一示例中,增强系统206使用客户端设备102的地理位置来标识包括在客户端设备102的地理位置处的商家的名称的媒体覆盖。媒体覆盖可以包括与商家相关联的其他标记。媒体覆盖可以存储在数据库122中并且通过数据库服务器116被访问。
在一些示例中,增强系统206提供基于用户的发布平台,该基于用户的发布平台使得用户能够选择地图上的地理位置并上传与所选择的地理位置相关联的内容。用户还可以指定特定媒体覆盖应当被提供给其他用户的情况。增强系统206生成包括所上传的内容并将所上传的内容与所选择的地理位置相关联的媒体覆盖。
在其他示例中,增强系统206提供基于商家的发布平台,该基于商家的发布平台使商家能够经由竞价过程选择与地理位置相关联的特定媒体覆盖。例如,增强系统206在预定义时间量内将最高出价商家的媒体覆盖与对应地理位置相关联。
地图系统208提供各种地理定位功能,并且支持由客户端应用104呈现基于地图的媒体内容和消息。例如,地图系统208使得能够在地图上显示(例如,存储在图3的简档数据308中的)用户图标或化身,以指示用户的“朋友”的当前或过去位置,以及由这些朋友在地图的上下文内生成的媒体内容(例如,包括照片和视频的消息的集合)。例如,在客户端应用104的地图界面上,可以将用户从特定地理定位发布到服务器系统112的消息在地图的该特定位置的上下文内显示给特定用户的“朋友”。另外,用户还可以经由客户端应用104与服务器系统112的其他用户(例如,使用适当的状况化身)共享他的或她的位置和状态信息,该位置和状态信息在客户端应用104的地图界面的上下文内被类似地显示给所选择的用户。
游戏系统210在客户端应用104的上下文内提供各种游戏功能。客户端应用104提供游戏界面,该游戏界面提供可用游戏的列表,这些游戏可以由用户在客户端应用104的上下文中启动并与服务器系统112的其他用户一起玩。服务器系统112还使特定用户能够通过从客户端应用104向其他用户发出邀请来邀请这样的其他用户参与玩特定游戏。客户端应用104还支持游戏上下文内的语音消息收发和文本消息收发两者(例如,聊天),为游戏提供排行榜,并且还支持提供游戏内奖励(例如,钱币和物品)。
相机UI系统132可以从第三方应用的开发者获得可以用来生成客户端应用104的修改版本的信息。在一个或更多个示例中,相机UI系统132可以使第三方应用106的开发者能够进行以下中的至少一者:从客户端应用104的默认相机用户界面添加或删除内容,以创建相机用户界面的修改版本。相机用户界面的修改版本可以用来经由客户端应用104生成可分发给客户端应用104的附加用户的附加内容。在一个或更多个示例中,使用客户端应用104的相机界面的修改版本生成的附加内容可以包括经由增强系统206应用的增强现实内容。
图3是示出了根据一个或更多个示例实现方式的可以存储在服务器系统112的数据库122中的数据结构300的示意图。虽然数据库122的内容被示出为包括多个表,但是应当理解,数据可以存储在其他类型的数据结构中(例如,作为面向对象的数据库)。
数据库122包括存储在消息表302内的消息数据。对于任何特定的一条消息,该消息数据包括至少消息发送方数据、消息接收方(或接收者)数据和有效载荷。
实体表304存储实体数据,并且(例如,参考地)链接到实体图306和简档数据308。在实体表304内保存其记录的实体可以包括个人、公司实体、组织、对象、地点、事件等。不管实体类型如何,服务器系统112存储关于其的数据的任何实体可以是识别的实体。每个实体设置有唯一标识符以及实体类型标识符(未示出)。
实体图306存储关于实体之间的关系和关联的信息。仅作为示例,这样的关系可以是基于兴趣或基于活动的社交关系、专业关系(例如,在共同的公司或组织工作)。
简档数据308存储关于特定实体的多种类型的简档数据。基于由特定实体指定的隐私设置,简档数据308可以被选择性地使用并呈现给架构100的其他用户。在实体是个人的情况下,简档数据308包括例如用户名、电话号码、地址、设置(例如,通知和私密设置)、以及用户选择的化身表示(或这样的化身表示的集合)。特定用户然后可以选择性地将这些化身表示中的一个或更多个包括在经由架构100传送的消息内容或其他数据内,以及包括在由客户端应用104向其他用户显示的地图界面上。化身表示的集合可以包括“状态化身”,其呈现用户可以选择在特定时间进行通信的状态或活动的图形表示。
在实体是团体的情况下,除了相关团体的团体名称、成员和各种设置(例如,通知)之外,团体的简档数据308还可以类似地包括与团体相关联的一个或更多个化身表示。
数据库122还在增强表310中存储增强数据,例如覆盖或过滤器。增强数据与视频(其数据被存储在视频表314中)和图像(其数据被存储在图像表316中)相关联并且应用于视频和图像。
在一个示例中,过滤器是在向接收方用户呈现期间显示为覆盖在图像或视频上的覆盖。过滤器可以是各种类型的,包括当发送方用户正在编写消息时由客户端应用104呈现给发送方用户的一组过滤器中的用户选择的过滤器。其他类型的过滤器包括地理位置过滤器(也称为地理过滤器),其可以基于地理定位被呈现给发送用户。例如,可以基于由客户端设备102的全球定位系统(GPS)单元确定的地理位置信息,由客户端应用104在用户接口内呈现特定于附近或特殊位置的地理位置过滤器。
另一类型的过滤器是数据过滤器,其可以由客户端应用104基于在消息创建过程期间由客户端设备102收集的其他输入或信息来选择性地呈现给发送用户。数据过滤器的示例包括特定位置处的当前温度、发送用户行进的当前速度、客户端设备102的电池寿命或当前时间。
可以被存储在图像表316内的其他增强数据包括增强现实内容项(例如,对应于应用镜头或增强现实体验)。增强现实内容项可以是能够被添加至图像或视频的实时特殊效果和声音。
如上所述,增强数据包括增强现实内容项、覆盖、图像变换、AR图像以及涉及可以应用于图像数据(例如,视频或图像)的修改的类似项。这包括实时修改,其在使用客户端设备102的设备传感器(例如,一个或多个相机)捕获图像时对图像进行修改并且然后在修改的情况下在客户端设备102的屏幕上显示图像。这还包括对存储的内容(例如可以修改的图库中的视频片段)的修改。例如,在可以访问多个增强现实内容项的客户端设备102中,用户可以使用具有多个增强现实内容项的单个视频片段来查看不同的增强现实内容项将如何修改所存储的片段。例如,通过为内容选择不同的增强现实内容项,可以将应用不同伪随机运动模型的多个增强现实内容项应用于该同一内容。类似地,实时视频捕获可以与示出的修改一起使用,以显示当前由客户端设备102的传感器捕获的视频图像将如何修改所捕获的数据。这样的数据可以简单地显示在屏幕上而不存储在存储器中,或者由设备传感器捕获的内容可以在进行或不进行修改(或两者)的情况下被记录并且存储在存储器中。在某些系统中,预览功能可以显示不同的增强现实内容项在同一时间在显示器的不同窗口中看起来如何。例如,这可以实现同时在显示器上查看具有不同伪随机动画的多个窗口。
因此,使用增强现实内容项的数据和各种系统或使用该数据修改内容的其他这样的变换系统可以涉及视频帧中的对象(例如,脸、手、身体、猫、狗、表面、物体等)的检测,在这些对象离开视场、进入视场以及在视场四处移动时跟踪这些对象,以及在跟踪这些对象时对其进行修改或变换。在各种实现方式中,可以使用用于实现这种变换的不同方法。一些示例可以涉及生成一个或多个对象的三维网格模型,以及在视频内使用模型的变换和动画纹理来实现变换。在其他示例中,可以使用对象上的点的跟踪将图像或纹理(其可以是二维或三维的)放置在所跟踪的位置处。在更进一步的示例中,可以使用视频帧的神经网络分析将图像、模型或纹理放置在内容(例如,图像或视频帧)中。因此,增强现实内容项既指用于在内容中创建变换的图像、模型和纹理,也指通过对象检测、跟踪和放置实现这样的变换所需的附加建模和分析信息。
可以利用保存在任何类型的计算机化系统的存储器中的任何类型的视频数据(例如,视频流、视频文件等)来执行实时视频处理。例如,用户可以加载视频文件并且将其保存在设备的存储器中,或者可以使用设备的传感器生成视频流。此外,可以使用计算机动画模型来处理任何对象,例如人的脸部和人身体的各部分、动物或非生物例如椅子、汽车或其他对象。
在一些示例中,当与要变换的内容一起选择特定修改时,要变换的元素由计算设备识别,并且然后如果要变换的元素存在于视频的帧中,则被检测和跟踪。根据修改请求修改对象的元素,从而变换视频流的帧。对于不同类型的变换,可以通过不同的方法执行对视频流的帧的变换。例如,对于主要是指改变对象的元素的形式的帧的变换,计算(例如,使用主动形状模型(ASM)或其他已知方法)对象的每个元素的特征点。然后,针对对象的至少一个元素中的每一个生成基于特征点的网格。该网格用于跟踪视频流中的对象的元素的后续阶段。在跟踪过程中,针对每个元素的提及的网格与每个元素的位置对准。然后,在网格上生成附加点。基于修改请求针对每个元素生成第一组第一点,并且基于该组第一点和修改请求针对每个元素生成一组第二点。然后,可以通过基于该组第一点和该组第二点以及网格修改对象的元素来变换视频流的帧。在这样的方法中,也可以通过跟踪和修改背景来改变或扭曲被修改对象的背景。
在一些示例中,使用对象的元素改变对象的一些区域的变换可以通过计算对象的每个元素的特征点并基于计算的特征点生成网格来执行。在网格上生成点,然后基于这些点生成各种区域。然后,通过将每个元素的区域与至少一个元素中的每一个的位置对准来跟踪对象的元素,并且可以基于修改请求来修改区域的属性,从而变换视频流的帧。根据具体的修改请求,可以以不同的方式变换所提及的区域的属性。这样的修改可以涉及:改变区域的颜色;从视频流的帧中删除至少一些部分区域;将一个或更多个新对象包括在基于修改请求的区域中;以及修改或扭曲区域或对象的元素。在各种实现方式中,可以使用这样的修改或其他类似修改的任何组合。对于要被动画化的某些模型,可以选择一些特征点作为要用于确定针对模型动画的选项的整个状态空间的控制点。
在使用脸部检测来变换图像数据的计算机动画模型的一些示例中,使用特定脸部检测算法(例如,Viola-Jones)在图像上检测脸部。然后,将主动形状模型(ASM)算法应用于图像的脸部区域以检测脸部特征参考点。
可以使用适用于脸部检测的其他方法和算法。例如,在一些实现方式中,使用界标来定位特征,该界标表示在所考虑的大多数图像中存在的可区分点。例如,对于脸部界标,可以使用左眼瞳孔的定位。如果初始界标不可识别(例如,如果人有眼罩),则可以使用次级界标。这样的界标识别过程可以用于任何这样的对象。在一些示例中,一组界标形成形状。可以使用形状中的点的坐标将形状表示为矢量。一个形状利用相似变换(允许平移、缩放和旋转)与另一个形状对准,该相似变换使形状点之间的平均欧几里德距离最小化。平均形状是对准的训练形状的均值。
在各种示例中,从与由全局脸部检测器确定的脸部的位置和大小对准的平均形状开始搜索界标。然后,这样的搜索重复以下步骤:通过每个点周围的图像纹理的模板匹配来调整形状点的定位而建议暂定形状,并且然后使暂定形状符合全局形状模型,直至发生收敛。在一个或更多个系统中,个别的模板匹配是不可靠的,并且形状模型将弱模板匹配的结果进行池化,以形成更强的整体分类器。在图像金字塔中的每一级处从粗分辨率到细分辨率重复整个搜索。
变换系统可以在客户端设备(例如,客户端设备102)上捕获图像或视频流,并且在客户端设备102上本地执行复杂的图像操纵,同时保持适当的用户体验、计算时间和功耗。复杂的图像操纵可以包括大小和形状变化、情绪转换(例如,将脸部从皱眉变为微笑)、状态转换(例如,使对象变老、减少表观年龄、改变性别)、风格转换、图形元素应用、以及由已经被配置成在客户端设备102上有效执行的卷积神经网络实现的任何其他合适的图像或视频操纵。
用于变换图像数据的计算机动画模型可以由系统使用,在该系统中,用户可以使用具有神经网络的客户端设备102来捕获用户的图像或视频流(例如,自拍),该神经网络操作为在客户端设备102上操作的客户端应用104的一部分。在客户端应用104内操作的变换系统确定图像或视频流中的脸部的存在并提供与计算机动画模型相关联的修改图标以转换图像数据,或者计算机动画模型可以被呈现为与本文中描述的界面相关联。修改图标包括改变,这些改变可以是作为修改操作的一部分的用于修改图像或视频流内的用户的脸部的基础。一旦选择了修改图标,则变换系统发起转换用户的图像以反映所选择的修改图标(例如,在用户上生成笑脸)的处理。一旦捕获图像或视频流并且选择指定的修改,则修改的图像或视频流就可以呈现在客户端设备102上显示的图形用户接口中。变换系统可以在图像或视频流的一部分上实施复杂的卷积神经网络,以生成和应用所选择的修改。也就是说,一旦选择了修改图标,用户就可以捕获图像或视频流并且实时或近乎实时地呈现修改结果。此外,当正在捕获视频流时,修改可以是持久的,并且所选择的修改图标保持被切换。机器学习的神经网络可以用于实现这样的修改。
呈现由变换系统执行的修改的图形用户接口可以为用户提供附加的交互选项。这样的选项可以基于用于发起特定计算机动画模型的选择和内容捕获的接口(例如,从内容创建者用户接口发起)。在各种实现方式中,在修改图标的初始选择之后,修改可以是持久的。用户可以通过敲击或以其他方式选择由变换系统修改的脸部来打开或关闭修改,并且将其存储以供以后查看或浏览到成像应用的其他区域。在由变换系统修改多个脸部的情况下,用户可以通过敲击或选择在图形用户接口内修改和显示的单个脸部来全局打开或关闭修改。在一些实现方式中,可以通过点击或选择图形用户接口内显示的单独脸部或一系列单独脸部来单独修改一组多个脸部中的各个脸部,或者单独打开这样的修改。
故事表312存储关于消息和相关联的图像、视频或音频数据的集合的数据,所述消息和相关联的图像、视频或音频数据被编译成集合(例如,故事或库)。特定集合的创建可以由特定用户(例如,在实体表304中保存其记录的每个用户)发起。用户可以以已经由该用户创建和发送/广播的内容的集合的形式创建“个人故事”。为此,客户端应用104的用户界面可以包括用户可选择的图标,以使得发送用户能够将特定内容添加至他或她的个人故事。
集合还可以构成作为来自多个用户的内容的集合的“实况故事”,该内容的集合是手动地、自动地或者使用手动技术和自动技术的组合创建的。例如,“实况故事”可以构成来自不同位置和事件的用户提交的内容的策展流。其客户端设备使位置服务启用并且在特定时间处于共同位置事件的用户可以例如经由客户端应用104的用户界面被呈现有选项,以向特定实况故事贡献内容。可以由客户端应用104基于他的或她的位置向用户标识实况故事。最终结果是从社群角度讲述的“实况故事”。
另外类型的内容集合被称为“位置故事”,其使得其客户端设备102位于特定地理位置(例如,在学院或大学校园)内的用户能够对特定集合做出贡献。在一些示例中,对定位故事的贡献可能需要二级认证来验证终端用户属于特定组织或其他实体(例如,是大学校园中的学生)。
如上面提到的,视频表314存储视频数据,在一个示例中,该视频数据与其记录保存在消息表302内的消息相关联。类似地,图像表316存储图像数据,该图像数据与其消息数据存储在实体表304中的消息相关联。实体表304可以使来自增强表310的各种增强与存储在图像表316和视频表314中的各种图像和视频相关联。
数据库122还可以存储第三方UI数据表318。第三方UI数据表318可以包括可以用来启动客户端应用104的实例的各个第三方应用106的数据结构。被包括在相应的第三方应用106的UI数据表318中的数据结构可以指示能够用于生成客户端应用104的相机用户界面的修改版本的信息。该信息可以指示可以添加至客户端应用104的相机用户界面的文本内容、图像内容或视频内容中的至少一者。在各种示例中,被包括在第三方UI数据表318中的数据结构可以指示要包括在客户端应用104的相机用户界面的修改版本中的信息的存储位置,诸如一个或更多个统一资源指示符、一个或更多个链接、一个或更多个地址、或一个或更多个文件路径中的至少一者。被包括在第三方UI数据表318中的数据结构还可以存储指示客户端应用104的相机用户界面的修改版本的布局的信息。布局可以包括要被包括在相机用户界面的修改版本中的一个或多个用户界面元素以及一个或多个用户界面元素的相应位置。布局还可以包括与相应的第三方应用106相关的内容在客户端应用104的相机用户界面的修改版本内的位置信息。在一个或更多个另外的示例中,针对相应的第三方应用106,被包括在第三方UI数据表318中的数据结构可以包括指示客户端应用104的用户可以针对包括在相机用户界面的修改版本中的内容执行的编辑动作的信息或客户端应用104内的可以针对使用客户端应用104的相机用户界面的修改版本生成的内容执行的动作的信息中的至少一者。
图4是示出了根据一些实现方式的内容400的示例框架的示意图。内容400可以由客户端应用104生成。在各种示例中,内容400可以由客户端应用104的第一实例生成并被传送至客户端应用104的第二实例或服务器系统112中的至少一者。在内容400包括消息的情况下,内容400可以用于填充存储在数据库122内的消息表302并能够由应用服务器114访问。在一个或更多个实现方式中,内容400可以作为客户端设备102或应用服务器114中的至少一者的“在途”或“飞行”数据存储在存储器中。内容400被示出为包括以下组成部分中的至少一部分:
·内容标识符402:识别内容400的唯一标识符。
·消息文本有效载荷404:要由用户经由客户端设备102的用户界面生成并且被包括在内容400中的文本。
·内容图像有效载荷406:由客户端设备102的相机部件捕获或从客户端设备102的存储器部件检索到的并且包括在内容400中的图像数据。发送或接收的内容400的图像数据可以存储在图像表316中。
·内容视频有效载荷408:由相机部件捕获或从客户端设备102的存储器部件检索并且被包括在内容400中的视频数据。发送或接收的内容400的视频数据可以存储在视频表314中。
·内容音频有效载荷410:由麦克风捕获或从客户端设备102的存储器部件检索并且被包括在内容400中的音频数据。
·内容增强数据412:表示要应用于内容400的内容图像有效载荷406、内容视频有效载荷408或内容音频有效载荷410的增强数据(例如,过滤器、贴纸或其他注释或增强)。发送或接收的内容400的增强数据可以存储在增强表310中。
·内容持续时间参数414:以秒为单位的参数值,其指示内容400的一个或更多个部分(例如,内容图像有效载荷406、内容视频有效载荷408、内容音频有效载荷410)将经由客户端应用104呈现给用户或使用户可访问的时间量。
·内容地理位置参数416:与消息的内容有效载荷相关联的地理位置数据(例如,纬度坐标和经度坐标)。多个内容地理位置参数416的值可以被包括在有效载荷中,这些参数值中的每一个与包括在内容中的内容项(例如,内容图像有效载荷406内的特定图像或内容视频有效载荷408中的特定视频)相关联。
·内容故事标识符418:标识与内容400的内容图像有效载荷406中的特定项相关联的一个或更多个内容集合(例如,故事表312中标识的“故事”)的标识符值。例如,可以使用标识符值将内容图像有效载荷406内的多个图像各自与多个内容集合相关联。
·内容标签420:每个内容400可以用多个标签来标记,多个标签中的每个标签指示内容有效载荷中所包括的内容的主题。例如,在内容图像有效载荷406中包括的特定图像描绘动物(例如,狮子)的情况下,标签值可以包括在指示相关动物的内容标签420中。标签值可以基于用户输入手动生成或者可以使用例如图像识别自动生成。
·内容发送方标识符422:指示在其上生成内容400并且从其发送内容400的客户端设备102的用户的标识符(例如,消息收发系统标识符、电子邮件地址或设备标识符)。
·内容接收者标识符424:指示内容400定址到的客户端设备102的用户的标识符(例如,消息收发系统标识符、电子邮件地址或设备标识符)。
·修改后的相机用户界面标识符426:与第三方应用106相关的附加内容的一个或更多个标识符可以被包括在内容400中或能够经由客户端应用104访问。修改后的相机用户界面标识符426可以对应于与第三方应用106相关的文本内容、图像内容、视频内容、音频内容或其一个或更多个组合。
内容400的各个组成部分的数据(例如,值)可以对应于指向其内存储有数据的表中的位置的指针。例如,内容图像有效载荷406中的图像值可以是指向图像表316内的位置(或其地址)的指针。类似地,内容视频有效载荷408内的值可以指向存储在视频表314内的数据,存储在内容增强数据412内的值可以指向存储在增强表310中的数据,存储在内容故事标识符418内的值可以指向存储在故事表312中的数据,以及存储在内容发送方标识符422和内容接收者标识符424内的值可以指向存储在实体表304内的用户记录。修改后的相机用户界面标识符426可以指向与第三方应用106相关的由第三方UI数据表318存储的信息,第三方UI数据表318可以由客户端应用104结合内容400来呈现。
图5是示出根据一个或更多个示例实现方式的用于基于第三方修改来修改相机用户界面的架构500的图形表示。架构500可以包括服务器系统112,所述服务器系统112包括相机用户界面系统132。相机用户界面系统132可以使第三方应用106的开发者能够定制客户端应用104的相机用户界面。例如,可以从第三方应用106的实例启动客户端应用104的实例,并且当启动客户端应用104时显示的目标用户界面可以包括客户端应用104的相机用户界面的修改版本。以这种方式,响应于从第三方应用106而不是客户端应用104的默认主页启动客户端应用104,可以显示客户端应用104的相机用户界面的定制版本。
相机用户界面系统132可以提供相机用户界面开发者框架502,第三方应用106的开发者可以使用相机用户界面开发者框架502来生成客户端应用104的相机用户界面的定制版本。相机用户界面开发者框架502可以包括多个工具,第三方应用106的开发者可以使用所述多个工具来修改客户端应用104的相机用户界面。例如,相机用户界面开发者框架502可以包括可以用来修改客户端应用104的相机用户界面的软件开发者工具包。另外,相机用户界面开发者框架502可以包括示例软件代码、规则、一个或更多个应用编程接口、或其一个或更多个组合。在各种示例中,相机用户界面开发者框架502中包括的规则可以包括关于可以对客户端应用104的相机用户界面进行的修改的内容和参数的规范,以便由服务器系统144有效地实现客户端应用104的相机用户界面的定制版本。在一个或更多个示例中,相机用户界面开发者框架502的规则可以指示客户端应用104的相机用户界面所支持的文件类型。相机用户界面开发者框架502的规则还可以指示客户端应用104的相机用户界面的可修改的特征和客户端应用104的相机用户界面的不可修改的特征。另外,相机用户界面开发者框架502可以指示可以被包括在客户端应用104的相机用户界面的定制版本中的多个用户界面元素、可以针对客户端应用104的相机用户界面中包括的内容执行的动作、或其组合。
服务器系统112可以提供第三方应用106的开发者的开发者设备108对相机用户界面开发者框架502的访问。在各种示例中,相机用户界面系统132可以向一个或更多个开发者设备108提供相机用户界面开发者框架信息504。在一个或更多个示例中,相机用户界面开发者框架信息504可以包括一个或更多个用户界面或经由一个或更多个用户界面来提供,所述一个或更多个用户界面可以显示与相机用户界面开发者框架502相关的信息并且可以包括能够被选择以实现相机用户界面开发者框架502的特征的一个或更多个用户界面元素。相机用户界面开发者框架信息504可以包括一个或更多个用户界面元素,其可以捕获指示要包括在客户端应用104的定制相机用户界面中的用户界面元素、要在客户端应用104的定制相机用户界面内显示的与第三方应用106相关的信息、或者客户端应用104的定制相机用户界面的信息布局和用户界面元素中的至少一者的输入。
在一个或更多个实现方式中,开发者设备108可以根据相机用户界面开发者框架502向服务器系统112发送第三方应用信息506。第三方应用信息506可以包括要在客户端应用104的相机用户界面内显示的与第三方应用106相关的信息。第三方应用信息506可以指示要从第三方应用106传递到客户端应用104并且要在客户端应用104的相机用户界面中显示的信息。在第三方应用106是媒体播放器应用的情况下,第三方应用信息506可以指示经由第三方应用106消费的媒体的一个或更多个标识符将被传递到客户端应用104以在客户端应用104的相机用户界面中显示。第三方应用信息506还可以指示与第三方应用106相关的品牌信息,诸如第三方应用的名称、第三方应用106的标志等。在其他示例中,第三方应用信息506可以包括与第三方应用106相关的图像内容、视频内容、音频内容或文本内容中的至少一者。在一个或更多个示例中,第三方应用信息506可以包括可以从中检索第三方应用信息506的各部分的位置信息,诸如统一资源指示符、路径、地址等。在一个或更多个另外的示例中,第三方应用信息506可以包括可以被存储在服务器系统112可访问的一个或更多个数据库中的与第三方应用106相关的内容的副本。
开发者设备108还可以根据相机用户界面开发者框架502向服务器系统112发送相机用户界面修改508。相机用户界面修改508可以指示生成相机用户界面的定制版本要对客户端应用104的相机用户界面的改变。在一个或更多个示例中,相机用户界面修改508可以指示可以被添加至相机用户界面的一个或更多个用户界面元素或者可以从相机用户界面删除的一个或更多个用户界面元素中的至少一者。相机用户界面修改508还可以指示对客户端应用104的相机用户界面的信息布局或用户界面元素布局的改变。在其他示例中,相机用户界面修改508可以指示可以针对能够经由相机用户界面显示的内容执行的操作。
在各种实现方式中,客户端设备102的用户510可以启动第三方应用106的实例。第三方应用106可以包括游戏应用、健康和健身应用、媒体消费应用、内容访问应用、导航应用、电子商务应用、社交网络应用、或其一个或更多个组合等。第三方应用用户界面512可以经由第三方应用106显示并且可以包括内容514。第三方应用用户界面512还可以包括用户界面元素516,其能够被选择以在客户端设备102上启动客户端应用104的实例。在一个或更多个示例中,第三方应用106可以在启动客户端应用104的实例之后继续操作。
在各种示例中,响应于对用户界面元素516的选择,可以向服务器系统112发送客户端应用启动请求518。客户端应用启动请求518可以被发送至服务器系统112以获得可以在客户端应用104内显示的与第三方应用106相关的信息。在一个或更多个示例中,服务器系统112可访问经由客户端应用104显示的与第三方应用106相关的信息的至少一部分。在一个或更多个另外的示例中,由客户端设备102存储经由客户端应用104显示的与第三方应用106相关的信息的至少一部分。
响应于接收到客户端应用启动请求518,相机用户界面系统132可以检索用来呈现客户端应用104的相机用户界面的与第三方应用106相关的信息。由相机用户界面系统132响应于客户端应用启动请求518而检索到的信息可以包括第三方应用信息506的至少若干部分。另外,由相机用户界面系统132响应于客户端应用启动请求518而检索到的信息可以包括相机用户界面修改508的至少若干部分。在各种示例中,客户端应用启动请求518可以包括第三方应用106的标识符,相机用户界面系统132可以使用第三方应用106的标识符来检索与第三方应用106相关的信息,以发送至客户端设备102来生成客户端应用104的相机用户界面。相机用户界面系统132可以将用于生成客户端应用104的相机用户界面的与第三方应用106相关的信息汇编为修改后的相机用户界面数据520,并将修改后的相机用户界面数据520发送至客户端设备102。然后客户端应用104可以使用修改后的相机用户界面数据520生成客户端应用104的修改后的相机用户界面522。在一个或更多个示例中,相机用户界面系统132可以指导另一系统诸如由提供第三方应用106的第三方实现和维护的系统,以向客户端设备102发送用于生成修改后的相机用户界面522的信息。
修改后的相机用户界面522可以包括内容524。内容524可以包括在客户端设备102的至少一个相机的视场中捕获的图像内容或视频内容中的至少一者。例如,内容524可以包括由客户端设备102的至少一个相机正在捕获的实况内容。另外,修改后的相机用户界面522可以包括用户界面元素组526。用户界面元素组526可以包括多个用户界面元素,其能够被选择以进行以下中至少一者:修改客户端设备102的相机的设置或激活可以用来基于内容524生成用户内容的一个或更多个工具(例如,定时器工具、网格工具)。修改后的相机用户界面522还可以包括附加内容528。附加内容528可以与第三方应用106相关。在各种示例中,附加内容528可以与在作出客户端应用启动请求518时被第三方应用106消费或访问中的至少一者的内容相关。在另外的示例中,附加内容528的至少一部分可以包括由开发者设备108提供的第三方应用信息506的至少一部分。此外,修改后的相机用户界面522可以包括另一用户界面元素530。另一用户界面元素530能够被选择以基于内容524生成用户内容。例如,另一用户界面元素530能够被选择以生成包括内容524中包括的图像内容的照片。在一个或更多个另外的示例中,另一用户界面元素530能够被选择以生成包括在一段时间内捕获的内容524的视频。在一个或更多个说明性示例中,对另一用户界面元素530的选择可以使得生成持续一段时间的数据,所述数据包括由客户端设备102生成的与内容524对应的图像数据或视频数据。
在各种示例中,在响应于对另一用户界面元素530的选择而生成了用户内容之后,可以显示后续用户界面(图5中未示出)。在一个或更多个示例中,后续用户界面可以包括能够被选择以将一个或更多个创作工具应用于用户内容的用户界面元素。一个或更多个创作工具可以将文本内容、音频内容、视频内容或图像内容中的至少一者应用于用户内容。一个或更多个创作工具还可以通过将一个或更多视觉效果应用于用户内容来修改用户内容中包括的一个或更多个对象的外观。一个或更多个创作工具可以实现针对用户内容的覆盖、注释、过滤或增强现实内容中的至少一者。此外,后续用户界面可以包括能够被选择以分发用户内容或用户内容的修改版本的一个或更多个用户界面元素。在一个或更多个说明性示例中,用户内容或用户内容的修改版本可以与客户端应用104的一个或更多个附加用户共享,诸如用户510的社交网络中包括的客户端应用104的一个或更多个用户。
在一个或更多个实现方式中,可以相对于默认相机用户界面532来生成修改后的相机用户界面522。在客户端应用104不直接从第三方应用106启动的情况下,可以经由客户端应用104显示默认相机用户界面532。也就是说,可以在通过客户端应用104导航时或者当通过对客户端设备102的用户界面(诸如客户端设备102的操作系统的主页)中显示的图标组中包括的图标的选择来启动客户端应用104时访问默认相机用户界面532。可以基于对默认相机用户界面532的修改来生成修改后的相机用户界面522,其中由第三方应用106的一个或更多个开发者根据相机用户界面开发者框架502来提供修改。
默认相机用户界面532可以包括内容534,所述内容534包括在客户端设备102的至少一个相机的视场中捕获的图像内容或视频内容中的至少一者。在各种示例中,内容534可以对应于内容524。默认相机用户界面532还可以包括用户界面元素组526和另一用户界面元素530。在一个或更多个示例中,相机用户界面开发者框架502可以指示默认相机用户界面532的一个或更多个特征将被从默认相机用户界面532保存到修改后的相机用户界面522,诸如用户界面元素组526和另一用户界面元素530。
默认相机用户界面532还可以包括可以由第三方应用106的一个或更多个开发者修改或删除的特征。例如,默认相机用户界面532可以包括与客户端应用104的搜索功能对应的用户界面元素536。为了说明,用户界面元素536可以用来搜索客户端应用104的一个或更多个附加用户,诸如被包括在用户510的社交网络中的客户端应用104的一个或更多个用户。
另外,默认相机用户界面532可以包括附加的用户界面元素组538。附加的用户界面元素组538可以包括第一用户界面元素540,其能够被选择以访问由一个或更多个内容源提供的内容。为了说明,第一用户界面元素540能够被选择以访问与用户510的联系人相关的内容,诸如被包括在用户510的社交网络中的客户端应用104的附加用户的内容或用户510正关注的客户端应用104的附加用户的内容。附加的用户界面元素组538还可以包括第二用户界面元素542。第二用户界面元素542能够被选择以调用客户端应用104的消息收发功能。在一个或更多个示例中,第二用户界面元素542能够被选择以生成包括内容534的消息。另外,附加的用户界面元素组538可以包括第三用户界面元素544。第三用户界面元素544能够被选择以访问已经使用客户端应用104生成的用户510的内容,诸如使用客户端应用104生成的图像内容或视频内容中的至少一者。使用客户端应用104生成的内容可以与用户510的帐户与服务提供商相关联地存储,所述服务提供商经由服务器系统112进行以下中的至少一者:实现或维护客户端应用104。在一个或更多个说明性示例中,第三用户界面元素544能够被选择以访问与用户510相关的内容的集合。此外,附加的用户界面元素组538可以包括第四用户界面元素546。第四用户界面元素546能够被选择以搜索访问可以被应用于内容534的增强现实内容项。对第四用户界面元素546的选择可以产生分别对应于相应增强现实内容项的选项组。对选项组中的选项的选择可以使得对应的增强现实内容项被应用于内容534。
图6和图7示出了基于与第三方应用106相关的内容来修改客户端应用104的相机用户界面的处理的一个或更多个实现方式的流程图。这些处理可以体现为由一个或更多个处理器执行的计算机可读指令,使得这些处理的操作可以部分地或全部地由客户端应用104或服务器系统112中的至少一者的功能部件执行。因此,在一些情况下,下面参考其通过示例的方式来描述处理。然而,在其他实现方式中,关于图6和图7描述的处理的至少一些操作可以部署在各种其他硬件配置上。因此,关于图6和图7描述的处理不旨在限于服务器系统112或客户端设备102,并且可以通过一个或更多个附加部件整体或部分地实现。尽管所描述的流程图可以将操作示出为顺序处理,但是操作中的很多操作可以并行或同时执行。另外,可以重新布置操作的顺序。当其操作完成时,处理终止。处理可以对应于方法、过程、算法等。方法的操作可以全部或部分执行,可以与其他方法中的一些或所有操作结合执行,并且可以通过任何数目的不同系统例如本文描述的系统或者其任何部分例如包括在任何系统中的处理器执行。
图6是示出根据一个或更多个示例实现方式的实现由第三方使用框架来修改客户端应用的相机用户界面的处理600的示例操作的流程图。处理600可以包括:在操作602处,生成与经由客户端应用显示的相机用户界面的初始版本的修改相关的框架。框架可以提供与对相机用户界面的修改对应的参数或特征中的至少一者。在一个或更多个示例中,框架可以包括软件开发者工具包、计算机可读指令、一个或更多个应用编程接口、或关于修改相机用户界面的初始版本的一个或更多个规则中的至少一者。在一个或更多个说明性示例中,相机用户界面的初始版本可以对应于相机用户界面的默认版本。此外,框架可以使得信息能够从第三方应用传递到客户端应用,并且客户端应用可以在相机用户界面的修改版本内显示信息或信息的修改版本。
在操作604处,处理600可以包括使与框架对应的相机用户界面开发者信息能够由第三方应用的开发者的附加计算设备访问。在各种示例中,相机用户界面开发者信息可以经由一个或更多个用户界面来访问。一个或更多个用户界面可以包括捕获与对相机用户界面的初始版本的修改相关的输入的用户界面元素。在一个或更多个示例中,一个或更多个用户界面可以捕获用于修改相机用户界面的初始版本的一个或更多个用户界面元素的第一输入。例如,第一输入可以涉及将一个或更多个用户界面元素添加至相机用户界面的初始版本。第一输入还可以涉及从相机用户界面的初始版本中删除一个或更多个用户界面元素。被包括在相机用户界面的初始版本中的用户界面元素能够被选择以使客户端应用所支持的一个或更多个操作发生。与框架相关的一个或更多个用户界面还可以捕获用于将内容添加至相机用户界面的初始版本的第二输入。为了说明,第二输入可以对应于将与第三方应用相关的内容添加至相机用户界面的初始版本。在一个或更多个说明性示例中,被添加至相机用户界面的初始版本的与第三方应用相关的内容可以对应于正由第三方应用显示或正由第三方应用访问中的至少一者的内容。
在一个或更多个实现方式中,框架可以指示不能从相机用户界面的初始版本中删除的相机用户界面的初始版本的特征。也就是说,框架可以包括针对相机用户界面的初始版本中包括的特征的一个或更多个限制。在一个或更多个示例中,框架可以指示相机用户界面的初始版本的可被修改的一个或更多个用户界面元素或者相机用户界面的初始版本的不可被修改的一个或更多个用户界面元素中的至少一者。在各种示例中,框架可以使得第三方应用的开发者能够指定相机用户界面的修改版本中包括的特征的布局。为了说明,框架可以使得相机用户界面的初始版本中包括的特征的一个或更多个位置能够被改变。另外,框架可以使得第三方应用的开发者能够为添加至相机用户界面的初始版本的特征指定在相机用户界面的修改版本内的位置。
另外,在操作606处,处理600可以包括从开发者的附加计算设备接收根据框架的一个或更多个相机用户界面修改或第三方相机用户界面数据中的至少一者。在一个或更多个示例中,第三方应用的开发者可以利用与框架对应的用户界面来对相机用户界面的初始版本进行修改。修改可以被存储在一个或更多个数据库中。在各种示例中,修改可以与第三方应用的标识符相关联地存储。以这种方式,在客户端应用从第三方应用启动的情况下,与第三方应用相关的修改可以被检索并用来生成当客户端应用从第三方应用启动时显示的相机用户界面的修改版本。
此外,在操作608处,处理600可以包括从客户端设备接收从第三方应用访问客户端应用的请求指示。可以响应于对第三方应用的用户界面中的用户界面元素的选择来提供该指示。例如,第三方应用的用户可以选择用户界面元素。指示可以包括第三方应用的标识符。另外,指示可以包括第三方应用的用户的标识符。
处理600可以包括:在操作610处,确定生成相机用户界面的修改版本要对相机用户界面的初始版本进行的一个或更多个修改。在一个或更多个示例中,第三方应用的标识符可以用来查询一个或更多个数据库,所述一个或更多个数据库包括关于第三方应用的开发者使用相机用户界面开发者框架对相机用户界面的初始版本的修改的信息。以这种方式,可以应用与第三方应用对应的对相机用户界面的初始版本的修改,以生成相机用户界面的修改版本。在各种示例中,与第三方应用相关的内容可以被获得并用来生成相机用户界面的修改版本。在一个或更多个说明性示例中,对应于与第三方应用相关的内容的统一资源指示符可以被检索并用来获得第三方应用内容。在一个或更多个另外的示例中,还可以标识与和第三方应用相关联的相机用户界面的修改版本的修改版本相关的用户界面元素。在一个或更多个其他示例中,可以确定用户界面元素和内容的布局。在又其他示例中,可以标识在进行输入以从客户端应用启动客户端应用时由第三方应用显示或访问中的至少一者的内容,并且可以使用与内容相关的信息来生成相机用户界面的修改版本。
在612处,处理600可以包括向从第三方应用启动客户端应用的客户端设备发送与相机用户界面的初始版本的一个或更多个修改对应的修改后的相机用户界面数据。然后客户端设备可以分析修改后的相机用户界面数据,并实现修改后的相机用户界面数据以显示相机用户界面的修改版本。
图7是示出根据一个或更多个示例实现方式的基于从第三方应用开发者获得的信息来生成修改后的相机用户界面的处理700的示例操作的流程图。在操作702处,处理700可以包括生成第三方应用的用户界面,用户界面包括用户界面元素,所述用户界面元素能够被选择以启动对客户端应用的实例的执行。在各种示例中,第三方应用的开发者可以通过向第三方应用的一个或更多个用户界面添加使客户端应用启动的用户界面元素来提供从第三方应用对客户端应用的访问。
另外,在操作704处,处理700可以包括接收指示对用户界面元素的选择的输入。在一个或更多个示例中,响应于对用户界面元素的选择,可以向服务提供商发送至少一个请求以获得可以用来呈现和显示客户端应用的相机用户界面元素的信息。在一个或更多个示例中,对用户界面元素的选择可以使得与在启动客户端应用时生成的目标用户界面对应的统一资源指示符能够被标识。在一个或更多个说明性示例中,目标用户界面可以包括部分地显示客户端设备的至少一个相机的视场的客户端应用的相机用户界面。在一个或更多个另外的示例中,响应于对用户界面元素的选择,可以标识与经由第三方应用显示或访问中的至少一者的第三方应用的内容相关的信息,并将其传递给客户端应用。客户端应用可以使用第三方应用内容来生成相机用户界面的至少一部分。
处理700可以包括:在操作706处,获得指示对客户端应用的相机用户界面的初始版本的一个或更多个修改的修改后的相机用户界面数据。修改后的相机用户界面数据可以指示要被包括在与第三方应用相关联的相机用户界面的修改版本中的用户界面元素。修改后的相机用户界面数据还可以指示相机用户界面的修改版本的特征的布局。此外,修改后的相机用户界面数据可以指示可以在相机应用的修改版本中显示的与第三方应用相关的信息,诸如第三方应用的标识符或者与由第三方应用显示或能够由第三方应用访问中的至少一者的内容对应的信息。
在操作708处,处理700可以包括基于一个或更多个修改生成相机用户界面的修改版本。此外,在操作710处,处理700可以包括显示相机用户界面的修改版本,所述相机用户界面的修改版本包括与第三方应用相关的信息以及由执行客户端应用的实例的客户端设备的相机捕获的图像内容或视频内容中的至少一者。在一个或更多个示例中,相机用户界面的修改版本可以包括一个或更多个用户界面元素,以修改在相机用户界面的修改版本中示出的图像内容或视频内容中的至少一者。例如,相机用户界面的修改版本可以包括一个或更多个用户界面元素,其能够被选择以将一个或更多个增强现实内容项应用于图像内容或视频内容中的至少一者。在一个或更多个另外的示例中,相机用户界面的修改版本可以包括一个或更多个用户界面元素以创建用户内容诸如图像内容或视频内容,其包括在相机的视场中捕获的内容并且还包括与第三方应用相关的内容。用户内容可以与客户端应用的附加用户共享。用户内容也可以被包括在可以被发送至一个或更多个接收者的消息中。在各种示例中,在生成用户内容并经由客户端应用分发用户内容之前可以由客户端应用的用户编辑与第三方应用相关的信息。为了说明,在生成要经由客户端应用分发的用户内容之前,可以从相机用户界面的修改版本中显示的内容中删除第三方应用的标识符。
图8是根据一个或更多个示例实现方式的示出相机的视图并且根据第三方应用的开发者所使用的框架来格式化以将来自第三方的内容包括到用户界面中的用户界面800的图示。用户界面800可以经由客户端设备102的显示设备来显示,并且由客户端设备102所执行的客户端应用(诸如客户端应用104)来产生。可以响应于从第三方应用106启动客户端应用104来显示用户界面800。在图8的说明性示例中,第三方应用106可以包括媒体播放器应用。在一个或更多个示例中,用户界面800可以包括客户端应用104的相机用户界面的修改版本,该修改版本已经由媒体播放器应用的一个或更多个开发者使用与客户端应用104相关的由服务提供商提供的框架来设计。
用户界面800可以包括关于由第三方应用106的一个或更多个开发者设计的客户端应用104的相机用户界面的修改版本的信息和用户界面元素的布局。例如,用户界面800可以包括在客户端设备102的相机804的视场内捕获的视场内容802。另外,用户界面800可以包括媒体播放器应用的标识符806。在一个或更多个示例中,标识符806可以对应于由媒体播放器应用的开发者提供的第三方应用信息。用户界面800还可以包括用户界面元素组808。用户界面元素组808可以包括多个用户界面元素,其能够被选择以实现与从视场内容802生成用户内容相关的各种动作,诸如基于视场内容802捕获图像内容或视频内容中的至少一者。在一个或更多个示例中,用户界面元素组808可以包括旋转视场内容802的视图诸如从肖像视图到风景视图或从风景视图到肖像视图的用户界面元素。另外,用户界面元素组808可以包括修改相机804的闪光设置的用户界面元素、实现关于捕获相机804的视场内的内容的定时器的用户界面元素、以及能够被选择以向用户界面800添加网格的用户界面元素等。在一个或更多个示例中,相机用户界面开发者框架可以指定该用户界面元素组808不可从用户界面800删除。
此外,用户界面800可以包括附加第三方信息810,其指示由客户端应用104从其启动的第三方媒体播放器应用所消费或可访问中的至少一者的媒体内容。在图8的说明性示例中,附加第三方信息810可以包括与当启动客户端应用104时由媒体播放器应用正在播放的歌曲相关的信息。在各种示例中,当随着客户端应用104的用户与用户界面800交互媒体播放器应用在后台操作时,歌曲可以继续播放。附加第三方信息810可以基于从媒体播放器应用传递到客户端应用104的数据来显示,该数据指示歌曲的名称、与歌曲相关的艺术家、与歌曲相关的专辑以及与歌曲相关的图形。在一个或更多个示例中,媒体播放器应用的一个或更多个开发者可以使用相机用户界面开发者框架来指定附加第三方信息810的位置和外观。用户界面800还可以包括指示与附加第三方信息810相关的功能的指示812。为了说明,附加第三方信息810可以对应于可以向上浏览的用户界面元素,以便显示关于由客户端应用104从其启动的媒体播放器应用播放的歌曲的进一步信息。
在一个或更多个实现方式中,用户界面800还可以包括用户界面元素814,其能够被选择以创建包括在相机804的视场中示出的图像内容或视频内容中的至少一者的用户内容。在一个或更多个示例中,对用户界面元素814的选择可以使得用户界面800中示出的内容持续一段时间以创建用户内容。在各种示例中,用户内容可以被存储在客户端设备102的存储器或远程存储位置中的至少一者中。另外,用户界面800可以包括用户界面元素816,其能够被选择以共享基于视场内容802创建的用户内容。在一个或更多个场景中,可以通过发送包括在相机804的视场中捕获的内容的消息来共享用户内容。消息还可以包括关于媒体播放器应用的信息。在一个或更多个说明性示例中,消息可以包括用户界面元素,所述用户界面元素能够由消息的一个或更多个接收者选择以启动媒体播放器应用并播放与附加第三方信息810对应的歌曲。在一个或更多个另外的示例中,用户界面元素816能够被选择,以使得用户内容能够由被包括在客户端应用104的用户的社交网络中的客户端应用104的一个或更多个用户访问,客户端应用104基于包括在用户界面800中的视场内容802或第三方应用信息中的至少一者来生成用户内容。
图9是根据一个或更多个示例实现方式的示出了相机的视图并且使得客户端应用的用户能够修改用户界面中包括的第三方内容的用户界面900的图示。用户界面900可以经由客户端设备102的显示设备来显示,并且由客户端设备102所执行的客户端应用(诸如客户端应用104)来产生。在各种示例中,用户界面900可以在用户界面800之后显示,或者可以在选择用户界面元素以修改用户界面800中包括的内容之后包括用户界面800的修改版本。在图9的说明性示例中,用户界面900可以包括可以被实现成从用户界面800删除内容的用户界面元素902。例如,可以使用用户界面元素902从用户界面800中删除附加第三方信息810。以这种方式,客户端应用104的用户可以生成不包括附加第三方信息810的用户内容。
图10是根据一个或更多个示例实现方式的示出相机的视图并且使得客户端应用的用户能够修改用户界面中包括的第三方内容的附加用户界面1000的图示。用户界面1000可以经由客户端设备102的显示设备来显示,并且由客户端设备102所执行的客户端应用(诸如客户端应用104)来产生。用户界面1000可以包括用户界面元素1002,其可以响应于对用户界面元素的选择而被显示以共享基于视场内容802生成的用户内容,或者包括能够被选择以修改与用户内容相关的消息或社交网络帖子的用户界面元素。在图10的说明性示例中,用户界面元素1002可以包括用于从消息或从社交网络帖子中删除链接的指令,其中该链接使得消息的接收者或查看社交网络帖子的客户端应用104的用户能够启动第三方媒体播放器应用。用户界面元素1002可以包括第一附加用户界面元素1004和第二附加用户界面元素1006,第一附加用户界面元素1004能够被选择以从消息或社交网络帖子中删除链接,第二附加用户界面元素1006能够被选择以删除用户界面元素1002并取消与从消息或社交网络帖子中删除链接相关的任何动作。
图11是示出了根据一些示例实现方式的能够从机器可读介质(例如,机器可读存储介质)读取指令并且执行本文中讨论的方法中的任何一种或更多种方法的机器1100的部件的框图。具体地,图11示出了呈计算机系统的示例形式的机器1100的图形表示,在机器1100内可以执行用于使机器1100执行本文中讨论的方法中的任何一种或更多种方法的指令1102(例如,软件、程序、应用、小程序、应用(app)或其他可执行代码)。因此,可以使用指令1102来实现本文中描述的模块或部件。指令1102将通用的未编程的机器1100转换成被编程为以所描述的方式执行所描述和示出的功能的特定机器1100。在替选实现方式中,机器1100作为独立设备操作或可以耦接(例如,联网)至其他机器。在联网部署中,机器1100可以在服务器-客户端网络环境中以服务器机器或客户端机器的身份操作,或者在对等(或分布式)联网环境中作为对等机器操作。机器1100可以包括但不限于:服务器计算机、客户端计算机、个人计算机(PC)、平板计算机、膝上型计算机、上网本、机顶盒(STB)、个人数字助理(PDA)、娱乐媒体系统、蜂窝电话、智能电话、移动设备、可穿戴设备(例如,智能手表)、智能家居设备(例如,智能电器)、其他智能设备、web家用电器、网络路由器、网络交换机、网络桥接器或者能够顺序地或以其他方式执行指定要由机器1100采取的动作的指令1102的任何机器。此外,虽然仅示出了单个机器1100,但是术语“机器”还应被认为包括单独地或联合地执行指令1102以执行本文中讨论的任何一种或更多种方法的机器的集合。
机器1100可以包括处理器1104、存储器/存储装置1106和I/O部件1108,所述处理器1004、存储器/存储装置1006和I/O部件1018可以被配置成例如经由总线1110彼此通信。在示例实现方式中,处理器1104(例如,中央处理单元(CPU)、简化指令集计算(RISC)处理器、复杂指令集计算(CISC)处理器、图形处理单元(GPU)、数字信号处理器(DSP)、专用集成电路(ASIC)、射频集成电路(RFIC)、另一处理器或其任何合适的组合)可以包括例如可以执行指令1102的处理器1112和处理器1114。术语“处理器”旨在包括多核处理器1104,该多核处理器1104可以包括可以同时执行指令1102的两个或更多个独立的处理器(有时被称为“核”)。尽管图11示出了多个处理器1104,但是机器1100可以包括具有单个核的单个处理器1112、具有多个核的单个处理器1112(例如,多核处理器)、具有单个核的多个处理器1112、具有多个核的多个处理器1112、或其任何组合。
存储器/存储装置1106可以包括诸如主存储器1116或其他存储器存储装置的存储器以及存储单元1118,处理器1104能够例如经由总线1110访问主存储器1116和存储单元1118两者。存储单元1118和主存储器1116存储体现本文中描述的方法或功能中的任一种或更多种方法或功能的指令1102。指令1102还可以在其被机器1100执行期间完全地或部分地驻留在主存储器1116内、存储单元1118内、处理器1104中的至少一者内(例如,处理器的高速缓冲存储器内)或它们的任何合适组合内。因此,主存储器1116、存储单元1118以及处理器1104的存储器是机器可读介质的示例。
I/O部件1108可以包括用于接收输入、提供输出、产生输出、传送信息、交换信息、捕获测量结果等的各种部件。包括在特定机器1100中的具体I/O部件1108将取决于机器的类型。例如,诸如移动电话的便携式机器将很可能包括触摸输入设备或其他这样的输入机构,而无头服务器(headless server)机器将很可能不包括这样的触摸输入设备。将理解的是,I/O部件1108可以包括图10中未示出的很多其他部件。I/O部件1108仅为了简化以下讨论而根据功能被分组,并且该分组决不是限制性的。在各种示例实现方式中,I/O部件1108可以包括用户输出部件1120和用户输入部件1122。用户输出部件1120可以包括视觉部件(例如,诸如等离子体显示面板(PDP)的显示器、发光二极管(LED)显示器、液晶显示器(LCD)、投影仪或阴极射线管(CRT))、声学部件(例如,扬声器)、触觉部件(例如,振动马达、阻力机构)、其他信号发生器等。用户输入部件1122可以包括字母数字输入部件(例如,键盘、被配置成接收字母数字输入的触摸屏、光电键盘或其他字母数字输入部件)、基于点的输入部件(例如,鼠标、触摸板、轨迹球、操纵杆、运动传感器或其他定点仪器)、触觉输入部件(例如,物理按钮、提供触摸或触摸手势的位置或力的触摸屏、或其他触觉输入部件)、音频输入部件(例如,麦克风)等。
在其他示例实现方式中,I/O部件1108可以包括生物识别部件1124、动作部件1126、环境部件1128、或定位部件1130以及各种其他部件。例如,生物识别部件1124可以包括用于检测表达(例如,手表达、脸部表达、声音表达、身体姿势或眼睛跟踪)、测量生物信号(例如,血压、心率、体温、出汗或脑电波)、识别人(例如,语音识别、视网膜识别、脸部识别、指纹识别或基于脑电图的识别)等的部件。运动部件1126可以包括:加速度传感器部件(例如,加速度计)、重力传感器部件、旋转传感器部件(例如,陀螺仪)等。环境部件1128可以包括例如照明传感器部件(例如,光度计)、温度传感器部件(例如,检测周围温度的一个或更多个温度计)、湿度传感器部件、压力传感器部件(例如,气压计)、听觉传感器部件(例如,检测背景噪声的一个或更多个麦克风)、接近传感器部件(例如,检测附近对象的红外传感器)、气体传感器(例如,为了安全而检测危险气体的浓度或者测量大气中的污染物的气体检测传感器)或者可以提供与周围物理环境对应的指示、测量或信号的其他部件。定位部件1130可以包括位置传感器部件(例如,GPS接收器部件)、海拔高度传感器部件(例如,从其中检测可以得到海拔高度的气压的高度计或气压计)、取向传感器部件(例如,磁力计)等。
可以使用各种各样的技术来实现通信。I/O部件1108可以包括通信部件1132,通信部件1132可操作成将机器1100耦接至网络1134或设备1136。例如,通信部件1132可以包括网络接口部件或与网络1134对接的其他合适的设备。在另外的示例中,通信部件1132可以包括有线通信部件、无线通信部件、蜂窝通信部件、近场通信(NFC)部件、部件(例如,低能耗)、部件和经由其他形式提供通信的其他通信部件。设备1136可以是另一机器1100或各种外围设备中的任何外围设备(例如,经由USB耦接的外围设备)。
此外,通信部件1132可以检测标识符或者包括可操作成检测标识符的部件。例如,通信部件1132可以包括射频识别(RFID)标签阅读器部件、NFC智能标签检测部件、光学阅读器部件(例如,用于检测诸如通用产品代码(UPC)条形码的一维条形码、诸如快速反应(QR)码的多维条形码、Aztec码、数据矩阵、数据符号(Dataglyph)、最大码(MaxiCode)、PDF417、超码(Ultra Code)、UCC RSS-2D条形码和其他光学码的光学传感器)或声学检测部件(例如,用于识别标记的音频信号的麦克风)。此外,可以经由通信部件1132得出各种信息,如经由因特网协议(IP)地理位置的位置、经由信号三角测量的位置、经由检测可以指示特定位置的NFC信标信号的位置等。
图12是示出了可以与本文描述的各种硬件架构结合使用的包括示例软件架构1202的系统1200的框图。图12是软件架构的非限制性示例,并且应当理解,可以实现很多其他架构以促进本文中描述的功能。软件架构1202可以在诸如图11的机器1100的硬件上执行,机器1100包括处理器1104、存储器/存储装置1106和输入/输出(I/O)部件1108等。代表性硬件层1204被示出并且可以表示例如图11的机器1100。代表性硬件层1204包括具有相关联的可执行指令1208的处理单元1206。可执行指令1208表示软件架构1202的可执行指令,包括本文中描述的方法、部件等的实现方式。硬件层1204还包括也具有可执行指令1208的存储器或存储模块存储器/存储装置1210中的至少一者。硬件层1204还可以包括其他硬件1212。
在图12的示例架构中,软件架构1202可以被概念化为一堆层,其中每个层提供特定功能。例如,软件架构1202可以包括诸如操作系统1214、库1216、框架/中间件1218、应用1220和呈现层1222的层。在操作上,层内的应用1220和/或其他部件可以通过软件堆栈激活API调用1224并且响应于API调用1224而接收消息1226。所示出的层在本质上是代表性的,并且并非所有软件架构都具有所有的层。例如,一些移动操作系统或专用操作系统可能不提供框架/中间件1218,而其他操作系统可能提供这样的层。其他软件架构可以包括另外的或不同的层。
操作系统1214可以管理硬件资源并且提供公共服务。操作系统1214可以包括例如核1228、服务1230和驱动器1232。核1228可以用作硬件与其他软件层之间的抽象层。例如,核1228可以负责存储器管理、处理器管理(例如,调度)、部件管理、联网、安全设置等。服务1230可以针对其他软件层提供其他公共服务。驱动器1232负责控制底层硬件或与底层硬件对接。例如,根据硬件配置,驱动器1232包括显示器驱动器、相机驱动器、驱动器、闪速存储器驱动器、串行通信驱动器(例如,通用串行总线(USB)驱动器)、驱动器、音频驱动器、电源管理驱动器等。
库1216提供了由应用1220、其他部件或层中的至少一者使用的公共基础设施。库1216提供如下功能,该功能允许其他软件部件以比与底层操作系统1214的功能(例如,核1228、服务1230或驱动器1232)直接对接的方式更容易的方式来执行任务。库1216可以包括系统库1234(例如,C标准库),该系统库1234可以提供诸如存储器分配功能、字符串操作功能、数学函数等的功能。此外,库1216可以包括API库1236,例如媒体库(例如,支持诸如MPEG4、H.264、MP3、AAC、AMR、JPG、PNG的各种媒体格式的呈现和操纵的库)、图形库(例如,可以用于在显示器上以图形内容呈现二维和三维的OpenGL框架)、数据库库(例如,可以提供各种关系数据库功能的SQLite)、web库(例如,可以提供web浏览功能的WebKit)等。库1216还可以包括各种其他库1238,以向应用1220和其他软件部件/模块提供很多其他API。
框架/中间件1218(有时也被称为中间件)提供可以由应用1220或其他软件部件/模块使用的较高级别的公共基础设施。例如,框架/中间件1218可以提供各种图形用户接口功能、高级资源管理、高级位置服务等。框架/中间件1218可以提供可以由应用1220和/或其他软件部件/模块利用的广泛的其他API,其中一些API可以专用于特定的操作系统1214或平台。
应用1220包括内置应用1240和/或第三方应用1242。代表性内置应用1240的示例可以包括但不限于:联系人应用、浏览器应用、图书阅读器应用、位置应用、媒体应用、消息收发应用或游戏应用。第三方应用1242可以包括由除特定平台的供应商之外的实体使用ANDROIDTM或IOSTM软件开发工具包(SDK)开发的应用,并且可以是在诸如IOSTM、ANDROIDTM、电话的移动操作系统或其他移动操作系统上运行的移动软件。第三方应用1242可以调用由移动操作系统(例如,操作系统1214)提供的API调用1224,以有利于本文中描述的功能。
应用1220可以使用内置操作系统功能(例如,核1228、服务1230驱动器1232)、库1216以及框架/中间件1218来创建UI以与系统的用户交互。替选地或附加地,在一些系统中,可以通过表示层例如表示层1222发生与用户的交互。在这些系统中,应用/部件“逻辑”可以与同用户交互的应用/部件的方面分开。
术语表:
该上下文中的“载波信号”是指能够存储、编码或携载由机器1100执行的暂态或非暂态指令1102的任何无形介质并且包括数字或模拟通信信号或其他无形介质以便于这些指令的通信。可以使用暂态或非暂态传输介质经由网络接口设备并且使用多个公知的传输协议中的任何一个来通过网络114、1134发送或接收指令1102。
该上下文中的“客户端设备”是指与通信网络114、1134对接以从一个或更多个服务器系统或其他客户端设备102获取资源的任何机器1100。客户端设备102可以是但不限于移动电话、桌上型计算机、膝上型计算机、PDA、智能电话、平板计算机、超级本、上网本、膝上型计算机、多处理器系统、基于微处理器或可编程消费电子产品、游戏控制台、机顶盒或用户可以用于访问网络114、1134的任何其他通信设备。
该上下文中的“通信网络”是指网络114、1134的一个或更多个部分,网络110,1134可以是自组织网络、内联网、外联网、虚拟专用网络(VPN)、局域网(LAN)、无线LAN(WLAN)、广域网(WAN)、无线WAN(WWAN)、城域网(MAN)、因特网、因特网的一部分、公共交换电话网(PSTN)的一部分、普通老式电话服务(POTS)网络、蜂窝电话网络、无线网络、网络、其他类型的网络或两个或更多个这样的网络的组合。例如,网络114、1134或网络的一部分可以包括无线网络或蜂窝网络,并且耦接可以是码分多址(CDMA)连接、全局移动通信系统(GSM)连接或其他类型的蜂窝或无线耦接。在该示例中,耦接可以实现各种类型的数据传输技术中的任何一种,例如单载波无线电传输技术(1xRTT)、演进数据优化(EVDO)技术、通用分组无线业务(GPRS)技术、增强型数据速率GSM演进(EDGE)技术、包括3G的第三代合作伙伴计划(3GPP)、第四代无线(4G)网络、通用移动通信系统(UMTS)、高速分组接入(HSPA)、全球微波接入互操作性(WiMAX)、长期演进(LTE)标准、由各种标准设置组织定义的其他标准、其他远程协议或其他数据传输技术。
该上下文中的“短暂的消息”是指可以在时间有限的持续时间内访问的消息。短消息可以是文本、图像、视频等。短消息的访问时间可以由消息发送方设置。可替选地,访问时间可以是默认设置或者由接收方指定的设置。无论设置技术如何,消息都是暂时的。
该上下文中的“机器可读介质”是指能够临时或永久地存储指令1102和数据的部件、设备或其他有形介质,并且可以包括但不限于随机存取存储器(RAM)、只读存储器(ROM)、缓冲存储器、闪速存储器、光学介质、磁介质、高速缓冲存储器、其他类型的存储装置(例如,可擦除可编程只读存储器(EEPROM))和/或其任何合适的组合。术语“机器可读介质”应当被认为包括能够存储指令1102的单个介质或多个介质(例如,集中式或分布式数据库或者相关联的高速缓冲存储器和服务器)。术语“机器可读介质”还可以被认为包括能够存储由机器1100执行的指令1102(例如,代码)的任何介质或多个介质的组合,使得指令1102在由机器1100的一个或更多个处理器1104执行时使机器1100执行本文中所描述的任何一种或更多种方法。相应地,“机器可读介质”是指单个存储装置或设备,以及包括多个存储装置或设备的“基于云”的存储系统或存储网络。术语“机器可读介质”不包括信号本身。
该上下文中的“部件”指代具有由功能或子例程调用、分支点、API或者对特定处理或控制功能提供分区或模块化的其他技术定义的边界的设备、物理实体或逻辑。部件可以经由它们的接口与其他部件组合以执行机器处理。部件可以是被设计用于与其他部件一起使用的封装功能硬件单元,以及通常执行相关功能的特定功能的程序的一部分。部件可以构成软件部件(例如,实施在机器可读介质上的代码)或硬件部件。“硬件部件”是能够执行某些操作的有形单元,并且可以以某种物理方式来配置或布置。在各种示例实现方式中,一个或更多个计算机系统(例如,独立计算机系统、客户端计算机系统或服务器计算机系统)或计算机系统的一个或更多个硬件部件(例如,处理器或处理器组)可以通过软件(例如,应用或应用部分)被配置成用于执行如本文中描述的某些操作的硬件部件。
也可以机械地、电子地或以其任何合适的组合来实现硬件部件。例如,硬件部件可以包括被永久地配置成执行某些操作的专用电路或逻辑。硬件部件可以是专用处理器,例如现场可编程门阵列(FPGA)或ASIC。硬件部件还可以包括通过软件被临时配置成执行某些操作的可编程逻辑或电路系统。例如,硬件部件可以包括由通用处理器1104或其他可编程处理器执行的软件。一旦通过这样的软件被配置,则硬件部件成为特定的机器(或机器1100的特定部件),该特定的机器被唯一地定制成执行配置的功能并且不再是通用处理器1104。将理解的是,可以出于成本和时间考虑来推动在专用且永久配置的电路中或在临时配置(例如,通过软件配置)的电路中机械地实现硬件部件的决策。相应地,短语“硬件部件”(或者“硬件实现的部件”)应当被理解成包含有形实体,即为被物理构造、永久配置(例如,硬连线)或临时配置(例如,编程)成以某种方式操作或者执行本文中描述的某些操作的实体。考虑到硬件部件被临时配置(例如,被编程)的实现方式,无需在任一时刻对每一个硬件部件进行配置或实例化。例如,在硬件部件包括通过软件配置而成为专用处理器的通用处理器1104的情况下,通用处理器1104可以在不同时间处被配置成分别不同的专用处理器(例如,包括不同的硬件部件)。软件相应地配置特定处理器1112,1114或处理器1104以例如在一个时刻处构成特定硬件部件并且在不同的时刻处构成不同的硬件部件。
硬件部件可以向其他硬件部件提供信息以及从其他硬件部件接收信息。因此,描述的硬件部件可以被认为通信地耦接。在同时存在多个硬件部件的情况下,可以通过在两个或更多个硬件部件之间或之中(例如,通过适当的电路和总线)的信号传输来实现通信。在多个硬件部件在不同时间处被配置或实例化的实现方式中,可以例如通过将信息存储在多个硬件部件访问的存储器结构中并且在该存储器结构中检索信息来实现这样的硬件部件之间的通信。例如,一个硬件部件可以执行操作,并且将该操作的输出存储在通信上耦接的存储器设备中。然后,其他硬件部件可以在随后的时间处访问存储器设备以检索和处理存储的输出。
硬件部件还可以发起与输入设备或输出设备的通信,并且可以对资源进行操作(例如,信息的集合)。本文中描述的示例方法的各种操作可以至少部分地由被临时配置(例如,通过软件)或永久配置成执行相关操作的一个或更多个处理器1104来执行。无论是临时配置还是永久配置,这样的处理器1104可以构成进行操作以执行本文中描述的一个或更多个操作或功能的处理器实现的部件。如本文中所使用的,“处理器实现的部件”是指使用一个或更多个处理器1104实现的硬件部件。类似地,本文中描述的方法可以至少部分地由处理器实现,其中特定的处理器1112,1114或处理器1104是硬件的示例。例如,方法的操作中的至少一些操作可以由一个或更多个处理器1104或处理器实现的部件来执行。此外,一个或更多个处理器1104还可以操作成支持“云计算”环境中的相关操作的性能或者操作为“软件即服务”(SaaS)。例如,至少一些操作可以由一组计算机(作为包括处理器1104的机器1100的示例)执行,这些操作可经由网络114(例如,因特网)并且经由一个或更多个适当的接口(例如,API)访问。某些操作的执行可以分布在处理器之间,不仅驻留在单个机器内,而且跨多个机器被部署。在一些示例实现方式中,处理器1104或处理器实现的部件可以位于单个地理位置(例如,在家庭环境、办公室环境或服务器群内)。在其他示例实现方式中,处理器1104或处理器实现的部件可以跨多个地理位置分布。
该上下文中的“处理器”是指根据控制信号(例如,“命令”、“操作码”、“机器码”等)操纵数据值并且产生被用于操作机器1100的对应输出信号的任何电路或虚拟电路(通过在实际处理器1104上执行的逻辑模拟的物理电路)。例如,处理器1104可以是CPU、RISC处理器、CISC处理器、GPU、DSP、ASIC、RFIC或它们的任何组合。处理器还可以是具有两个或更多个可以同时执行指令1102的独立处理器1104(有时称为“核”)的多核处理器。
该上下文中的“时间戳”指代标识某个事件何时发生(例如,给出日期和一天中的时间)的一系列字符或编码信息,有时精确到几分之一秒。
在不脱离本公开内容的范围的情况下,可以对所公开的实现方式进行改变和修改。这些和其他改变或修改旨在被包括在本公开内容的范围内,并且在所附权利要求中被表达。
公开内容的示例方面
方面1.一种方法,包括:由一个或更多个计算设备生成与经由客户端应用显示的相机用户界面的初始版本的修改相关的框架;通过所述一个或更多个计算设备中的至少一个计算设备使与所述框架对应的相机用户界面开发者信息能够由第三方应用的开发者的附加计算设备访问;由所述一个或更多个计算设备中的至少一个计算设备从所述开发者的附加计算设备接收一个或更多个相机用户界面修改或第三方相机用户界面数据中的至少一者,所述一个或更多个相机用户界面修改指示对所述相机用户界面的初始版本的至少一个修改,以及所述第三方相机用户界面数据对应于经由所述相机用户界面的修改版本要显示的与所述第三方应用有关的信息;由所述一个或更多个计算设备中的至少一个计算设备从客户端设备接收从所述第三方应用访问所述客户端应用的请求指示;由所述一个或更多个计算设备中的至少一个计算设备基于所述一个或更多个相机用户界面修改或所述第三方相机用户界面数据中的至少一者确定生成所述相机用户界面的修改版本要对所述相机用户界面的初始版本进行的一个或更多个修改;以及由所述一个或更多个计算设备中的至少一个计算设备向所述客户端设备发送修改后的相机用户界面数据,所述修改后的相机用户界面数据对应于所述一个或更多个修改。
方面2.根据方面1所述的方法,包括:由所述一个或更多个计算设备中的至少一个计算设备将所述一个或更多个相机用户界面修改或所述第三方相机用户界面数据中的至少一者与所述第三方应用的标识符相关联地存储在一个或更多个数据库中;由所述一个或更多个计算设备中的至少一个计算设备确定所述第三方应用的标识符被包括在从所述第三方应用访问所述客户端应用的所述请求指示中;以及由所述一个或更多个计算设备中的至少一个计算设备基于所述标识符查询一个或更多个数据库,以检索所述一个或更多个相机用户界面修改或所述第三方相机用户界面数据中的至少一者。
方面3.根据方面2所述的方法,包括:由所述一个或更多个计算设备中的至少一个计算设备基于所述第三方相机用户界面数据确定与所述第三方应用对应的内容的统一资源指示符;以及由所述一个或更多个计算设备中的至少一个计算设备根据所述统一资源指示符检索所述内容;以及其中,所述修改后的相机用户界面数据包括所述内容。
方面4.根据方面1至3中任一项所述的方法,包括:由所述一个或更多个计算设备中的至少一个计算设备从所述第三方应用获得要包括在所述相机用户界面的修改版本中的内容;以及由所述一个或更多个计算设备中的至少一个计算设备将所述内容发送至所述客户端设备。
方面5.根据方面1至4中任一项所述的方法,包括:由所述一个或更多个计算设备中的至少一个计算设备接收从所述客户端应用的用户到一个或更多个接收者的消息,所述消息包括经由所述客户端设备的至少一个相机捕获的图像内容或视频内容中的至少一者以及在所述相机用户界面的修改版本中显示的与所述第三方应用有关的信息的至少一部分;以及由所述一个或更多个计算设备中的至少一个计算设备将所述消息发送至所述一个或更多个接收者的一个或更多个附加客户端设备。
方面6.根据方面1至5中任一项所述的方法,包括:由所述一个或更多个计算设备中的至少一个计算设备将内容添加到所述客户端应用的用户的内容集合中,其中,所述内容包括经由所述客户端设备的至少一个相机捕获的图像内容或视频内容中的至少一者以及在所述相机用户界面的修改版本中显示的与所述第三方应用有关的信息的至少一部分;以及由所述一个或更多个计算设备中的至少一个计算设备提供所述客户端应用的若干用户对所述内容的访问。
方面7.根据方面1至6中任一项所述的方法,其中,所述相机用户界面的初始版本包括多个用户界面元素,并且所述一个或更多个相机用户界面修改包括以下中的至少一者:向所述多个用户界面元素添加第一用户界面元素,或者从所述多个用户界面元素中删除第二用户界面元素。
方面8.根据方面7所述的方法,其中,所述相机用户界面开发者信息指示所述多个用户界面元素的至少一部分不能从所述相机用户界面的初始版本中删除。
方面9.根据方面1至8中任一项所述的方法,其中,所述一个或更多个相机用户界面修改指示与所述第三方应用有关的信息在所述在相机用户界面的修改版本内的一个或更多个位置。
方面10.根据方面1至9中任一项所述的方法,包括:由所述一个或更多个计算设备中的至少一个计算设备接收将增强现实内容项目应用于在所述相机用户界面的修改版本中显示的图像内容或视频内容中的至少一者的指示;以及通过所述一个或更多个计算设备中的至少一个计算设备使包括在所述图像内容或所述视频内容中的至少一者中的一个或更多个对象的外观基于将所述增强现实内容项目应用于所述图像内容或所述视频内容中的至少一者而被修改。
方面11.一种系统,包括:一个或更多个硬件处理器;以及包括计算机可读指令的一个或更多个非暂态计算机可读存储介质,所述计算机可读指令当由所述一个或更多个硬件处理器执行时使所述一个或更多个硬件处理器执行以下操作:由一个或更多个计算设备生成与经由客户端应用显示的相机用户界面的初始版本的修改相关的框架;通过所述一个或更多个计算设备中的至少一个计算设备使与所述框架对应的相机用户界面开发者信息能够由第三方应用的开发者的附加计算设备访问;由所述一个或更多个计算设备中的至少一个计算设备从所述开发者的附加计算设备接收一个或更多个相机用户界面修改或第三方相机用户界面数据中的至少一者,所述一个或更多个相机用户界面修改指示对所述相机用户界面的初始版本的至少一个修改,以及述第三方相机用户界面数据对应于经由所述相机用户界面的修改版本要显示的与所述第三方应用有关的信息;由所述一个或更多个计算设备中的至少一个计算设备从客户端设备接收从所述第三方应用访问所述客户端应用的请求指示;由所述一个或更多个计算设备中的至少一个计算设备基于所述一个或更多个相机用户界面修改或所述第三方相机用户界面数据中的至少一者确定生成所述相机用户界面的修改版本要对所述相机用户界面的初始版本进行的一个或更多个修改;以及由所述一个或更多个计算设备中的至少一个计算设备向所述客户端设备发送修改后的相机用户界面数据,所述修改后的相机用户界面数据对应于所述一个或更多个修改。
方面12.根据方面11所述的系统,其中,所述框架包括以下中的至少一者:软件开发者工具包、计算机可读指令、一个或更多个应用编程接口、或关于所述相机用户界面的初始版本的修改的一个或更多个规则。
方面13.根据方面11或12所述的系统,其中,所述一个或更多个非暂态计算机可读存储介质包括在被所述一个或更多个硬件处理器执行时使所述一个或更多个硬件处理器执行以下附加操作的附加计算机可读指令,所述附加操作包括:生成与一个或更多个用户界面相对应的用户界面数据,所述一个或更多个用户界面捕获以下中的至少一者:用于修改所述相机用户界面的初始版本中包括的一个或更多个用户界面元素的第一输入,或者用于将内容添加到所述相机用户界面的初始版本的第二输入;以及将所述用户界面数据发送到所述开发者的附加计算设备。
方面14.根据方面13所述的系统,其中,所述一个或更多个非暂态计算机可读存储介质包括在被所述一个或更多个硬件处理器执行时使所述一个或更多个硬件处理器执行以下附加操作的附加计算机可读指令,所述附加操作包括:从所述开发者的附加计算设备接收数据,所述数据是由所述一个或更多个用户界面捕获的,并且指示关于所述相机用户界面的修改版本进行的一个或更多个修改,所述一个或更多个修改包括以下中的至少一者:要添加到所述相机用户界面的初始版本的一个或更多个第一用户界面元素、要从所述相机用户界面的初始版本删除的一个或更多个第二用户界面元素、或要经由所述相机用户界面的修改版本显示的与所述第三方应用有关的信息中的至少一者;以及基于一个或更多个修改生成所述修改后的相机用户界面数据。
方面15.一种方法,包括:由一个或更多个计算设备生成第三方应用的用户界面,所述用户界面包括能够被选择以启动客户端应用的实例的执行的用户界面元素;由所述一个或更多个计算设备中的至少一个计算设备接收指示对所述用户界面元素的选择的输入;由所述一个或更多个计算设备中的至少一个计算设备获得修改后的相机用户界面数据,所述修改后的相机用户界面数据指示对所述客户端应用的相机用户界面的初始版本的一个或更多个修改;由所述一个或更多个计算设备中的至少一个计算设备基于所述一个或更多个修改生成所述相机用户界面的修改版本;以及由所述一个或更多个计算设备中的至少一个计算设备显示所述相机用户界面的修改版本,所述相机用户界面的修改版本包括由执行所述客户端应用的实例的客户端设备的相机捕获的图像内容或视频内容中的至少一者以及与所述第三方应用有关的信息。
方面16.根据方面15所述的方法,包括:由所述一个或更多个计算设备中的至少一个计算设备响应于对所述用户界面元素的选择确定统一资源指示符,所述统一资源指示符对应于所述客户端应用的相机用户界面;以及由所述一个或更多个计算设备中的至少一个计算设备基于所述统一资源指示符导航到所述相机用户界面的修改版本。
方面17.根据方面15或16所述的方法,包括:由所述一个或更多个计算设备中的至少一个计算设备接收用于从所述相机用户界面的修改版本删除与所述第三方应用有关的信息的至少一部分的用户输入;以及由所述一个或更多个计算设备中的至少一个计算设备生成包括由所述客户端设备的相机捕获的图像内容或视频内容中的至少一者并且不包括与所述第三方应用有关的信息中的至少一部分的内容。
方面18.根据方面15至17中任一项所述的方法,包括:由所述一个或更多个计算设备中的至少一个计算设备确定在所述用户界面元素被选择时第三方内容经历以下中的至少一者:被所述第三方应用显示,或者被所述第三方应用访问;以及其中,在所述相机用户界面的修改版本中显示的与所述第三方应用有关的信息对应于所述第三方内容。
方面19.根据方面15至18中任一项所述的方法,包括:由所述一个或更多个计算设备中的至少一个计算设备生成用户内容,所述用户内容包括由所述客户端设备的相机捕获的所述图像内容或所述视频内容中的至少一者以及与所述第三方应用有关的所述信息中的至少一部分;由所述一个或更多个计算设备中的至少一个计算设备接收用户输入,所述用户输入指示对一个或更多个创意工具的选择并且指示产生修改后的用户内容要对所述图像内容或所述视频内容中的至少一者进行的一个或更多个修改;以及通过所述一个或更多个计算设备中的至少一个计算设备使所述客户端应用的一个或更多个用户能够访问所述修改后的用户内容。
方面20.根据方面15至19中任一项所述的方法,包括:由所述一个或更多个计算设备中的至少一个计算设备确定要应用于由所述客户端设备的相机捕获的所述图像内容或所述视频内容中的至少一者的增强现实内容项目;由所述一个或更多个计算设备中的至少一个计算设备通过将所述增强现实内容项目应用于所述图像内容或所述视频内容中的至少一者中包括的一个或更多个对象来修改所述一个或更多个对象的外观,以产生修改后的用户内容;以及通过所述一个或更多个计算设备中的至少一个计算设备使所述客户端应用的一个或更多个用户能够访问所述修改后的用户内容。
Claims (20)
1.一种方法,包括:
由一个或更多个计算设备生成与经由客户端应用显示的相机用户界面的初始版本的修改相关的框架;
通过所述一个或更多个计算设备中的至少一个计算设备使与所述框架对应的相机用户界面开发者信息能够由第三方应用的开发者的附加计算设备访问;
由所述一个或更多个计算设备中的至少一个计算设备从所述开发者的附加计算设备接收一个或更多个相机用户界面修改或第三方相机用户界面数据中的至少一者,所述一个或更多个相机用户界面修改指示对所述相机用户界面的初始版本的至少一个修改,以及所述第三方相机用户界面数据对应于经由所述相机用户界面的修改版本要显示的与所述第三方应用有关的信息;
由所述一个或更多个计算设备中的至少一个计算设备从客户端设备接收从所述第三方应用访问所述客户端应用的请求指示;
由所述一个或更多个计算设备中的至少一个计算设备基于所述一个或更多个相机用户界面修改或所述第三方相机用户界面数据中的至少一者确定生成所述相机用户界面的修改版本要对所述相机用户界面的初始版本进行的一个或更多个修改;以及
由所述一个或更多个计算设备中的至少一个计算设备向所述客户端设备发送修改后的相机用户界面数据,所述修改后的相机用户界面数据对应于所述一个或更多个修改。
2.根据权利要求1所述的方法,包括:
由所述一个或更多个计算设备中的至少一个计算设备将所述一个或更多个相机用户界面修改或所述第三方相机用户界面数据中的至少一者与所述第三方应用的标识符相关联地存储在一个或更多个数据库中;
由所述一个或更多个计算设备中的至少一个计算设备确定所述第三方应用的标识符被包括在从所述第三方应用访问所述客户端应用的所述请求指示中;以及
由所述一个或更多个计算设备中的至少一个计算设备基于所述标识符查询一个或更多个数据库,以检索所述一个或更多个相机用户界面修改或所述第三方相机用户界面数据中的至少一者。
3.根据权利要求2所述的方法,包括:
由所述一个或更多个计算设备中的至少一个计算设备基于所述第三方相机用户界面数据确定与所述第三方应用对应的内容的统一资源指示符;以及
由所述一个或更多个计算设备中的至少一个计算设备根据所述统一资源指示符检索所述内容;以及
其中,所述修改后的相机用户界面数据包括所述内容。
4.根据权利要求1所述的方法,包括:
由所述一个或更多个计算设备中的至少一个计算设备从所述第三方应用获得要包括在所述相机用户界面的修改版本中的内容;以及
由所述一个或更多个计算设备中的至少一个计算设备将所述内容发送至所述客户端设备。
5.根据权利要求1所述的方法,包括:
由所述一个或更多个计算设备中的至少一个计算设备接收从所述客户端应用的用户到一个或更多个接收者的消息,所述消息包括经由所述客户端设备的至少一个相机捕获的图像内容或视频内容中的至少一者以及在所述相机用户界面的修改版本中显示的与所述第三方应用有关的信息的至少一部分;以及
由所述一个或更多个计算设备中的至少一个计算设备将所述消息发送至所述一个或更多个接收者的一个或更多个附加客户端设备。
6.根据权利要求1所述的方法,包括:
由所述一个或更多个计算设备中的至少一个计算设备将内容添加到所述客户端应用的用户的内容集合中,其中,所述内容包括经由所述客户端设备的至少一个相机捕获的图像内容或视频内容中的至少一者以及在所述相机用户界面的修改版本中显示的与所述第三方应用有关的信息的至少一部分;以及
由所述一个或更多个计算设备中的至少一个计算设备提供所述客户端应用的若干用户对所述内容的访问。
7.根据权利要求1所述的方法,其中,所述相机用户界面的初始版本包括多个用户界面元素,并且所述一个或更多个相机用户界面修改包括以下中的至少一者:向所述多个用户界面元素添加第一用户界面元素,或者从所述多个用户界面元素中删除第二用户界面元素。
8.根据权利要求7所述的方法,其中,所述相机用户界面开发者信息指示所述多个用户界面元素的至少一部分不能从所述相机用户界面的初始版本中删除。
9.根据权利要求1所述的方法,其中,所述一个或更多个相机用户界面修改指示与所述第三方应用有关的信息在所述相机用户界面的修改版本内的一个或更多个位置。
10.根据权利要求1所述的方法,包括:
由所述一个或更多个计算设备中的至少一个计算设备接收将增强现实内容项目应用于所述相机用户界面的修改版本中显示的图像内容或视频内容中的至少一者的指示;以及
通过所述一个或更多个计算设备中的至少一个计算设备使包括在所述图像内容或所述视频内容中的至少一者中的一个或更多个对象的外观基于将所述增强现实内容项目应用于所述图像内容或所述视频内容中的至少一者而被修改。
11.一种系统,包括:
一个或更多个硬件处理器;以及
包括计算机可读指令的一个或更多个非暂态计算机可读存储介质,所述计算机可读指令当由所述一个或更多个硬件处理器执行时使所述一个或更多个硬件处理器执行以下操作:
由一个或更多个计算设备生成与经由客户端应用显示的相机用户界面的初始版本的修改相关的框架;
通过所述一个或更多个计算设备中的至少一个计算设备使与所述框架对应的相机用户界面开发者信息能够由第三方应用的开发者的附加计算设备访问;
由所述一个或更多个计算设备中的至少一个计算设备从所述开发者的附加计算设备接收一个或更多个相机用户界面修改或第三方相机用户界面数据中的至少一者,所述一个或更多个相机用户界面修改指示对所述相机用户界面的初始版本的至少一个修改,以及所述第三方相机用户界面数据对应于经由所述相机用户界面的修改版本要显示的与所述第三方应用有关的信息;
由所述一个或更多个计算设备中的至少一个计算设备从客户端设备接收从所述第三方应用访问所述客户端应用的请求指示;
由所述一个或更多个计算设备中的至少一个计算设备基于所述一个或更多个相机用户界面修改或所述第三方相机用户界面数据中的至少一者确定生成所述相机用户界面的修改版本要对所述相机用户界面的初始版本进行的一个或更多个修改;以及
由所述一个或更多个计算设备中的至少一个计算设备向所述客户端设备发送修改后的相机用户界面数据,所述修改后的相机用户界面数据对应于所述一个或更多个修改。
12.根据权利要求11所述的系统,其中,所述框架包括以下中的至少一者:软件开发者工具包、计算机可读指令、一个或更多个应用编程接口、或关于所述相机用户界面的初始版本的修改的一个或更多个规则。
13.根据权利要求11所述的系统,其中,所述一个或更多个非暂态计算机可读存储介质包括在被所述一个或更多个硬件处理器执行时使所述一个或更多个硬件处理器执行以下附加操作的附加计算机可读指令,所述附加操作包括:
生成与一个或更多个用户界面相对应的用户界面数据,所述一个或更多个用户界面捕获以下中的至少一者:用于修改所述相机用户界面的初始版本中包括的一个或更多个用户界面元素的第一输入,或者用于将内容添加到所述相机用户界面的初始版本的第二输入;以及
将所述用户界面数据发送到所述开发者的附加计算设备。
14.根据权利要求13所述的系统,其中,所述一个或更多个非暂态计算机可读存储介质包括在被所述一个或更多个硬件处理器执行时使所述一个或更多个硬件处理器执行以下附加操作的附加计算机可读指令,所述附加操作包括:
从所述开发者的附加计算设备接收数据,所述数据是由所述一个或更多个用户界面捕获的,并且指示关于所述相机用户界面的修改版本进行的一个或更多个修改,所述一个或更多个修改包括以下中的至少一者:要添加到所述相机用户界面的初始版本的一个或更多个第一用户界面元素、要从所述相机用户界面的初始版本删除的一个或更多个第二用户界面元素、或要经由所述相机用户界面的修改版本显示的与所述第三方应用有关的信息;以及
基于一个或更多个修改生成所述修改后的相机用户界面数据。
15.一种方法,包括:
由一个或更多个计算设备生成第三方应用的用户界面,所述用户界面包括能够被选择以启动客户端应用的实例的执行的用户界面元素;
由所述一个或更多个计算设备中的至少一个计算设备接收指示对所述用户界面元素的选择的输入;
由所述一个或更多个计算设备中的至少一个计算设备获得修改后的相机用户界面数据,所述修改后的相机用户界面数据指示对所述客户端应用的相机用户界面的初始版本的一个或更多个修改;
由所述一个或更多个计算设备中的至少一个计算设备基于所述一个或更多个修改生成所述相机用户界面的修改版本;以及
由所述一个或更多个计算设备中的至少一个计算设备显示所述相机用户界面的修改版本,所述相机用户界面的修改版本包括由执行所述客户端应用的实例的客户端设备的相机捕获的图像内容或视频内容中的至少一者以及与所述第三方应用有关的信息。
16.根据权利要求15所述的方法,包括:
由所述一个或更多个计算设备中的至少一个计算设备响应于对所述用户界面元素的选择确定统一资源指示符,所述统一资源指示符对应于所述客户端应用的相机用户界面;以及
由所述一个或更多个计算设备中的至少一个计算设备基于所述统一资源指示符导航到所述相机用户界面的修改版本。
17.根据权利要求15所述的方法,包括:
由所述一个或更多个计算设备中的至少一个计算设备接收用于从所述相机用户界面的修改版本删除与所述第三方应用有关的信息的至少一部分的用户输入;以及
由所述一个或更多个计算设备中的至少一个计算设备生成包括由所述客户端设备的相机捕获的图像内容或视频内容中的至少一者并且不包括与所述第三方应用有关的信息中的至少一部分的内容。
18.根据权利要求15所述的方法,包括:
由所述一个或更多个计算设备中的至少一个计算设备确定在所述用户界面元素被选择时第三方内容经历以下中的至少一者:被所述第三方应用显示,或者被所述第三方应用访问;以及
其中,在所述相机用户界面的修改版本中显示的与所述第三方应用有关的信息对应于所述第三方内容。
19.根据权利要求15所述的方法,包括:
由所述一个或更多个计算设备中的至少一个计算设备生成用户内容,所述用户内容包括由所述客户端设备的相机捕获的所述图像内容或所述视频内容中的至少一者以及与所述第三方应用有关的信息中的至少一部分;
由所述一个或更多个计算设备中的至少一个计算设备接收用户输入,所述用户输入指示对一个或更多个创意工具的选择并且指示产生修改后的用户内容要对所述图像内容或所述视频内容中的至少一者进行的一个或更多个修改;以及
通过所述一个或更多个计算设备中的至少一个计算设备使所述客户端应用的一个或更多个用户能够访问所述修改后的用户内容。
20.根据权利要求15所述的方法,包括:
由所述一个或更多个计算设备中的至少一个计算设备确定要应用于由所述客户端设备的相机捕获的所述图像内容或所述视频内容中的至少一者的增强现实内容项目;
由所述一个或更多个计算设备中的至少一个计算设备通过将所述增强现实内容项目应用于所述图像内容或所述视频内容中的至少一者中包括的一个或更多个对象来修改所述一个或更多个对象的外观,以产生修改后的用户内容;以及
通过所述一个或更多个计算设备中的至少一个计算设备使所述客户端应用的一个或更多个用户能够访问所述修改后的用户内容。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202063046243P | 2020-06-30 | 2020-06-30 | |
US63/046,243 | 2020-06-30 | ||
US17/354,995 | 2021-06-22 | ||
US17/354,995 US12058434B2 (en) | 2020-06-30 | 2021-06-22 | Third-party modifications for a camera user interface |
PCT/US2021/039963 WO2022006318A1 (en) | 2020-06-30 | 2021-06-30 | Third-party modifications for a camera user interface |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115769561A true CN115769561A (zh) | 2023-03-07 |
Family
ID=77448006
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180046360.3A Pending CN115769561A (zh) | 2020-06-30 | 2021-06-30 | 用于相机用户界面的第三方修改 |
Country Status (5)
Country | Link |
---|---|
US (2) | US12058434B2 (zh) |
EP (1) | EP4173258A1 (zh) |
KR (1) | KR20230031915A (zh) |
CN (1) | CN115769561A (zh) |
WO (1) | WO2022006318A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US12058434B2 (en) | 2020-06-30 | 2024-08-06 | Snap Inc. | Third-party modifications for a camera user interface |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11758264B2 (en) * | 2020-06-30 | 2023-09-12 | Snap Inc. | Camera user interface to generate content for third-party applications |
US11360733B2 (en) | 2020-09-10 | 2022-06-14 | Snap Inc. | Colocated shared augmented reality without shared backend |
US11949527B2 (en) | 2022-04-25 | 2024-04-02 | Snap Inc. | Shared augmented reality experience in video chat |
US12020384B2 (en) * | 2022-06-21 | 2024-06-25 | Snap Inc. | Integrating augmented reality experiences with other components |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100026710A1 (en) * | 2008-07-29 | 2010-02-04 | Ati Technologies Ulc | Integration of External Input Into an Application |
CN103748530A (zh) | 2012-08-17 | 2014-04-23 | 弗莱克斯电子有限责任公司 | 媒体中心 |
US10182187B2 (en) | 2014-06-16 | 2019-01-15 | Playvuu, Inc. | Composing real-time processed video content with a mobile device |
US9191492B1 (en) * | 2014-12-30 | 2015-11-17 | Liveperson, Inc. | Methods and systems for deflecting communications |
US10218665B2 (en) | 2015-07-30 | 2019-02-26 | Pixured, Inc. | System relating to 3D, 360 degree or spherical for refering to and/or embedding posts, videos or digital media within other posts, videos, digital data or digital media and posts within anypart of another posts, videos, digital data or digital media |
KR20170053435A (ko) | 2015-11-06 | 2017-05-16 | 삼성전자주식회사 | 전자 장치 및 전자 장치에서의 이미지 편집 방법 |
US10079972B2 (en) * | 2016-03-10 | 2018-09-18 | Mediatek Inc. | Method for controlling graphical user interface of camera application |
US10423298B2 (en) * | 2016-09-29 | 2019-09-24 | Square, Inc. | Dynamically modifiable user interface |
US20180300916A1 (en) * | 2017-04-14 | 2018-10-18 | Facebook, Inc. | Prompting creation of a networking system communication with augmented reality elements in a camera viewfinder display |
US20190082122A1 (en) * | 2017-09-08 | 2019-03-14 | Samsung Electronics Co., Ltd. | Method and device for providing contextual information |
US10943311B1 (en) * | 2017-09-29 | 2021-03-09 | Square, Inc. | Order fulfillment and tracking systems and methods |
WO2019241772A1 (en) * | 2018-06-15 | 2019-12-19 | Google Llc | Smart-home device placement and installation using augmented-reality visualizations |
US11770601B2 (en) * | 2019-05-06 | 2023-09-26 | Apple Inc. | User interfaces for capturing and managing visual media |
US11218646B2 (en) * | 2018-10-29 | 2022-01-04 | Henry M. Pena | Real time video special effects system and method |
WO2020172580A1 (en) * | 2019-02-22 | 2020-08-27 | Starkey Laboratories, Inc. | Sharing of health-related data based on data exported by ear-wearable device |
US11169675B1 (en) * | 2019-06-28 | 2021-11-09 | Snap Inc. | Creator profile user interface |
US11561587B2 (en) * | 2019-10-01 | 2023-01-24 | Microsoft Technology Licensing, Llc | Camera and flashlight operation in hinged device |
US11657575B2 (en) * | 2020-05-28 | 2023-05-23 | Snap Inc. | Generating augmented reality content based on third-party content |
US12058434B2 (en) * | 2020-06-30 | 2024-08-06 | Snap Inc. | Third-party modifications for a camera user interface |
-
2021
- 2021-06-22 US US17/354,995 patent/US12058434B2/en active Active
- 2021-06-30 EP EP21758826.8A patent/EP4173258A1/en active Pending
- 2021-06-30 CN CN202180046360.3A patent/CN115769561A/zh active Pending
- 2021-06-30 WO PCT/US2021/039963 patent/WO2022006318A1/en unknown
- 2021-06-30 KR KR1020237003411A patent/KR20230031915A/ko unknown
-
2024
- 2024-06-12 US US18/741,429 patent/US20240334040A1/en active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US12058434B2 (en) | 2020-06-30 | 2024-08-06 | Snap Inc. | Third-party modifications for a camera user interface |
Also Published As
Publication number | Publication date |
---|---|
US20210409610A1 (en) | 2021-12-30 |
WO2022006318A1 (en) | 2022-01-06 |
KR20230031915A (ko) | 2023-03-07 |
EP4173258A1 (en) | 2023-05-03 |
US12058434B2 (en) | 2024-08-06 |
US20240334040A1 (en) | 2024-10-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11910269B2 (en) | Augmented reality content items including user avatar to share location | |
US12058434B2 (en) | Third-party modifications for a camera user interface | |
US12015671B2 (en) | Analyzing augmented reality content usage data | |
US11706167B2 (en) | Generating and accessing video content for products | |
US11758264B2 (en) | Camera user interface to generate content for third-party applications | |
CN115462089A (zh) | 在消息收发应用中显示增强现实内容 | |
US12088678B2 (en) | Tracking usage of augmented reality content across multiple users | |
US11625743B2 (en) | Augmented reality content items to track user activity and redeem promotions | |
US12111746B2 (en) | Accessing third party resources via client application with messaging capability | |
US20220101416A1 (en) | Templates to generate augmented reality content items that display product information | |
US11924153B2 (en) | Messaging user interface element with reminders | |
US12033118B1 (en) | Calendar with group messaging capabilities | |
US12120074B2 (en) | Generating and accessing video content for products |
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 |