CN110785982B - 用于使第三方能够将效果添加到应用的方法、介质和系统 - Google Patents

用于使第三方能够将效果添加到应用的方法、介质和系统 Download PDF

Info

Publication number
CN110785982B
CN110785982B CN201780092210.XA CN201780092210A CN110785982B CN 110785982 B CN110785982 B CN 110785982B CN 201780092210 A CN201780092210 A CN 201780092210A CN 110785982 B CN110785982 B CN 110785982B
Authority
CN
China
Prior art keywords
application
gui
script
effects
party
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.)
Active
Application number
CN201780092210.XA
Other languages
English (en)
Other versions
CN110785982A (zh
Inventor
斯黛夫·马克·斯梅特
迈克尔·斯莱特
迈克尔·菲利浦·阿库里
约书亚·瑞恩·威廉姆斯
卡尔奇克·沙布拉曼亚姆
尹波
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.)
Meta Platforms Inc
Original Assignee
Meta Platforms 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 US15/488,238 external-priority patent/US10698744B2/en
Application filed by Meta Platforms Inc filed Critical Meta Platforms Inc
Publication of CN110785982A publication Critical patent/CN110785982A/zh
Application granted granted Critical
Publication of CN110785982B publication Critical patent/CN110785982B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/02Editing, e.g. varying the order of information signals recorded on, or reproduced from, record carriers
    • G11B27/031Electronic editing of digitised analogue information signals, e.g. audio or video signals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/541Interprogram communication via adapters, e.g. between incompatible applications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction 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/04842Selection of displayed objects or displayed text elements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • G06F9/44526Plug-ins; Add-ons
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Systems or methods specially adapted for specific business sectors, e.g. utilities or tourism
    • G06Q50/01Social networking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/63Control of cameras or camera modules by using electronic viewfinders

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Multimedia (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

本申请公开了一种用于使第三方能够将效果添加到应用的方法、介质和系统。第三方可以创建或创作脚本,该脚本对待被添加到应用的功能进行编码。脚本然后可以被提供到应用并由该目标应用执行,其中脚本的执行使功能被添加到目标应用。在某些实施例中,所添加的功能可以是当脚本由目标应用执行时经由目标应用输出的效果的形式。效果可以包括由目标应用显示或输出的视听效果,且还可以包括由第三方提供的显示数据。

Description

用于使第三方能够将效果添加到应用的方法、介质和系统
优先权申请的交叉引用
本申请要求于2017年4月14日提交的第15/488,238号美国申请的优先权,该美国申请通过引用以其整体并入本文。
技术领域
本申请涉及使第三方能够将效果添加到应用的技术。
背景技术
今天,社交媒体应用允许用户创建、编辑内容,并与其他用户共享内容。例如,社交媒体应用可以允许第三方用户或第三方应用将内容公布到社交媒体应用。然而,社交媒体应用通常将在社交媒体应用上公布的内容的格式限制为由与社交媒体应用相关联的方(例如社交媒体应用的程序员)创建的格式。此外,第三方没有能力来添加或增强社交媒体应用的功能。这些限制也存在于其他应用(例如各种视听(audio-visual)应用)中。
发明内容
本公开描述了使与应用无关的第三方能够向应用添加由第三方创作的功能的技术。在某些实施例中,第三方可以创建或创作对待被添加到应用的功能进行编码的脚本。脚本然后可以被提供到应用并由应用执行,其中脚本的执行使功能被添加到应用。
在某些实施例中,所添加的功能可以是当相应脚本由应用执行时由应用输出的一个或更多个效果的形式。一个或更多个效果可以包括由一个或更多个效果被添加到的应用所显示的视听效果。在一些实施例中,一个或更多个效果还可以包括由第三方在一个或更多个效果被添加到的应用中提供的数据的显示。在这样的实施例中,由第三方应用提供的脚本可以识别待被显示的数据。
在一个说明性示例中,第三方将一个或更多个效果添加到的应用(即,目标应用)可以是摄像机应用,其被配置为输出由在用户设备上的一个或更多个视听捕获设备(例如,摄像机、麦克风等)捕获的视听信息(例如,图像、视频信息、音频信息等)。在这样的示例中,由第三方创作的脚本可以对摄像机应用变得可用。
当由摄像机应用执行时,对应于脚本的一个或更多个效果可以通过摄像机应用(例如经由摄像机应用的用户界面)来被输出。例如,在一个实施例中,一个或更多个效果可以与由摄像机应用捕获并输出的媒体内容(例如,图像、视频、视听流等)混合。在这样的示例中,一个或更多个效果和媒体内容可以由摄像机应用一起输出。目标应用的媒体内容通过一个或更多个效果(有时被称为媒体效果)而被增强。在某些实施例中,摄像机应用可以是社交媒体应用(例如FacebookTM应用)的一部分。
在某些实施例中,根据示例工作流,可以在用户的设备(例如用户的移动设备)上执行第三方应用。第三方应用可以提供用户界面(例如,图形用户界面(GUI)),该用户界面使用户能够选择由第三方应用提供的特有共享按钮。对特有共享按钮的选择可以使消息从第三方应用传递到目标应用(例如,摄像机应用)。摄像机应用然后可以基于接收到的消息来确定与第三方应用相关联的脚本。脚本可以由与该第三方应用相同的第三方或由某个其他第三方来创作。在一些示例中,当针对作者身份提到第三方时,本公开涉及除了与摄像机应用相关联的方之外的方。
在某些实施例中,由摄像机应用接收的消息可以包括脚本。在一些其他实施例中,由摄像机应用接收的消息可以包括由摄像机应用使用来获得脚本的信息。脚本然后可以由摄像机应用执行,使对应于脚本的一个或更多个效果由摄像机应用输出。在一些实施例中,可以在摄像机应用内的沙箱容器(sandbox container)内执行脚本,使得脚本与社交媒体应用的任何信息隔离并且不能访问社交媒体应用的任何信息。
从使用第三方应用的用户的角度来看,当选择了特有共享按钮时,在用户的设备上的显示从第三方应用的用户界面切换到摄像机应用的用户界面。摄像机应用的用户界面然后可以显示对应于所执行的脚本的一个或更多个效果。然后,用户可以与摄像机应用进行交互以关于与媒体效果混合的媒体内容执行一个或更多个动作,例如取消、共享、保存、和与媒体效果混合的媒体内容进行交互等。摄像机应用还可以提供退出按钮,该退出按钮当被用户选择时使摄像机应用关闭并且第三方应用的用户界面被重新显示在用户的设备上。
在某些实施例中,一个或更多个效果可以包括视听效果,没有限制地例如:音频声音(例如,生日快乐音乐、气球爆音、人群欢呼等)和视觉效果(例如,装饰彩纸条(streamer)、漂浮的气球、叠加在人的头上的生日帽子等)。一个或更多个效果还可以包括由第三方提供的数据(例如游戏分数、由跑步者跑的英里数等)的显示。在一些实施例中,响应于由用户对在第三方应用中的特有共享按钮的选择,可以将待被显示的数据从第三方应用发送到摄像机应用。在一些其他实施例中,对一个或更多个效果进行编码的脚本可以包含数据或者可以包含对于数据的指针或引用。当脚本由目标应用执行时,这些指针或引用然后可以由目标应用使用来下载相应的数据,且数据然后可以由目标应用显示,作为输出一个或更多个效果的一部分。
在某些实施例中,可能由多个第三方提供的多个脚本可以是可用的,以用于由目标应用执行。例如,当目标应用从第三方应用接收到消息(例如,当第三方应用的用户选择由第三方应用提供的特有共享按钮时所传递的消息)时,目标应用可以响应于接收到该消息而识别可供执行的来自一个或更多个第三方的多个脚本。在这种情形中,目标应用可以为每个可用脚本提供用户可选表示,其中表示可以是缩略图、图标、按钮等的形式。用户然后可以选择特定的表示(以及作为结果,一个或更多个效果的特定集合),对应于所选择的表示的特定脚本然后由目标应用执行,并且由该特定脚本的执行产生的一个或更多个效果由执行该目标应用的用户设备输出。
在本公开中描述的技术使第三方能够将功能添加到目标应用。功能被添加而不必更改目标应用代码或重新编译目标应用。在某些实施例中,可以通过由第三方提供的第三方应用来调用目标应用。在调用时,例如通过由第三方应用提供的共享按钮调用时,目标应用的用户界面被显示,并且由第三方创作的脚本由目标应用执行,使对应于所执行的脚本的一个或更多个效果经由目标应用的用户界面被输出。然后,用户可以与目标应用进行交互。目标应用的用户界面可以提供用户可选选项,其当被用户选择时使目标应用关闭并且显示返回到第三方应用。结合下面的文本和附图更详细地描述了本公开的这些和其他示例连同其许多优点和特征。
在本公开中使用的术语和措辞被用作描述而不是限制的术语,并且在这样的术语和措辞的使用中没有排除所示出并描述的特征的任何等同物或其部分的意图。然而应当认识到,在所要求保护的系统和方法的范围内的各种修改是可能的。因此应当理解,尽管已经具体公开了某些概念和技术,但这些概念和技术的修改和变化可以由本领域中的技术人员采用,并且这样的修改和变化被认为在如由本公开所限定的系统和方法的范围内。
本概述并不意欲识别所要求保护的主题的关键或必要特征,也不意欲被孤立地使用来确定所要求保护的主题的范围。应当通过参考本专利的整个说明书的适当部分、任何或所有附图以及每个权利要求来理解主题。
前述内容连同其他特征和示例一起将在下面的说明书、权利要求和附图中被更详细地描述。
在涉及方法、存储介质、系统和计算机程序产品的所附权利要求中公开了实施例,其中,在一个权利要求类别(例如方法)中提到的任何特征也可以在另一个权利要求类别(例如系统)中被要求保护。在所附权利要求中的从属性或往回引用仅为了形式原因而被选择。然而,也可以要求保护由对任何前面权利要求的有意往回引用(特别是多项引用)而产生的任何主题,使得权利要求及其特征的任何组合被公开并可被要求保护,而不考虑在所附权利要求中选择的从属性。可以被要求保护的主题不仅包括如在所附权利要求中阐述的特征的组合,而且还包括在权利要求中的特征的任何其他组合,其中,在权利要求中提到的每个特征可以与在权利要求中的任何其他特征或其他特征的组合相结合。此外,本文描述或描绘的实施例和特征中的任一个可以在单独的权利要求中和/或以与本文描述或描绘的任何实施例或特征的任何组合或以与所附权利要求的任何特征的任何组合被要求保护。
在实施例中,方法包括:由在设备上执行的第一应用从在设备上执行的第二应用接收通信;由设备显示第一应用的第一图形用户界面(GUI),其中第一GUI包括由设备的一个或更多个视频信息捕获设备捕获的视频流,基于该通信来识别脚本;以及由第一应用执行脚本,该执行使一个或更多个效果与视频流一起被输出。
该脚本可以由第二应用的提供者创作。
第二应用的提供者可以不同于第一应用的提供者。
使一个或更多个效果被输出可以包括:经由第一GUI输出视觉效果,经由设备输出音频效果,或者经由第一GUI显示与第二应用相关联的数据。
识别脚本可以包括:将被包括在由第一应用接收的通信中的信息的一部分从第一应用传递到远离设备的服务器系统;由服务器系统基于信息的该部分来识别脚本;以及将所识别的脚本从服务器系统传递到设备用于由第一应用使用。
通信可以包括识别第二应用的信息、识别第二应用的提供者的信息、识别脚本的信息或脚本。
使一个或更多个效果被输出可以包括经由第一GUI输出与第二应用相关联的数据。
与第二应用相关联的数据可以被包括在由第一应用从第二应用接收的通信中。
与第二应用相关联的数据可以由第一应用从远离设备的存储位置进行访问;以及脚本可以识别存储位置。
在实施例中,方法可以包括:由设备显示第二应用的第二图形用户界面(GUI),第二GUI提供用于发起从第二应用到第一应用的通信的用户可选选项;响应于对在第二GUI上的用户可选选项的选择,将通信从第二应用发送到第一应用;并且其中显示第一GUI包括将由设备显示的GUI从第二GUI切换到第一GUI。
在实施例中,方法可以包括:由设备从第一应用接收信号以退出第一应用;以及响应于该信号,将由设备显示的GUI从第一GUI改变为第二GUI。
在实施例中,方法可以包括:从第二应用切换到第一应用。
在实施例中,非暂时性计算机可读存储介质可以存储由一个或更多个处理器可执行的多个指令,多个指令当由一个或更多个处理器执行时可以使一个或更多个处理器:由在设备上执行的第一应用从在设备上执行的第二应用接收通信;由设备显示第一应用的第一图形用户界面(GUI),其中第一GUI包括由设备的一个或更多个视频信息捕获设备捕获的视频流,基于该通信来识别脚本;以及由第一应用执行脚本,该执行使一个或更多个效果与视频流一起被输出。
该脚本可以由第二应用的提供者创作。
第二应用的提供者可以不同于第一应用的提供者。
识别脚本可以包括:将被包括在由第一应用接收的通信中的信息的一部分从第一应用传递到远离设备的服务器系统;由服务器系统基于信息的该部分来识别脚本;以及将所识别的脚本从服务器系统传递到设备用于由第一应用使用。
与第二应用相关联的数据可以被包括在由第一应用从第二应用接收的通信中。
与第二应用相关联的数据可以由第一应用从远离设备的存储位置进行访问;以及脚本可以识别存储位置。
多个指令当由一个或更多个处理器执行时可以使一个或更多个处理器:由设备显示第二应用的第二图形用户界面(GUI),第二GUI提供用于发起从第二应用到第一应用的通信的用户可选选项;响应于对在第二GUI上的用户可选选项的选择,将通信从第二应用发送到第一应用;并且其中显示第一GUI包括将由设备显示的GUI从第二GUI切换到第一GUI。
多个指令当由一个或更多个处理器执行时可以使一个或更多个处理器:由设备从第一应用接收信号以退出第一应用;以及响应于该信号,将由设备显示的GUI从第一GUI改变为第二GUI。
在实施例中,系统可以包括:一个或更多个处理器;以及包括指令的非暂时性计算机可读介质,这些指令当由一个或更多个处理器执行时使一个或更多个处理器执行操作,这些操作包括:由在系统上执行的第一应用从在系统上执行的第二应用接收通信;基于该通信来识别多个脚本;显示第一应用的第一图形用户界面(GUI),其中第一GUI包括由系统的一个或更多个视频信息捕获设备捕获的视频流,并且其中第一GUI还包括多个可选表示,与多个脚本中的不同脚本相关联的每个可选表示接收对多个可选表示中的可选表示的选择;识别与可选表示相关联的脚本;以及由第一应用执行所识别的脚本,该执行使一个或更多个效果与视频流一起被输出。
非暂时性计算机可读介质还可以包括指令,指令当由一个或更多个处理器执行时使一个或更多个处理器执行操作,这些操作包括:接收对多个可选表示中的不同可选表示的选择;识别与不同可选表示相关联的不同脚本;以及由第一应用执行不同脚本,该执行使一个或更多个效果与视频流一起被输出。
在实施例中,一个或更多个计算机可读非暂时性存储介质可体现软件,该软件在被执行时可操作来执行根据本文所述的任何实施例的方法。
在实施例中,系统可以包括:一个或更多个处理器;以及耦合到处理器并包括由处理器可执行的指令的至少一个存储器,处理器当执行指令时可操作来执行根据本文所述的任何实施例的方法。
在实施例中,优选地包括计算机可读非暂时性存储介质的计算机程序产品当在数据处理系统上被执行时可操作来执行根据本文所述的任何实施例的方法。
附图说明
下面参考以下附图详细描述说明性实施例:
图1根据实施例描绘了示出用户的体验的示例工作流;
图2A描绘了用户可以用来追踪用户的跑步活动的第三方应用;
图2B描绘了具有由前置摄像机捕获的视听媒体内容的摄像机应用的图形用户界面;
图2C描绘了一个或更多个效果经由摄像机应用被输出;
图2D描绘了一个或更多个效果经由摄像机应用被输出的另一示例;
图2E描绘了一个或更多个效果经由摄像机应用被输出的另一示例;
图3根据实施例描绘了示出用户的体验的另一示例工作流;
图4A描绘了在摄像机应用的图形用户界面中的多个表示;
图4B描绘了用户选择表示的示例;
图4C描绘了用户选择表示的结果的示例;
图4D描绘了一个或更多个效果被用户交互修改的结果;
图5是可以实现示例性实施例的分布式环境的简化框图;
图6是根据某些实施例描绘由第三方应用执行的处理的简化流程图;
图7是根据某些实施例描绘由目标应用执行的处理的简化流程图;
图8是根据某些实施例描绘由目标应用针对多组效果执行的处理的简化流程图;
图9A描绘了可以在用户设备上显示的第三方社交媒体应用的示例图形用户界面(GUI);
图9B描绘了可以在用户设备上显示的目标应用的示例图形用户界面(GUI);
图9C描绘了由可以在用户设备上显示的目标应用的图形用户界面(GUI)输出的一个或更多个效果的示例;
图9D描绘了用于共享媒体内容的图形用户界面(GUI);
图9E描绘了媒体内容被共享的社交媒体应用的图形用户界面(GUI);以及
图10示出了计算机系统的框图的示例。
具体实施方式
在下面的描述中,为了解释的目的,阐述了许多具体细节,以便提供本公开的示例的彻底理解。然而将明显的是,可以在没有这些具体细节的情况下实践各种示例。例如,电路、系统、网络、过程和其他部件可以以框图形式被示为部件,以便不以不必要的细节使示例模糊。在其他实例中,公知的电路、过程、算法、结构和技术可以在没有必要的细节的情况下被示出,以便避免使示例模糊。附图和描述并不旨在是限制性的。
随后的描述仅提供示例,且并不意欲限制本公开的范围、适用性或配置。更确切地,示例的随后描述将给本领域中的技术人员提供用于实现示例的可行的描述。应当理解,可以在元件的功能和布置方面进行各种改变而不偏离如在所附权利要求中阐述的本公开的精神和范围。
此外注意,单独的示例可以被描述为过程,该过程被描绘为流程图(flowchart)、流程示意图(flow diagram)、数据流程示意图、结构图或框图。虽然流程图可以将操作描述为连续的过程,但许多操作可以并行地或同时被执行。此外,操作的顺序可以被重新排列。过程在它的操作完成时终止,但可以具有没有被包括在附图中的额外步骤。过程可以对应于方法、函数、规程、子例程、子程序等。当过程对应于函数时,它的终止可以对应于该函数到调用函数或主函数的返回。
术语“机器可读存储介质”或“计算机可读存储介质”包括但不限于便携式或非便携式存储设备、光学存储设备以及能够存储、包含或携带指令和/或数据的各种其他介质。机器可读存储介质或计算机可读存储介质可以包括可以存储数据并且不包括无线地或通过有线连接传播的载波和/或瞬变电子信号的非暂时性介质。非暂时性介质的示例可以包括但不限于磁盘或磁带、光存储介质(例如光盘(CD)或数字通用光盘(DVD))、闪存、存储器或存储器设备。计算机程序产品可以包括可以表示过程、函数、子程序、程序、例程、子例程、模块、软件包、类或指令、数据结构或程序语句的任何组合的代码和/或机器可执行指令。
此外,示例可以由硬件、软件、固件、中间件、微代码、硬件描述语言或其任何组合实现。当在软件、固件、中间件或微代码中实现时,执行必要的任务的程序代码或代码段(例如,计算机程序产品)可以存储在机器可读介质中。一个或更多个处理器可以执行软件、固件、中间件、微代码、程序代码或代码段以执行必要的任务。
可以在各种配置中提供在一些附图中描绘的系统。在一些示例中,系统可以被配置为分布式系统,其中系统的一个或更多个部件跨越一个或更多个网络(例如在云计算系统中)被分布。
当部件被描述为“被配置成”执行某些操作时,可以例如通过设计电子电路或其他硬件以执行操作、通过对可编程电子电路(例如,微处理器或其他合适的电子电路)进行编程以执行操作或者其任何组合来实现这种配置。
描述了使第三方(与应用无关)能够将由第三方创作的功能添加到应用的技术。在某些实施例中,第三方可以创建或创作对待被添加到应用的功能进行编码的脚本。脚本然后可以被提供到应用并由应用执行,其中脚本的执行使功能被添加到应用。
在某些实施例中,所添加的功能可以是当相应脚本由应用执行时输出的一个或更多个效果的形式。一个或更多个效果可以包括由一个或更多个效果被添加到的应用所显示的视听效果。在一些实施例中,一个或更多个效果还可以包括在一个或更多个效果被添加到的应用中显示对应于第三方应用的数据。在这样的实施例中,由第三方应用提供的脚本可以识别待被显示的数据。
在一个说明性示例中,一个或更多个效果被添加到的应用(即,目标应用)可以是摄像机应用,其被配置为输出由一个或更多个视听捕获设备捕获的视听信息,例如由设备上的摄像机捕获的视频流。在这样的示例中,由第三方创作的脚本可以对摄像机应用变得可用。当由摄像机应用执行时,脚本可以使对应于脚本的一个或更多个效果通过摄像机应用(例如经由摄像机应用的用户界面)被输出。一个或更多个效果可以包括待被显示的视听效果和/或数据(对应于第三方)。例如,在一个实施例中,一个或更多个效果可以与被捕获的媒体内容(例如,图像、视频或视听流)混合。然后一个或更多个效果和媒体内容可以由摄像机应用一起输出。在一些示例中,目标应用的媒体内容被一个或更多个效果增强。在某些实施例中,摄像机应用可以是社交媒体应用(例如FacebookTM应用)的一部分。
在某些实施例中,根据示例工作流,第三方应用可以在用户的设备(例如用户的移动设备)上执行。第三方应用可以提供用户界面,该用户界面使得用户能够选择由第三方应用提供的特有共享按钮。对特有共享按钮的选择可以使消息从第三方应用传递到目标应用(例如,摄像机应用)。摄像机应用然后可以基于接收到的消息,确定与第三方应用相关联的脚本。脚本可以由与该第三方应用相同的第三方或由某个其他第三方创作。在一些示例中,当针对作者身份提到第三方时,本公开涉及除了与摄像机应用相关联的方之外的方。
在某些实施例中,由摄像机应用接收的消息可以包括脚本。在一些其他实施例中,由摄像机应用接收的消息可以包括由摄像机应用使用来识别特定脚本的信息。然后,特定脚本可以由摄像机应用执行,使对应于脚本的一个或更多个效果由摄像机应用输出。
从使用第三方应用的用户的角度来看,当选择了特有共享按钮时,在用户的设备上的显示从第三方应用的用户界面(例如,图形用户界面(GUI))切换到摄像机应用的用户界面(例如,GUI),以及摄像机应用的GUI然后可以显示对应于所执行的脚本的一个或更多个效果。然后,用户可以与摄像机应用进行交互以对与媒体效果混合的媒体内容执行一个或更多个动作,例如取消、共享、保存等。摄像机应用还可以提供退出按钮,该退出按钮当被用户选择时使摄像机应用关闭并且第三方应用的用户界面被重新显示在用户的设备上。
在一些实施例中,脚本可以在沙箱容器内由目标应用执行,使得脚本与目标应用的任何信息隔离并且不能访问目标应用的任何信息。沙箱容器是确保脚本在受控环境中被执行而不访问目标应用的保密信息的一种方式。除了在沙箱内的执行之外,其他技术也可以用于隔离由目标应用对脚本的执行。
在一些示例中,来自第三方应用的消息可以首先被发送到社交媒体应用(例如FacebookTM应用),社交媒体应用然后可以作为响应向目标应用(例如摄像机应用)发送第二消息,目标应用然后输出如本文所述的效果。在某些实施例中,社交媒体应用可以提供摄像机应用。在这样的示例中,摄像机应用可以是由社交媒体应用执行的过程。可选地,目标应用可以是与社交媒体应用分开的应用。
在某些实施例中,一个或更多个效果可以包括视听效果,没有限制地例如:音频声音(例如,生日快乐音乐、气球爆音、人群欢呼等)和视觉效果(例如,装饰彩纸条、漂浮的气球、叠加在人的头上的生日帽子等)。一个或更多个效果还可以包括由第三方提供的数据(例如游戏分数、由跑步者跑的英里数等)的显示。在一些实施例中,可以响应于由用户对在第三方应用中的特有共享按钮的选择来将待被显示的数据从第三方应用发送到摄像机应用。在一些其他实施例中,对效果进行编码的脚本可以包含数据或者可以包含对于数据的指针或引用。当脚本由目标应用执行时,这些指针或引用然后可以由目标应用使用来下载相应的数据,且然后数据可以由目标应用显示,作为输出一个或更多个效果的一部分。
在某些实施例中,可能由多个第三方提供的多个脚本可以是可用的,以用于由目标应用执行。例如,当目标应用从第三方应用接收到消息(例如,当第三方应用的用户选择由第三方应用提供的特有共享按钮时所传递的消息)时,目标应用可以响应于接收到该消息而识别可供执行的来自一个或更多个第三方的多个脚本。在这种情形中,目标应用可以为每个可用脚本提供用户可选表示,其中表示可以是缩略图、图标、按钮等的形式。用户然后可以选择特定的表示(以及作为结果,特定的一组效果)。对应于所选择的表示的特定脚本然后由目标应用执行,并且由该特定脚本的执行产生的一个或更多个效果由该目标应用输出。
为了本公开的目的,术语“第三方”用于指不同于目标应用的提供者的实体(例如,个人、公司、提供者等)。由第三方提供的应用被称为第三方应用,其与目标应用分开且不同。例如,如果目标应用是由Facebook公司提供的应用,则除了Facebook公司以外的另一公司可以是第三方。
图1根据实施例描绘了示出用户的体验的示例工作流。在图1中呈现且在下面描述的流程旨在是说明性的而非限制性的。在图1中描绘的步骤的特定次序并不旨在是限制性的。
在110,用户可能正在使用在用户设备(例如计算机、移动电话或其他电子设备)上执行的应用(被称为第三方应用)。第三方应用可以提供在用户的设备上显示的图形用户界面(GUI),并允许用户与第三方应用进行交互。在图2A中描绘了这种第三方应用和由第三方应用显示的GUI 200的示例,图2A示出了用户可以使用来追踪用户的跑步活动的第三方应用。如在图2A中所描绘的,第三方应用图形用户界面(GUI)可以显示示出用户跑步的路径的图形212、用户跑步的距离的指示214以及还有特有共享按钮,其可以是用户可选按钮。
在120,用户可以选择在第三方应用中的特有共享按钮。特有共享按钮的选择使用户能够将信息从第三方应用共享到目标应用。例如,目标应用可以是摄像机应用,该摄像机应用被配置为输出由在用户设备上的一个或更多个视听捕获设备(例如,摄像机、麦克风等)捕获的视听信息(例如,图像、视频信息、音频信息)。在图2B中示出了这种摄像机应用的示例。如图2B所示,摄像机应用的图形用户界面220被示为具有由前置摄像机捕获的视听媒体内容。
在130,作为在120中选择特有共享按钮的结果,在用户设备上的显示从第三方应用的GUI切换到目标应用的GUI。在140,经由目标应用输出由第三方创作的一个或更多个效果。一个或更多个效果可以包括视听效果,没有限制地例如:音频声音(例如,生日快乐音乐、气球爆音、人群欢呼等)和视觉效果(例如,装饰彩纸条、漂浮的气球、叠加在人的头上的生日帽子等)。一个或更多个效果还可以包括由第三方提供的数据(例如游戏分数、由跑步者跑的英里数等)的显示。可以经由目标应用的GUI输出一个或更多个视觉和数据显示效果,并且可以在目标应用的控制下经由用户的设备的音频输出设备(例如,扬声器)输出一个或更多个音频效果。在某些实施例中,一个或更多个效果可以连同对应于目标应用的媒体内容一起(例如,与媒体内容混合)被输出。
例如,图2C描绘了一个或更多个效果经由摄像机应用被输出。图2C描绘了摄像机应用的GUI 220,其示出由摄像机应用捕获并输出的媒体内容。另外,也经由GUI 220来显示与摄像机应用的媒体内容混合的一个或更多个效果230。以这种方式,通过一个或更多个效果230来增强摄像机应用的内容。在图2C中描绘的示例中,一个或更多个效果230包括显示来自第三方应用的信息。例如,如图2C所示,一个或更多个效果230包括显示用户跑步的路线的图形232和指示用户跑步的距离(例如,英里数)的数据234。将此与图2A进行比较,可以看到该信息来自第三方应用。
在150,用户可以与目标应用进行交互。例如,用户可以使用摄像机应用来拍摄图片(例如,一帧)、捕获视频(例如,一个或更多个帧)、共享图片和/或视频等。这些图片和视频可以包括一个或更多个效果。
在某些实施例中,第三方应用可以提供使用户能够关闭目标应用并返回到第三方应用的用户可选选项。在160,用户可以选择该选项以退出目标应用。在一些示例中,图片、视频或两者中的任一个的预览可以被发送到第三方应用。在170,响应于用户在160中选择退出选项,在用户设备上的显示从目标应用的GUI切换回到第三方应用的GUI。目标应用可以关闭,以及第三方应用可以显示被发送到第三方应用的图片、视频或两者中的任一个的预览。
图2D和图2E描绘了目标应用和可以经由目标应用输出的第三方创作的效果的其他示例。例如,在图2D中描绘的实施例中,目标应用是摄像机应用,并且效果包括关于正在进行的比赛的信息240以及火箭(rocket)效果246。比赛信息240包括识别球队(阿森纳(Arsenal)和斯托克城(Stoke City))的信息242、比赛分数244(3-1)和比赛的时间线(48:18)。该数据由第三方提供,并连同由摄像机应用捕获并输出的媒体内容一起被显示。提供数据的第三方可以不同于创作效果的第三方。例如,第三方可以是通过应用编程接口(API)来提供分数的服务。在这样的示例中,每当脚本指示时,执行以输出效果的脚本可以调用API以接收数据。通过使用服务,脚本可以访问由服务更新的实时信息,而不是静态信息和/或在脚本中包括的数据。类似地,数据可以来自效果的提供者。例如,数据可以由效果的提供者更新,使得数据包括实时更新。在某些实施例中,可以实时地更新所显示的效果数据。例如,在图2D上的比赛时间线和分数可以被实时地更新。
在一些示例中,效果可以是使得它基于用户交互或输入而被激活,并且可以包括动画。例如,给定图2D所示的效果,当用户触摸火箭246(例如,触摸显示的区域,在该区域中火箭被显示)时,动画效果可以被发起(如在图2E中描绘的),其中火箭飞向由摄像机应用的GUI显示的TV屏幕且然后爆炸(图2E中的参考符号250)。
图3根据实施例描绘了示出用户的体验的另一示例工作流。在图3中呈现并在下面描述的流程旨在是说明性的而非限制性的。在图3中描绘的步骤的特定次序并不旨在是限制性的。
步骤310、320和330对应于在图1中描绘并在上面所述的步骤110、120和130。不同于在图1描绘并在上面描述的示例,在该示例中,可以有多批或多组效果,其可以是由目标应用输出的候选项。多批可以由一个或更多个第三方创建或创作。在这种情形中,目标应用可以识别对应于多组或多批的多个脚本。在340,目标应用可以通过它的GUI为每一批显示用户可选表示,其中表示可以是缩略图、图标、按钮等的形式。例如,如在图4A中描绘的,可以显示多个表示402、404、406、408、410和412。这些表示可以被显示为可滚动的列表。每个表示对应于特定的脚本和相应的一组特定效果。
在350,用户然后可以从多个表示选择特定表示,从而指示用户想要目标应用输出对应于所选择的表示的一个或更多个效果。在360,对应于由用户在350中选择的表示的一个或更多个效果由目标应用输出。视觉和数据显示效果可以经由目标应用的GUI被输出,以及音频效果可以经由用户的设备的音频输出子系统被输出。例如,如图在4B中描绘的,用户已经选择了表示406,并且对应于所选择的表示的效果420被输出。所选择的效果还允许用户通过轻敲422来改变在效果中示出的GIF,轻敲422又显示一组GIF 424。然后,用户可以选择特定的GIF,其然后被显示在如在图4C和图4D中描绘的效果中。
在370,用户可以与目标应用进行交互。这些交互可以包括例如使用目标应用(例如摄像机应用)来拍摄图片、捕获视频、共享所捕获的图片和/或视频等。在360中的用户交互还可以包括选择不同的表示或退出目标应用。根据用户交互,可以采用不同的动作。
例如,在372,用户可以从先前选择的表示中选择不同的表示。作为响应,在374,对应于在374中选择的表示的一个或更多个效果由目标应用和用户的设备输出。
在380,用户可以选择使用户设备的显示从目标应用切换回到第三方应用的选项。例如,用户可以选择由目标应用GUI提供的退出按钮、取消按钮、存储/共享和退出按钮等。响应于该选择,在390,在用户设备上的显示可以从目标应用切换到第三方应用。目标应用可以被关闭。
在存在多组效果的情形中,在某些实施例中,某一组可以被标记为“默认”,并且对应于该默认组的效果可以经由目标应用来输出,甚至在用户已经在上面的350中特别选择了特定表示之前。一旦多个表示被显示,用户总是可以选择不同的表示以将所输出的效果从默认值更改为特定的用户选择的组。
图5是可以实现示例性实施例的分布式环境500的简化框图。分布式环境500可以包括经由一个或更多个通信网络560通信地耦合到彼此的多个系统。如图5所示的系统包括用户设备510、第三方服务器590、数据源570和目标应用服务器580。在图5中描绘的分布式环境500仅仅是示例,并不意欲不适当地限制在权利要求中叙述的创造性实施例的范围。本领域中的普通技术人员将认识到许多可能的变化、备选方案和修改。例如在一些实现中,分布式环境500可以具有比在图5中所示的系统更多或更少的系统,可以组合两个或更多个系统,或者可以具有系统的不同配置或布置。
通信网络560便于在图5中描绘的各种系统之间的通信。通信网络560可以具有各种类型,并且可以包括一个或更多个通信网络。通信网络560的示例没有限制地包括互联网、广域网(WAN)、局域网(LAN)、以太网、公共或专用网络、有线网络、无线网络等及其组合。可以使用不同的通信协议来便于通信,包括有线协议和无线协议,例如IEEE 802.XX协议系列、TCP/IP、IPX、SAN、
Figure GDA0003501948150000171
和其他协议。一般而言,通信网络508可以包括便于在图5中描绘的各种系统之间通信的任何基础设施。
用户可以使用用户设备510来与由用户设备510执行的应用(包括第三方应用550和目标应用(例如,摄像机应用542))进行交互。用户设备510可以是移动设备(例如,iPhoneTM设备、iPadTM设备)、台式计算机、膝上型计算机或其他计算设备。用户设备510可以包括多个子系统,包括输入和/或输出(I/O)子系统520。I/O子系统520可以包括用于捕获音频和/或视频信息的一个或更多个子系统530。
I/O子系统520可以包括用于向用户设备510输入数据和/或从用户设备510输出数据的部件。例如,I/O子系统520可以包括用于在用户设备510上显示内容并通过一个或更多个触摸传感器来接收交互的屏幕。作为另一个示例,I/O子系统520还可以包括一个或更多个部件,例如全球定位系统(GPS)、加速度计、键盘、扬声器等。
用户设备510还可以包括用于捕获音频和/或视频信息的视听信息捕获子系统530。视听信息捕获子系统520可以包括例如用于捕获图像或视频信息的一个或更多个摄像机、用于捕获音频信息的一个或更多个麦克风等。
一个或更多个应用可以安装在用户设备510上,并且可以由用户设备510执行。虽然图5仅描绘了第三方应用550和目标应用540,但这并不旨在是限制性的,其他应用也可以由用户设备510安装并执行。作为示例,社交媒体应用(例如FacebookTM应用)可以由用户设备510安装并执行。在某些实施例中,目标应用540可以是社交媒体应用的一部分。然而,应当认识到,目标应用540可以与社交媒体应用分离。
如在图5中描绘的,作为一个示例,目标应用可以是可以接收并输出由视听信息捕获子系统530捕获的一个或更多个图像、视频、视频流和/或音频信息的摄像机应用。
目标应用540可以确定与目标应用540的输出混合的效果。例如,目标应用540可以接收指示第三方应用(例如第三方应用550)的消息、特定媒体效果、用于识别一个或更多个媒体效果的关键词等。
基于该消息,目标应用540可以使脚本(例如脚本542)在目标应用540的容器544(有时被称为沙箱)中被执行。在一些示例中,可以基于脚本544的执行由目标应用540呈现一个或更多个效果,脚本544可以包括一个或更多个操作。脚本544可以由不与目标应用540相关联的用户(例如,与第三方应用550相关联的用户)创作。
在一些示例中,脚本544可以使目标应用540与一个或更多个远程源(例如,数据源570、目标应用服务器580或第三方服务器590)进行通信。数据源570可以与目标应用服务器580、第三方服务器590或另一服务器相关联。数据源570可以是至少包括第三方数据572(例如,与第三方应用550相关联和/或来自第三方应用550的数据)的数据库。在一些示例中,数据源570可以包括可以由第三方应用550所创作的脚本使用的实时数据。目标应用服务器580可以与目标应用540通信,用于提供补充在用户设备510上的处理和存储的服务器侧功能。第三方服务器590可以执行与社交媒体服务器580类似的功能,但针对第三方应用550而不是目标应用540。目标应用服务器580还可以包括用于发送到目标应用540以用于执行的一个或更多个脚本582。
如上所述,第三方应用550可以向目标应用540发送消息。为了发送消息,第三方应用550可以使用由目标应用540的提供者提供的应用编程接口(API)。API可以使第三方应用能够执行各种任务,例如:向目标应用540提供第三方应用数据、向目标应用540提供由第三方应用550的提供者创作的脚本、发起脚本的执行,等等。
图6是根据某些实施例描绘由第三方应用执行的处理的简化流程图600。可以在由相应系统、硬件或其组合的一个或更多个处理单元(例如处理器、核)执行的软件(例如,代码、指令、程序)中实现在图6中描绘的处理。软件可以存储在非暂时性存储介质上(例如,存储器设备上)。在图6中呈现并在下面描述的方法旨在是说明性的而非限制性的。在图6中描绘的处理步骤的特定次序并不旨在是限制性的。
在610,在用户设备上执行的第三方应用可以接收用户已经选择了由第三方应用提供的特有按钮以发起与目标应用的共享的指示。在一些示例中,特有按钮的选择可以指示用户想要与目标应用(例如摄像机应用)共享来自第三方应用的数据。
在620,第三方应用确定要从第三方应用发送到目标应用的信息(例如,第三方数据)。在某些实施例中,待发送的信息使得它使目标应用能够基于内容来确定脚本,其中脚本对要经由目标应用输出的一个或更多个效果进行编码。在某些实施例中,脚本本身或识别脚本的信息(例如,文件名)可以被包括在待发送的信息中。在另一个实施例中,第三方应用可以在通信中包括足够的信息(例如,识别第三方应用或第三方应用的提供者的标识符),其使目标应用能够确定对应于通信的脚本。
如上所述,一个或更多个效果还可以包括输出第三方数据。在一个实施例中,作为620的一部分,第三方应用可以确定什么样的第三方数据将被发送到目标应用,并且在通信中包括该数据以发送到目标应用。在一些其他实施例中,待输出的数据可以由脚本识别。第三方数据可以存储在用户设备上,或者可以存储在远离用户设备的某个存储位置上。例如,对于在图2A中描绘的第三方应用,第三方应用可以确定指示用户跑步的路线的信息和指示用户跑步的距离的信息将被传递到目标应用。在630,在620中确定的信息从第三方应用传递到目标应用,该目标应用也可以在用户的设备上被执行。
在640,第三方应用可以使用户设备能够从显示第三方应用的GUI切换到显示目标应用的GUI。在一些示例中,该切换可以是快速切换,使得用户不需要执行任何动作来使该切换出现。
在用户退出目标应用之后,在650,第三方应用可以接收消息以再次成为活动的应用,以及作为结果,在用户的设备上的显示可以从显示目标应用的GUI切换到显示第三方应用的GUI。
图7是根据某些实施例描绘由目标应用执行的处理的简化流程图700。可以在由相应系统、硬件或其组合的一个或更多个处理单元(例如,处理器、核)执行的软件(例如,代码、指令、程序)中实现在图7中描绘的处理。软件可以存储在非暂时性存储介质上(例如,存储器设备上)。在图7中呈现并在下面描述的方法旨在是说明性的而非限制性的。在图7中描绘的处理步骤的特定次序并不旨在是限制性的。
在710,目标应用可以从在设备上执行的第三方应用接收消息或通信。该通信可以包括使目标应用能够识别待被执行的脚本的信息。例如,在一些实施例中,通信本身可以包括标识脚本的信息,或者甚至可以包括脚本。在一些实施例中,通信可以包括识别第三方应用或第三方应用的第三方提供者的信息。通信可以包括关键词等。在一些示例中,接收到的通信或消息可以包括识别将被包括在与脚本相关联的一个或更多个效果中的第三方数据的信息。
在720,目标应用可以成为设备上的活动的应用。例如,设备的显示可以从第三方应用的GUI切换到目标应用的GUI。
在730,目标应用可以基于在710中接收的消息来识别脚本。在某些实施例中,目标应用可以基于在消息中包含的信息来访问识别要使用的脚本的信息。例如,目标应用可以访问将第三方应用映射到相应脚本的信息。因此,基于识别在消息中包括的第三方应用的信息,目标应用可以确定要使用的脚本。如前面所指示的,在一些实例中,消息本身可以识别要使用的脚本。
如果必要的信息和脚本是目标应用可访问的,则识别对应于从第三方应用接收的消息的脚本的任务可以由目标应用单独地执行。可选地,该处理可以由目标应用结合服务器来执行。例如,作为730的一部分,在用户设备上执行的目标应用可以将在通信中包含的信息或其一部分发送到服务器,例如发送到在图5中描绘的目标应用服务器580。服务器然后可以执行处理以基于接收到的通信来识别特定脚本,且然后将识别出的脚本发送到用户设备,目标应用正在该用户设备上执行。
在740,所识别的脚本可以由目标应用执行,其中脚本的执行使由脚本编码的一个或更多个效果由目标应用输出。一个或更多个效果可以包括音频效果、视觉或视频效果和/或显示数据。在一些示例中,效果可以连同由目标应用输出的其他信息一起被输出。例如,如果目标应用是被配置为捕获并输出媒体信息(例如视频信息)的摄像机应用,则效果可以连同由目标应用输出的信息一起(例如与由目标应用输出的信息混合)被显示。以这种方式,由目标摄像机应用输出的内容由一个或更多个效果来增强。
在某些实施例中,脚本是由目标应用执行的JavaScript文件。在一些实施例中,可以在目标应用内的沙箱容器内执行脚本,使得脚本与目标应用的任何信息隔离并且不能访问目标应用的任何信息。
在某些实施例中,脚本可以指示数据(例如第三方数据)将作为一个或更多个效果的一部分被输出。在一些示例中,待显示的数据可以被包括在由目标应用从第三方应用接收的消息中。在一些其他示例中,脚本可以包括对数据的引用或指针,并且目标应用可以使用这些引用来访问数据。例如,在一个实施例中,脚本可以包括统一资源标识符(URI),例如指向待被包括在效果中的数据被存储于的位置的URL。该位置可以远离目标应用正在被执行于的设备,例如,数据可以存储在图5中描绘的数据源570上。作为脚本执行的一部分,目标应用可以确定URL,并从由URL指向的位置下载数据。
在750,目标应用可以从用户接收输入(例如,用户交互)。在760和770,如果用户输入是从目标应用退出,则目标应用可以被关闭(或者变得不活动),使得第三方应用变成活动的应用,并且在用户设备上的显示从目标应用切换到第三方应用。当输入没有引起从目标应用的退出时,目标应用可以等待另一个用户交互。
图8是根据某些实施例描绘由目标应用对多组效果执行的处理的简化流程图800。可以在由相应系统、硬件或其组合的一个或更多个处理单元(例如,处理器、核)执行的软件(例如,代码、指令、程序)中实现在图8中描绘的处理。软件可以存储在非暂时性存储介质上(例如,存储器设备上)。在图8中呈现并在下面描述的方法旨在是说明性的而非限制性的。在图8中描绘的处理步骤的特定次序并不旨在是限制性的。
在802,目标应用可以从在设备上执行的第三方应用接收消息或通信。该消息可以包括使目标应用能够识别待被执行的多个脚本的信息。例如,在一些实施例中,消息本身可以包括识别多个脚本的信息,或者甚至可以包括多个脚本(或者包括多个脚本中的一个或更多个)。在一些实施例中,消息可以包括识别第三方应用或第三方应用的第三方提供者的信息。该消息可以包括关键词等。在一些示例中,该消息可以包括识别将被包括在与多个脚本中的至少一个相关联的一个或更多个效果中的第三方数据的信息。
在804,目标应用可以成为设备上的活动的应用。例如,设备的显示可以从第三方应用的GUI切换到目标应用的GUI。
在806,目标应用可以基于在802中接收的消息来识别多个脚本。在某些实施例中,目标应用可以基于在消息中包含的信息来访问识别要使用的多个脚本的信息。例如,目标应用可以访问将第三方应用映射到相应脚本的信息。因此,基于识别在消息中包括的第三方应用的信息,目标应用可以确定多个脚本。如前面所指示的,在一些实例中,消息本身可以包括多个脚本。
如果必要的信息和脚本是目标应用可访问的,则识别对应于从第三方应用接收的消息的脚本的任务可以由目标应用单独地执行。可选地,该处理可以由目标应用结合服务器来执行。例如,作为806的一部分,在用户设备上执行的目标应用可以将在消息中包含的信息或其一部分发送到服务器,例如发送到在图5中描绘的目标应用服务器580。服务器然后可以执行处理以基于所接收的信息来识别特定脚本,且然后将识别出的脚本发送到用户设备,目标应用正在该用户设备上执行。
在808,可以在目标应用中显示用户可选表示。每个用户可选表示可以对应于基于消息而识别的脚本。这些表示可以是缩略图、图标、按钮等的形式。在810,用户可以做出用户可选表示的选择。该选择可以由目标应用接收。
在812,对应于该选择的脚本可以由目标应用执行,其中脚本的执行使由脚本编码的一个或更多个效果由目标应用输出。一个或更多个效果可以包括音频效果、视觉或视频效果和/或显示数据。在一些示例中,效果可以连同由目标应用输出的其他信息一起被输出。例如,如果目标应用是被配置为捕获并输出媒体信息(例如视频信息)的摄像机应用,则效果可以连同由目标应用输出的信息一起(例如与由目标应用输出的信息混合)被显示。以这种方式,由目标摄像机应用输出的内容由一个或更多个效果来增强。
在某些实施例中,脚本是由目标应用执行的JavaScript文件。在一些实施例中,脚本可以在目标应用内的沙箱容器内被执行,使得脚本与目标应用的任何信息隔离并且不能访问目标应用的任何信息。
在某些实施例中,脚本可以指示数据(例如第三方数据)将作为一个或更多个效果的一部分被输出。在一些示例中,待显示的数据可以被包括在由目标应用从第三方应用接收的消息中。在一些其他示例中,脚本可以包括对数据的引用或指针,并且目标应用可以使用这些引用来访问数据。例如,在一个实施例中,脚本可以包括统一资源标识符(URI),例如指向待被包括在效果中的数据被存储于的位置的URL。该位置可以远离目标应用正在被执行于的设备,例如,数据可以存储在图5中描绘的数据源570上。作为脚本执行的一部分,目标应用可以确定URL,并从由URL指向的位置下载数据。
在814,目标应用可以从用户接收输入(例如,用户交互)。在816和822,如果用户输入指示从目标应用的退出,则目标应用可以被关闭(或者变得不活动),使得第三方应用变成活动的应用,并且在用户设备上的显示从目标应用切换到第三方应用。
在818,当输入不引起从目标应用的退出时,可以确定输入是否是用户可选表示的新选择。在820,如果新选择是用户可选表示,则对应于新选择的新脚本可以与在812所述的类似地被执行。当新脚本被执行时,先前脚本可能不再在设备上被执行(且因此对应于先前脚本的一个或更多个效果可以不再由设备输出)。
图9A-图9E描绘了使用目标应用来向第三方应用发布内容的工作流的GUI的示例。图9A描绘了可以在用户设备上显示的第三方社交媒体应用的示例GUI 900。GUI 900包括用户的朋友的生日提醒902连同特有共享按钮904(例如,“发送问候”)。特有共享按钮可以使第三方社交媒体应用共享数据并切换到目标应用(例如,摄像机应用),其中由第三方提供者创作的效果可以被显示。作为一个示例,按钮904的选择使目标摄像机应用被调用,并且它的GUI 910被显示在用户的设备上(如图9B所示)。
目标摄像机应用可以确定存在由一个或更多个第三方创作或创建的并且是由用户选择的候选项的多批或多组效果。对应于多批或多组效果的多个表示912显示在GUI 910中。然后,用户可以经由GUI 910来选择特定的表示。摄像机目标应用然后执行对应于所选择的表示的脚本,并且从执行特定脚本所生成的一个或更多个效果然后经由GUI 910被输出(如图9C所示)。如在图9C中描绘的,目标摄像机应用在用户设备上显示使用前置摄像机捕获的人的视频,并且效果包括显示在人的脸的眼睛上的带有蜡烛的一副生日眼镜。
在图9C中描绘的实施例中,所选择的表示对应于多个效果,并且用户可以通过在屏幕上滑动(swiping)来从一个效果滚动到另一个效果。虽然图形用户界面在图形用户界面的底部处示出了多个媒体效果,但是应当认识到,可以以其他方式来表示多个媒体效果。例如,每个媒体效果可以与图形用户界面的不同屏幕相关联,使得当用户交互使图形用户界面的屏幕改变(例如,将手指从屏幕的一侧滑动到另一侧)时,不同的媒体效果被呈现。当媒体效果被激活时(如上所述),媒体效果可以由目标应用呈现(如图9C所示)。
图9D描绘了用于共享媒体内容的图形用户界面(GUI)。在一些示例中,用于共享媒体内容的GUI可以由目标应用托管。在其他示例中,用于共享媒体内容的GUI可以由第三方社交媒体应用托管。用于共享媒体内容的图形用户界面可以允许用户选择一个或更多个用户来与之共享媒体内容。在做出与一个或更多个用户共享媒体内容的指示之后,可以将媒体内容发送到一个或更多个用户(如图9E所示)。在图9E中,选择单个用户来与之(即,丹尼埃尔·哈里斯(Danielle Harris))共享媒体内容。媒体内容被放置在丹尼埃尔·哈里斯的墙(wall)上,使得丹尼埃尔·哈里斯可以看到媒体内容,该媒体内容包括来自图像/视频捕获子系统的、与媒体效果混合的一个或更多个图像。
如上所述,本文的这个公开允许第三方创建在Facebook中的虚拟现实软件摄像机内部运行的体验,然后将用户从移动应用或web链接直接驱动到该摄像机内体验。本公开还允许第三方在共享被发起期间发送信息,使得外部数据可以被合并到摄像机体验中。因为第三方Facebook应用(其可以是移动应用或web服务)被链接到第三方效果,所以本公开允许系统将身份信息(例如,电子邮件地址、关于当前观看者的公共简档信息)自动提供到运行来产生第三方效果的代码,即使第三方效果的当前用户在Facebook内部发现了第三方效果(例如,它们没有经由外部共享被发起)。
图10示出了计算机系统的框图的示例。图10所示的计算机系统可以用于实现图5的下列元件中的一个或更多个:用户设备510、数据源570、目标应用服务器580和第三方服务器590。在该示例中,计算机系统1000包括监视器、计算机、键盘、用户输入设备1060、输出设备1070、一个或更多个计算机接口等。在本示例中,用户输入设备1060通常被体现为计算机鼠标、跟踪球、触控板、操纵杆、无线遥控器、绘图板、语音命令系统、眼睛跟踪系统等。用户输入设备1060通常允许用户经由命令(例如按钮的点击等)来选择出现在监视器上的对象、图标、文本等。
计算机接口的示例通常包括以太网卡、调制解调器(电话、卫星、电缆、ISDN)、(异步)数字用户线(DSL)单元、FireWire接口、USB接口等。计算机接口例如包括网络接口1080。例如,计算机接口可以耦合到计算机网络、耦合到FireWire总线等。在其他实施例中,计算机接口可以物理地集成在计算机的母板上,可以是软件程序(例如软DSL等)。
在各种示例中,计算机通常包括熟悉的计算机部件,例如处理器1010和存储装置1030(存储装置包括存储器1040,例如随机存取存储器(RAM)1042、只读存储器(ROM)1044、磁盘驱动器,并且存储装置中包括文件1050)以及使上述部件互连的系统总线1020。
RAM 1042和磁盘驱动器是有形介质的示例,其被配置成存储数据(例如本发明的实施例),包括可执行计算机代码、人类可读代码等。其他类型的有形介质包括软盘、可移动硬盘、光存储介质(例如CD-ROM、DVD和条形码)、半导体存储器(例如闪存、只读存储器(ROM))、电池备份的易失性存储器、联网存储设备等。
在各种示例中,计算机系统1000还可以包括通过网络使通信成为可能的软件,例如HTTP、TCP/IP、RTP/RTSP协议等。在本发明的替代实施例中,也可以使用其他通信软件和传输协议,例如IPX、UDP等。
尽管描述了特定的实施例,但各种修改、变更、替代结构和等同物是可能的。实施例不限于在某些特定数据处理环境中的操作,而是在多个数据处理环境中自由地操作。此外,尽管使用事务处理和步骤的特定系列描述了某些实施例,但对于本领域中的技术人员应当明显的是,这并不旨在是限制性的。虽然一些流程图将操作描述为连续过程,但许多操作可以并行地或同时被执行。此外,操作的顺序可以被重新排列。过程可以具有未被包括在附图中的额外步骤。上述实施例的各种特征和方面可以单独地或联合地被使用。
此外,虽然使用硬件和软件的特定组合描述了某些实施例,但应当认识到,硬件和软件的其他组合也是可能的。可以仅在硬件中、或者仅在软件中、或者使用其组合来实现某些实施例。在一个示例中,软件可以用包含由一个或更多个处理器可执行的计算机程序代码或指令的计算机程序产品来实现,该处理器用于执行在本公开中描述的任何或所有步骤、操作或过程,其中计算机程序可以存储在非暂时性计算机可读介质上。可以在同一处理器或者在任何组合中的不同处理器上实现本文描述的各种过程。
在设备、系统、部件或模块被描述为被配置为执行某些操作或功能的情况下,可以通过以下项来实现这种配置:例如,通过设计电子电路以执行操作、通过对可编程电子电路(例如微处理器)进行编程以执行操作(例如通过执行计算机指令或代码、或者被编程为执行存储在非暂时性存储介质上的代码或指令的处理器或核)、或者其任何组合。过程可以使用各种技术(包括但不限于用于过程间通信的传统技术)来进行通信,且不同的过程对可以使用不同的技术,或者同一对过程可以在不同的时间使用不同的技术。
在本公开中给出了具体细节以提供实施例的彻底理解。然而,可以在没有这些具体细节的情况下实践实施例。例如,为了避免使实施例含糊,众所周知的电路、过程、算法、结构和技术被示出而没有不必要的细节。该描述仅提供示例实施例,并不意欲限制其他实施例的范围、适用性或配置。更确切地,实施例的前面的描述将为本领域中的技术人员提供用于实现各种实施例的可行的描述。可以在元件的功能和布置方面做出各种改变。
因此,说明书和附图在说明性的而不是限制性的意义上被考虑。然而将明显的是,可以对其做出添加、删减、删除以及其他修改和改变而不偏离如在权利要求中阐述的更广泛的精神和范围。因此,尽管描述了特定的实施例,但这些实施例并不旨在是限制性的。各种修改和等同物在所附权利要求的范围内。

Claims (18)

1.一种用于使第三方能够将效果添加到应用的方法,包括:
由在设备上执行的第一应用从在所述设备上执行的第二应用接收通信;
由所述设备显示所述第一应用的第一图形用户界面(GUI),其中,所述第一GUI包括由所述设备的一个或更多个视频信息捕获设备捕获的视频流,
由所述设备显示所述第二应用的第二图形用户界面(GUI),所述第二GUI提供用户可选选项,所述用户可选选项用于发起从所述第二应用到所述第一应用的所述通信;
响应于对在所述第二GUI上的所述用户可选选项的选择,将所述通信从所述第二应用发送到所述第一应用;
基于所述通信来识别脚本;以及
由所述第一应用执行所述脚本,该执行使一个或更多个效果连同所述视频流一起被输出;
其中,显示所述第一GUI包括将由所述设备显示的GUI从所述第二GUI切换到所述第一GUI。
2.根据权利要求1所述的方法,其中,所述脚本由所述第二应用的提供者创作,并且其中,所述第二应用的提供者不同于所述第一应用的提供者。
3.根据权利要求1所述的方法,其中,使所述一个或更多个效果被输出包括:
经由所述第一GUI输出视觉效果,
经由所述设备输出音频效果,或者
经由所述第一GUI显示与所述第二应用相关联的数据。
4.根据权利要求1所述的方法,其中,识别所述脚本包括:
将被包括在由所述第一应用接收的通信中的信息的一部分从所述第一应用传递到远离所述设备的服务器系统;
由所述服务器系统基于信息的所述部分来识别所述脚本;以及
将所识别的脚本从所述服务器系统传递到所述设备以用于由所述第一应用使用。
5.根据权利要求1所述的方法,其中,所述通信包括识别所述第二应用的信息、识别所述第二应用的提供者的信息、识别所述脚本的信息或所述脚本。
6.根据权利要求1所述的方法,其中,使所述一个或更多个效果被输出包括经由所述第一GUI输出与所述第二应用相关联的数据。
7.根据权利要求6所述的方法,其中,与所述第二应用相关联的所述数据被包括在由所述第一应用从所述第二应用接收的所述通信中。
8.根据权利要求6所述的方法,其中:
与所述第二应用相关联的所述数据由所述第一应用从远离所述设备的存储位置进行访问;以及
所述脚本识别所述存储位置。
9.根据权利要求8所述的方法,其中,所述脚本由所述第二应用的提供者创作,并且其中,与所述第二应用相关联的所述数据来自除所述第二应用的提供者之外的提供者。
10.根据权利要求1所述的方法,还包括:
由所述设备从所述第一应用接收消息以退出所述第一应用;以及
响应于所述消息,将由所述设备显示的GUI从所述第一GUI改变为所述第二GUI。
11.根据权利要求1所述的方法,还包括:
当所述一个或更多个效果连同所述视频流一起被输出时,捕获所述视频流的一个或更多个帧;以及
由所述第二应用显示所述视频流的所述一个或更多个帧的预览。
12.根据权利要求1所述的方法,还包括:
从所述第二应用切换到所述第一应用。
13.一种非暂时性计算机可读存储介质,其存储能够由一个或更多个处理器执行的多个指令,所述多个指令当由所述一个或更多个处理器执行时使所述一个或更多个处理器:
由在设备上执行的第一应用从在所述设备上执行的第二应用接收通信;
由所述设备显示所述第一应用的第一图形用户界面(GUI),其中,所述第一GUI包括由所述设备的一个或更多个视频信息捕获设备捕获的视频流,
由所述设备显示所述第二应用的第二图形用户界面(GUI),所述第二GUI提供用户可选选项,所述用户可选选项用于发起从所述第二应用到所述第一应用的所述通信;
响应于对在所述第二GUI上的所述用户可选选项的选择,将所述通信从所述第二应用发送到所述第一应用;
基于所述通信来识别脚本;以及
由所述第一应用执行所述脚本,该执行使一个或更多个效果连同所述视频流一起被输出;
其中,显示所述第一GUI包括将由所述设备显示的GUI从所述第二GUI切换到所述第一GUI。
14.根据权利要求13所述的非暂时性计算机可读存储介质,其中,所述脚本由所述第二应用的提供者创作,并且其中,所述第二应用的提供者不同于所述第一应用的提供者。
15.根据权利要求13所述的非暂时性计算机可读存储介质,其中,与所述第二应用相关联的数据被包括在由所述第一应用从所述第二应用接收的所述通信中。
16.根据权利要求13所述的非暂时性计算机可读存储介质,其中,所述多个指令当由所述一个或更多个处理器执行时还使所述一个或更多个处理器:
由所述设备从所述第一应用接收消息以退出所述第一应用;以及
响应于所述消息,将由所述设备显示的GUI从所述第一GUI改变为所述第二GUI。
17.一种用于使第三方能够将效果添加到应用的系统,包括:
一个或更多个处理器;以及
包括指令的非暂时性计算机可读介质,所述指令当由所述一个或更多个处理器执行时使所述一个或更多个处理器执行操作,所述操作包括:
由在所述系统上执行的第一应用从在所述系统上执行的第二应用接收通信;
基于所述通信来识别多个脚本;
显示所述第一应用的第一图形用户界面(GUI),其中,所述第一GUI包括由所述系统的一个或更多个视频信息捕获设备捕获的视频流,并且其中,所述第一GUI还包括多个可选表示,每个可选表示与所述多个脚本中的不同脚本相关联;
接收对所述多个可选表示中的可选表示的选择;
由所述设备显示所述第二应用的第二图形用户界面(GUI),所述第二GUI提供用户可选选项,所述用户可选选项用于发起从所述第二应用到所述第一应用的所述通信;
响应于对在所述第二GUI上的所述用户可选选项的选择,将所述通信从所述第二应用发送到所述第一应用;
识别与该可选表示相关联的脚本;以及
由所述第一应用执行所识别的脚本,该执行使一个或更多个效果连同所述视频流一起被输出;
其中,显示所述第一GUI包括将由所述设备显示的GUI从所述第二GUI切换到所述第一GUI。
18.根据权利要求17所述的系统,其中,所述非暂时性计算机可读介质还包括指令,这些指令当由所述一个或更多个处理器执行时使所述一个或更多个处理器执行包括以下动作的操作:
接收对所述多个可选表示中的不同可选表示的选择;
识别与所述不同可选表示相关联的不同脚本;以及
由所述第一应用执行所述不同脚本,该执行使一个或更多个效果连同所述视频流一起被输出。
CN201780092210.XA 2017-04-14 2017-04-17 用于使第三方能够将效果添加到应用的方法、介质和系统 Active CN110785982B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/488,238 US10698744B2 (en) 2017-04-14 2017-04-14 Enabling third parties to add effects to an application
US15/488,238 2017-04-14
PCT/US2017/028012 WO2018190884A1 (en) 2017-04-14 2017-04-17 Enabling third parties to add effects to an application

Publications (2)

Publication Number Publication Date
CN110785982A CN110785982A (zh) 2020-02-11
CN110785982B true CN110785982B (zh) 2022-05-13

Family

ID=60781508

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201780092210.XA Active CN110785982B (zh) 2017-04-14 2017-04-17 用于使第三方能够将效果添加到应用的方法、介质和系统

Country Status (2)

Country Link
EP (1) EP3389049B1 (zh)
CN (1) CN110785982B (zh)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104184791A (zh) * 2013-05-23 2014-12-03 奥多比公司 图像效果提取

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010004417A1 (en) * 1999-12-21 2001-06-21 Ageishi Narutoshi Video editing system
US7409700B1 (en) * 2000-11-03 2008-08-05 The Walt Disney Company System and method for enhanced broadcasting and interactive
KR101593993B1 (ko) * 2009-08-10 2016-02-26 삼성전자주식회사 웹 애플리케이션 간의 데이터 통신 장치 및 방법
US10248438B2 (en) * 2009-09-17 2019-04-02 Fluffy Spider Technologies Pty. Ltd. System and methods for a run time configurable user interface controller
US20130272679A1 (en) * 2012-04-12 2013-10-17 Mario Luis Gomes Cavalcanti Video Generator System
US8887178B1 (en) * 2012-10-23 2014-11-11 Google Inc. Method to customize native operating system views using web technologies in mobile devices

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104184791A (zh) * 2013-05-23 2014-12-03 奥多比公司 图像效果提取

Also Published As

Publication number Publication date
EP3389049A1 (en) 2018-10-17
CN110785982A (zh) 2020-02-11
EP3389049B1 (en) 2021-07-14

Similar Documents

Publication Publication Date Title
US11943486B2 (en) Live video broadcast method, live broadcast device and storage medium
CN107770626B (zh) 视频素材的处理方法、视频合成方法、装置及存储介质
KR20220128665A (ko) 온 디맨드로 프레임들을 렌더링하기 위한 비디오 생성 시스템
KR20220128664A (ko) 온 디맨드로 생성되는 비디오에 포함될 아바타들의 선택
CN111970571B (zh) 视频制作方法、装置、设备及存储介质
CN108846886B (zh) 一种ar表情的生成方法、客户端、终端和存储介质
KR20150104171A (ko) 분산 방식 스토리 리딩을 위한 음성 수정
US10897442B2 (en) Social media integration for events
US10698744B2 (en) Enabling third parties to add effects to an application
EP4246963A1 (en) Providing shared augmented reality environments within video calls
US11567638B2 (en) Method, system, and non-transitory computer-readable record medium for providing reputation badge for video chat
TW201545042A (zh) 暫態使用者介面元素
CN111880874A (zh) 媒体文件的分享方法、装置、设备及计算机可读存储介质
US20240152628A1 (en) Permission based media composition
KR20150068509A (ko) 메신저 프로그램에서의 이미지를 이용한 커뮤니케이션 방법, 이를 위한 장치 및 시스템
CN110781349A (zh) 用于短视频生成的方法、设备、客户端装置及电子设备
CN115668957A (zh) 音频检测和字幕呈现
US10965629B1 (en) Method for generating imitated mobile messages on a chat writer server
CN111125480A (zh) 背景音乐的播放方法、设备、客户端装置及电子设备
US10102395B2 (en) System and method for creating and transitioning to multiple facets of a social media object in a social network
US20230164298A1 (en) Generating and modifying video calling and extended-reality environment applications
CN111158802B (zh) 音频播放的方法、设备、客户端装置及电子设备
CN110785982B (zh) 用于使第三方能够将效果添加到应用的方法、介质和系统
CN116126177A (zh) 一种数据交互控制方法、装置、电子设备和存储介质
CN114666296A (zh) 多媒体内容生成方法、系统及计算机可读记录介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information

Address after: California, USA

Applicant after: Yuan platform Co.

Address before: California, USA

Applicant before: Facebook, Inc.

CB02 Change of applicant information
GR01 Patent grant
GR01 Patent grant