生成上下文相关媒体增强的制作方法

文档序号:13742481阅读:171来源:国知局
生成上下文相关媒体增强的制作方法

优先权要求

本申请要求2015年12月18日提交的第14/974,321号美国专利申请的优先权,在此要求该申请的优先权并且该申请在此全部引入作为参考。

在此公开的主题一般地涉及提供上下文相关媒体增强。具体地说,本公开涉及用于发布上下文相关媒体增强以便在用户界面上呈现的平台的系统和方法。



背景技术:

使用移动无线设备拍摄的数字照片和视频的数量日益多于使用专用数字照相机和基于胶片的照相机拍摄的照片。因此,越来越需要改进与移动无线数字摄影和摄像关联的体验。

附图说明

附图中的各个图只是例示本公开的示例实施例并且不应被视为限制范围,这些附图是:

图1是示出根据一个实施例的具有被配置为通过网络交换数据的客户机-服务器架构的网络系统的网络图;

图2是示出消息传送应用的一个示例实施例的框图;

图3是示出媒体覆盖(mediaoverlay)应用的一个示例实施例的框图;

图4a是示出基于用户的媒体覆盖发布模块的一个示例实施例的框图;

图4b示出基于用户的媒体覆盖发布模块的图形用户界面的一个示例;

图4c示出图4b的图形用户界面的操作的一个示例;

图4d示出基于用户的媒体覆盖的发布的一个示例;

图5a是示出基于商家的媒体覆盖发布模块的一个示例实施例的框图;

图5b示出公共地理位置的一个示例;

图5c示出基于商家的媒体覆盖发布模块的图形用户界面的一个示例;

图5d示出来自使用图5c的图形用户界面的第一商家的出价的一个示例;

图5e示出来自使用图5c的图形用户界面的第二商家的出价的一个示例;

图5f示出基于商家的媒体覆盖的操作的一个示例;

图6a是示出预定义媒体覆盖模块的一个示例实施例的框图;

图6b是示出具有实时数据内容的媒体覆盖的一个示例的图;

图6c是示出具有促销内容的媒体覆盖的一个示例的图;

图6d是示出可收集媒体覆盖的一个示例的图;

图6e是示出具有病毒式内容的媒体覆盖的一个示例的图;

图6f是示出具有音频内容的媒体覆盖的一个示例的图;

图7是示出基于用户的媒体覆盖发布模块的操作的一个示例实施例的交互图;

图8是示出基于商家的媒体覆盖发布模块的操作的一个示例实施例的交互图;

图9是示出基于用户的媒体覆盖发布模块的操作的一个示例实施例的流程图;

图10是示出基于商家的媒体覆盖发布模块的操作的一个示例实施例的流程图;

图11是示出实时事件模块的操作的一个示例实施例的流程图;

图12是示出社交网络模块的操作的一个示例实施例的流程图;

图13是示出促销模块的操作的一个示例实施例的流程图;

图14是示出收集模块的操作的一个示例实施例的流程图;

图15是示出渐进使用模块的操作的一个示例实施例的流程图;

图16是示出病毒式使用模块的操作的一个示例实施例的流程图;

图17是示出可动作模块的操作的一个示例实施例的流程图;

图18是示出媒体覆盖发布模块的一个示例实施例的流程图;

图19是示出根据某些示例实施例的能够安装在机器上的软件架构的一个示例的框图;

图20示出根据一个示例实施例的形式为计算机系统的机器的图形表示,在该计算机系统内能够执行一组指令以导致所述机器执行在此讨论的任何一种或多种方法;

图21是示出根据一个示例实施例的移动设备的框图;

图22是示出客户机设备的操作方法的一个示例实施例的流程图。

具体实施方式

尽管参考特定示例实施例描述本公开,但显而易见的是,可以对这些实施例进行各种修改和改变而不偏离本公开的更广泛的精神和范围。因此,说明书和附图被视为例示性的而不是限制性的。

向图像(例如,照片或视频)中添加标签、图画和其它插图(例如,媒体覆盖)为用户在存储或向更广泛的受众发布之前个性化、补充和增强这些图像提供一种引人注目的方式。一个示例实施例设法向用户提供可以应用于图像的一组媒体覆盖(或其它增强和加强)。可以基于与该图像关联的位置和其它上下文信息(例如环境噪声或环境声音(音频)、与该图像关联的特定对象等),确定示例形式为媒体覆盖的该组增强和加强。可以向用户呈现所述媒体覆盖,以便基于所确定的该图像的位置或该图像的内容进行选择并且与图像相组合。例如,如果用户在音乐会上通过移动设备拍摄照片或视频,则可以向用户呈现指示音乐会事件的名称和当前时间演奏的乐队的媒体覆盖,以便选择并且覆盖在照片或视频上。在另一个示例中,如果用户在迪斯尼乐园开始拍摄(或已拍摄)照片或视频,则向用户呈现以特定样式指示名称“迪斯尼乐园”的图像覆盖。还可以向用户呈现其它迪斯尼主题的图像覆盖。图像覆盖的呈现可以响应于用户在移动设备的屏幕上完成手势(例如,滑动操作、长按)。用户然后能够选择图像覆盖并且将其应用于图像(例如,用户在选择之前拍摄的图像,或者在选择之后拍摄的图像),以这种方式个性化和增强图像。

在一个示例实施例中,可以在检测到特定事件时自动向用户呈现媒体覆盖。例如,当用户开始拍摄(或已拍摄)照片或视频时,照片或视频中的内容(例如,音频、对象、位置等)能够触发向用户显示一个或多个媒体覆盖以供选择。例如,用户可能正在拍摄包括音频的视频。可以从该音频中标识特定的音频轨道,并且可以创建包括诸如以下信息的媒体覆盖:音频轨道名称、标题、艺术家姓名、专辑插图等(作为示例)。可以向用户呈现该媒体覆盖以便与用户已拍摄的视频内容或其它内容合并。

在一个示例实施例中,第三方实体(例如,商家、餐厅、个人等)可以设法使覆盖被包括在为了特定地理位置处的用户选择而呈现的集合中。例如,位于旧金山特定位置处的餐厅可能希望将其餐厅名称和徽标包括在向用户呈现的一组媒体覆盖中,以便用于增强由餐厅附近的用户拍摄的照片。根据一个示例实施例,此类第三方实体可以出价(或者以其他方式购买机会)以使特定媒体覆盖包括在向用户呈现的集合中以增强特定图像。下面描述能够用于在技术上实现上述图像增强技术和能力的各种系统和方法。

更具体地说,描述媒体覆盖发布应用的各种示例。媒体覆盖发布应用在服务器处操作,并且基于地理定位(也被称为地理位置)和其它上下文信息(例如,内容项的特征)生成包括内容的媒体覆盖。其它媒体增强或加强可以包括音频和视觉内容或视觉效果,可以在移动设备处应用它们以便增强内容或媒体项(例如,照片或视频)。媒体覆盖发布应用包括基于用户的媒体覆盖发布平台和基于商家的媒体覆盖发布平台。

在基于用户的媒体覆盖发布平台中,媒体覆盖发布应用可以提供用于使用户上传内容并在地图上选择地理位置的图形用户界面(gui)。例如,用户可以上传徽标并在地图上定义边界,以便标识与徽标关联的特定地理位置。一旦用户提交了徽标并标识了特定地理位置,媒体覆盖发布应用就可以生成包括与所述特定地理位置关联的所述徽标的媒体覆盖。因此,位于所述特定地理位置内的移动设备有权访问该媒体覆盖。

在基于商家的媒体覆盖发布平台中,媒体覆盖发布应用可以提供用于使商家上传内容、在地图上选择地理位置、以及提交对应地理位置的出价的gui。出价过程可以确定具有最高出价金额的商家。该商家然后可以在商家的选定地理位置处排除来自其它商家的媒体覆盖的发布。因此,最高出价商家的媒体覆盖可以是能够由位于该选定地理位置处的移动设备访问的唯一媒体覆盖。

在其它示例中,媒体覆盖包括上下文相关数据,例如当前温度、移动设备的地理位置的标识(例如,威尼斯海滩)、与移动设备的地理位置关联的实时事件的名称、或者企业名称。

在某些实施例中,服务器处的媒体覆盖应用向移动设备提供实时事件媒体覆盖。实时事件媒体覆盖包括与移动设备的地理位置处的实时事件(例如音乐会事件,体育事件或颁奖典礼)关联的实时事件数据。例如,参加足球比赛的用户能够访问包括足球比赛的当前得分的体育媒体覆盖。在另一个示例中,参加奥斯卡颁奖典礼的用户能够访问包括奥斯卡获奖者姓名的娱乐媒体覆盖。

在其它实施例中,服务器处的媒体覆盖应用向移动设备提供社交网络媒体覆盖。社交网络媒体覆盖可以基于移动设备的用户的社交网络活动。例如,如果用户通过社交网络服务关注诸如麦当劳之类的品牌,并且用户的移动设备位于麦当劳餐厅处,则用户的移动设备能够访问麦当劳媒体覆盖。位于同一家餐厅处的其它用户将不会访问麦当劳媒体覆盖,除非他们也通过社交网络服务关注麦当劳。在另一个示例中,可以修改向位于麦当劳餐厅处的用户呈现媒体覆盖的顺序,以使得麦当劳媒体覆盖针对通过社交网络服务关注麦当劳的用户提供更高的服务。

在进一步的实施例中,服务器处的媒体覆盖应用向移动设备提供促销媒体覆盖。促销媒体覆盖可以基于来自商家的促销。例如,每次移动设备的用户走进麦当劳餐厅并且购买商品时,媒体覆盖可以用于通过随机选择媒体覆盖在麦当劳实现monopolytm游戏。所述媒体覆盖可以用于获得能够兑换奖品的monopoly拼图块。

在某些实施例中,服务器处的媒体覆盖应用使移动设备能够收集媒体覆盖。例如,移动覆盖应用向移动设备提供对收集的媒体覆盖的永久访问。收集的媒体覆盖可以存储在移动设备的收集组合(portfolio)中。移动设备可以随时访问收集组合中的任何媒体覆盖。

在某些实施例中,服务器处的媒体覆盖应用向移动设备提供历史媒体覆盖。历史媒体覆盖可以基于由移动设备的用户访问的历史场所的地理位置。例如,当移动设备位于对应七大奇观地理位置之一处时,移动设备被授予与世界七大奇观之一关联的唯一媒体覆盖。

在另一个实施例中,服务器处的媒体覆盖应用向移动设备提供渐进使用(progressiveuse)媒体覆盖。渐进使用媒体覆盖中的内容根据先前已使用渐进使用媒体覆盖的人数而改变。

在另一个示例实施例中,用户能够“购买”地理位置且购买的地理位置持续预定时间量,并且选择与该地理位置关联的媒体覆盖。例如,大学能够购买和选择与其校园的地理位置关联的特定媒体覆盖。

在另一个示例实施例中,媒体覆盖应用向移动设备提供病毒式(viral)媒体覆盖。例如,当移动设备的用户在地理位置处获得病毒式媒体覆盖时,该用户能够将病毒式媒体覆盖发送到位于原始用户的地理位置之外的移动设备。位于原始用户的地理位置之外的移动设备的用户能够在下一个小时内使用病毒式媒体覆盖。这些用户还可以将病毒式媒体覆盖转发给其它用户。

在另一个示例实施例中,媒体覆盖应用向移动设备提供可动作(actionable)媒体覆盖。例如,可动作媒体覆盖能够是用于打开移动设备中的浏览器页面以便获得优惠券的链接。可动作媒体覆盖能够触发移动设备的其它功能。

图1是示出根据一个实施例的具有被配置为通过网络交换数据的客户机-服务器架构的网络系统100的网络图。例如,网络系统100可以是消息传送系统,其中客户机可以在网络系统100内传送和交换数据。数据可以涉及与网络系统100及其用户关联的各种功能(例如,发送和接收文本和媒体通信、确定地理位置)和方面(例如,媒体覆盖的发布、媒体覆盖的管理)。尽管网络系统100在此被例示为具有客户机-服务器架构,但其它实施例可以包括其它网络架构,例如对等或分布式网络架构。

在一个示例中,数据交换平台102包括消息传送应用120和媒体覆盖应用122,并且可以经由网络104(例如,因特网)向一个或多个客户机提供服务器侧功能。一个或多个客户机可以包括使用网络系统100(并且更具体地说,消息传送应用120和媒体覆盖应用122)来通过网络104交换数据的用户。这些操作可以包括传输、接收(传送)以及处理去往、来自和关于网络系统100的内容和用户的数据。数据可以包括但不限于诸如以下各项的内容和用户数据:用户简档、消息传送内容、消息传送属性、媒体属性、客户机设备信息、地理位置信息、媒体覆盖内容、消息传送内容持久性条件、社交网络信息、以及实时事件数据信息等等。

在各种实施例中,网络系统100内的数据交换可以取决于通过一个或多个客户机或用户界面(ui)可用的用户选择的功能。ui可以与客户机机器关联,客户机例如包括使用编程客户机106(例如客户机应用)的客户机设备110、112。编程客户机106可以经由应用服务器118与消息传送应用120和媒体覆盖应用122通信。客户机设备110、112包括具有无线通信组件、以及用于捕获各种形式的媒体(包括照片和视频)的音频和光学组件的移动设备。客户机设备110和112可以进一步包括全球定位系统(gps)处理器107。

具体转到消息传送应用120和媒体覆盖应用122,应用程序接口(api)服务器114耦合到一个或多个应用服务器118,并且提供到一个或多个应用服务器118的编程接口。应用服务器118托管消息传送应用120和媒体覆盖应用122。应用服务器118耦合到促进访问一个或多个数据库126的一个或多个数据库服务器124。

api服务器114经由各种用户输入工具传送和接收有关消息和媒体覆盖的数据等。例如,api服务器114可以将数据发送到在另一个客户机机器(例如,客户机设备110、112或第三方服务器)上运行的应用(例如,编程客户机106)并且从该应用接收数据。

在一个示例实施例中,消息传送应用120提供消息传送机制以供客户机设备110、112的用户发送包括文本和媒体内容(例如图片和视频)的消息。客户机设备110、112能够在有限时段内访问和查看来自消息传送应用120的消息。例如,客户机设备110能够经由消息传送应用120将消息发送到客户机设备112。一旦客户机设备112访问了来自消息传送应用120的消息,在从客户机设备112开始查看消息的时间起经过预定义持续时间之后,消息被删除。下面针对图2更详细地描述消息传送应用120的组件。

在一个示例实施例中,媒体覆盖应用122提供一种用于针对由消息传送应用120处理的消息来操作和发布媒体覆盖的系统和方法。媒体覆盖应用122基于内容项(例如,照片或视频)的特征或客户机设备110的地理位置来向客户机设备110提供媒体覆盖。在另一个示例中,媒体覆盖应用122基于诸如客户机设备110的用户的社交网络信息之类的其它信息,向客户机设备110提供媒体覆盖。

媒体覆盖可以包括音频和视觉内容以及视觉效果。音频和视觉内容的示例包括图片、文本、徽标、动画、以及声音效果。视觉效果的一个示例包括颜色覆盖。音频和视觉内容或视觉效果能够应用于客户机设备110处的媒体内容项(例如,照片)。例如,媒体覆盖包括能够覆盖在客户机设备110处生成的照片之上的文本。在另一个示例中,媒体覆盖包括位置覆盖的标识(例如,威尼斯海滩)、实时事件的名称、商家覆盖的名称(例如,海滩咖啡屋)、或者歌曲的名称。在另一个示例中,媒体覆盖应用122使用客户机设备110的地理位置来识别包括客户机设备110的地理位置处的商家的名称的媒体覆盖。媒体覆盖可以包括与商家关联的其它标记。标记的示例包括与商家相关的徽标和其它图片。媒体覆盖可以存储在数据库(多个)126中,并且通过数据库服务器124被访问。

在一个示例实施例中,媒体覆盖应用122包括基于用户的发布平台,所述基于用户的发布平台使用户能够在地图上选择地理位置,并且上传与选定地理位置关联的内容。用户还可以指示能够提供特定媒体覆盖的其它情况。媒体覆盖应用122生成包括所上传的内容的媒体覆盖,并将所上传的内容与选定地理位置关联。

在另一个示例实施例中,媒体覆盖应用122包括基于商家的发布平台,所述基于商家的发布平台使商家能够经由出价过程选择与地理位置关联的特定媒体覆盖。例如,媒体覆盖应用122将最高出价商家的媒体覆盖与对应地理位置关联,所述关联持续预定义时间量。下面针对图3更详细地描述媒体覆盖应用122的组件。

图2是示出消息传送应用120的一个示例实施例的框图。可以在专用或共享服务器机器(未示出)上托管消息传送应用120,这些服务器机器在通信上耦合以便在服务器机器之间实现通信。消息传送应用120和媒体覆盖应用122本身在通信上彼此耦合(例如,经由适当的接口)并且耦合到各种数据源,以便允许在消息传送应用120与媒体覆盖应用122之间传递信息,或者以便允许消息传送应用120和媒体覆盖应用122共享和访问公共数据。此外,消息传送应用120和媒体覆盖应用122可以经由数据库服务器(多个)124访问一个或多个数据库126。

消息传送应用120负责在编程客户机106的用户之间生成和传送消息。消息传送应用120可以使用多个消息传送网络和平台中的任何一者将消息传送给用户。例如,消息传送应用120可以经由有线(例如,因特网)、普通老式电话服务(pots)、或者无线网络(例如,移动、蜂窝、wifi、长期演进(lte)、蓝牙),使用电子邮件、即时消息(im)、短消息服务(sms)、文本、传真、或者语音(例如,ip语音(voip))消息来传送消息。

在一个示例实施例中,消息传送应用120包括媒体接收器模块202、媒体覆盖应用接口204、消息生成器模块206、短暂消息访问模块208、以及短暂消息存储模块210。媒体接收器模块202接收来自客户机设备110的编程客户机106的消息。消息可以包括文本、照片或视频的组合。媒体接收器模块202还接收与消息关联的持久性元数据。持久性元数据定义可以查看消息的时间长度。例如,客户机设备110的用户可以指定消息是持久的、或者仅能够被查看或访问用户确定的时间量(例如,十秒)。媒体覆盖应用接口204与媒体覆盖应用122通信,以便访问和取回与消息中的元数据关联的媒体覆盖。消息生成器模块206将媒体覆盖应用于来自编程客户机106的消息以便创建短暂消息,并且使用短暂消息存储模块210临时存储该短暂消息。

短暂消息访问模块208向消息的接收者通知短暂消息的可用性。短暂消息访问模块208从接收者接收用于访问短暂消息的请求,并且导致在持久性元数据中指定的最大持续时间内持续在接收者的客户机设备上显示短暂消息。一旦接收者查看消息达最大持续时间,短暂消息访问模块208就导致接收者的客户机设备停止显示该短暂消息,并且从短暂消息存储模块210中删除该短暂消息。

图3是示出媒体覆盖应用122的一个示例实施例的框图。媒体覆盖应用122包括媒体覆盖发布模块304和媒体覆盖引擎306。

媒体覆盖发布模块304提供媒体覆盖的发布平台。在一个示例实施例中,媒体覆盖发布模块304包括基于用户的媒体覆盖发布模块314和基于商家的媒体覆盖发布模块316。基于用户的媒体覆盖发布模块314使客户机设备(移动或web客户机)的用户能够上传内容并选择用于基于用户的媒体覆盖的地理位置。基于商家的媒体覆盖发布模块316使商家能够上传内容、选择地理位置、以及提交用于基于商家的媒体覆盖的出价金额。下面针对图4a更详细地描述基于用户的媒体覆盖发布模块314。下面针对图5a更详细地描述基于商家的媒体覆盖发布模块316。

媒体覆盖引擎306基于内容项的特征或客户机设备的地理位置,生成和提供媒体覆盖。在一个示例实施例中,媒体覆盖引擎306包括预定义媒体覆盖模块318、基于用户的媒体覆盖模块320、以及基于商家的媒体覆盖模块322。媒体覆盖可以基于来自预定义媒体覆盖模块318的预定义媒体覆盖、来自基于用户的媒体覆盖模块320的基于用户的媒体覆盖、以及来自基于商家的媒体覆盖模块322的基于商家的媒体覆盖。

预定义媒体覆盖模块318向客户机设备提供一组预定义媒体覆盖中的一个预定义媒体覆盖。下面针对图6a更详细地描述预定义媒体覆盖的示例。

基于用户的媒体覆盖模块320向客户机设备提供由基于用户的媒体覆盖发布模块314生成的基于用户的媒体覆盖。基于商家的媒体覆盖模块322向客户机设备提供由基于商家的媒体覆盖发布模块316生成的基于商家的媒体覆盖。

图4a是示出基于用户的媒体覆盖发布模块314的一个示例实施例的框图。基于用户的媒体覆盖发布模块314包括基于用户的内容上传模块402、基于用户的地理位置选择模块404、基于用户的持续时间选择模块406、以及基于用户的发布引擎408。

基于用户的内容上传模块402接收来自用户的上传内容。内容可以包括诸如照片或视频之类的媒体项。基于用户的内容上传模块402可以在web服务器上实现,以便允许用户使用如图4b中所示的gui上传内容。

基于用户的地理位置选择模块404接收来自用户的地理位置标识信息以便标识选定地理位置。地理位置标识信息可以包括地址、已经与地址关联的机构的标识、全球定位系统(gps)坐标、或者地理边界。例如,地址可以包括街道号码、街道地址、城市、州、以及国家。用户还可以基于现有机构标识位置。例如,地理位置信息可以包括威尼斯海滩的“餐厅x”。地理边界标识地区或区域。例如,地理边界可以定义位于地址、兴趣点、或者现有机构的预定半径内的区域。

在一个示例实施例中,地理位置标识信息可以被嵌入从客户机设备到基于用户的地理位置选择模块404的消息或通信中。例如,客户机设备的用户可以在威尼斯海滩拍摄日落照片,并且将照片发送到基于用户的地理位置选择模块404,基于用户的地理位置选择模块404然后可以从与日落照片关联的元数据中提取地理位置属性或标识信息。基于用户的地理位置选择模块404可以在web服务器上实现,以便向用户呈现网页形式的gui,该gui允许用户选择内容的地理位置,如图4c中所示。

基于用户的持续时间选择模块406接收来自用户的与上传内容和选定地理位置相关的持续时间信息。持续时间信息可以标识上传内容与选定地理位置关联的时段。在经过该时段之后,上传内容不再与选定地理位置关联。例如,如果持续时间指示二十四小时,则媒体覆盖引擎306使基于用户的媒体覆盖可用于位于选定地理位置处的客户机设备。在经过二十四小时之后,该选定地理位置处的客户机设备不再能访问该基于用户的媒体覆盖。

其它实施例包括周期性持续时间信息或特定持续时间信息。例如,对于周期性持续时间信息,每星期日发布基于用户的媒体覆盖并且使其在选定地理位置处可用(例如,在宗教服务日可用的宗教相关媒体覆盖)。对于特定持续时间信息,在特定假日或日期(例如,感恩节周末、元旦)发布基于用户的媒体覆盖并且使其在选定地理位置处可用。

基于用户的发布引擎408生成基于用户的媒体覆盖,所述基于用户的媒体覆盖将来自基于用户的内容上传模块402的上传内容与来自基于用户的地理位置选择模块404的选定地理位置相关联。基于用户的发布引擎408在使用基于用户的持续时间选择模块406标识的持续时间内,持续将基于用户的媒体覆盖发布到位于选定地理位置内的客户机设备。

在另一个示例实施例中,基于用户的发布引擎408确定针对同一选定地理位置,在同一时段期间不存在其它基于用户的媒体覆盖。基于用户的发布引擎408可以针对同一选定地理位置,在任何时候仅发布一个基于用户的媒体覆盖。在另一个示例实施例中,可以针对同一选定地理位置,对任何时候可用的基于用户的媒体覆盖的数量设置限制。因此,基于用户的发布引擎408可以针对同一选定地理位置,在任何时候发布有限数量的基于用户的媒体覆盖并且使其可用。在另一个示例实施例中,基于用户的媒体覆盖可以仅被发布给进行上传的用户的联系人或“朋友”。

图4b示出用于上传内容并且用于在地图上选择地理区域的gui410的一个示例。gui410包括地图412、上传图像框414、选择位置按钮416、覆盖标题框418、以及提交按钮420。上传图像框414使用户能够将内容(例如,图片)上传到基于用户的内容上传模块402。选择位置按钮416使用户能够通过在地图412上绘制边界或者通过输入地址或邮政编码来标识地理位置。将所标识的地理位置提交给基于用户的地理位置选择模块404。覆盖标题框418使用户能够提交媒体覆盖的名称。用户可以通过点击提交按钮420,提交内容和所请求的地理位置。一旦提交了内容和所请求的地理位置,基于用户的发布引擎408就生成包括用于所标识的地理位置的上传内容的基于用户的媒体覆盖。

图4c示出地图412上的用户标识的边界点424、426、428和430定义地理位置422的一个示例。用户已上传在上传图像框414中显示的太阳的图片415。用户已在覆盖标题框418中输入内容的标题“享受阳光!”。用户可以通过点击提交按钮420来提交太阳的图片415和地理位置422。一旦提交了太阳的图片415和地理位置422,基于用户的发布引擎408就生成基于用户的媒体覆盖。

图4d示出基于用户的媒体覆盖的发布的一个示例。媒体覆盖应用122检测到用户1816的移动设备1802位于地理位置422处。媒体覆盖应用122取回与地理位置422对应的基于用户的媒体覆盖440,并且将基于用户的媒体覆盖440发布到移动设备1802。将基于用户的媒体覆盖440应用于移动设备1802的显示器1804中的媒体内容1806。

图5a是示出基于商家的媒体覆盖发布模块316的一个示例实施例的框图。基于商家的媒体覆盖发布模块316包括基于商家的内容上传模块502、基于商家的地理位置选择模块504、基于商家的持续时间选择模块506、基于商家的出价模块508、以及基于商家的发布引擎510。

基于商家的内容上传模块502接收来自商家的内容。内容可以包括诸如图片、视频、图形、或者文本之类的媒体项。基于商家的内容上传模块502可以在web服务器上实现,以便允许商家使用网页上传内容。

基于商家的地理位置选择模块504接收来自商家的地理位置标识信息以便标识选定地理位置。地理位置标识信息可以包括机构的地址、已经与地址关联的机构的标识、gps坐标、或者地理边界。例如,机构的地址可以包括街道号码、街道地址、城市、州、以及国家。商家还可以基于现有机构标识位置。例如,地理位置信息可以包括威尼斯海滩的“餐厅x”。地理边界标识地区或区域。例如,地理边界可以定义位于地址、兴趣点、或者现有机构的预定半径内的区域。商家可以通过在地图上绘制虚拟围栏来进一步定义地理边界。基于商家的地理位置选择模块504可以在web服务器上实现,以便允许商家在网页中的地图上绘制边界。

基于商家的持续时间选择模块506接收来自商家的与上传内容和选定地理位置相关的持续时间信息。持续时间可以标识上传内容与选定地理位置关联的时段。一旦经过该时段,上传内容就不再与选定地理位置关联。其它实施例包括周期性持续时间信息或特定持续时间信息。例如,对于周期性持续时间信息,每星期六晚上发布基于商家的媒体覆盖或使其在选定地理位置(例如,两个所标识的街道的拐角)处可用(例如,每星期六晚上可用的夜总会相关媒体覆盖)。对于特定持续时间信息,在特定日期(例如,派对事件日期)发布选定媒体覆盖或使其在选定地理位置处可用。

基于商家的出价模块508提供接口以使商家能够提交用于公共地理位置的出价金额。公共地理位置例如可以包括相同的街道地址。例如,在一个购物中心,数个企业可能具有相同的街道地址,但具有不同的套房号码。图5b示出公共地理位置516的一个示例。商家a地理位置边界512与商家b地理位置边界514重叠,以便定义公共地理位置516。因此,商家a和b可以提交与公共地理位置516对应的相应出价。在一个示例实施例中,基于商家的地理位置选择模块504从由商家选择的地理位置确定公共地理位置。基于商家的出价模块508标识针对公共地理位置516的最高出价者,并且向最高出价者授予在预定义时间量内排除来自公共地理位置516的其它基于商家的媒体覆盖的能力。

在另一个示例实施例中,基于商家的出价模块508基于出价金额的对应持续时间信息,按比例分摊出价金额。例如,商家a针对特定地理位置提交一天100美元的出价金额。商家b针对同一特定地理位置提交两天160美元的出价金额。基于商家的出价模块508可以将来自商家b的出价按比例分摊到一天(例如,80美元),并且比较同一时段(例如,一天)内的两个出价以便确定最高出价者。

基于商家的发布引擎510生成将最高出价者的上传内容与由最高出价者标识的地理位置相关联的基于商家的媒体覆盖。基于商家的发布引擎510在使用基于商家的持续时间选择模块506标识的持续时间内,持续将基于商家的媒体覆盖发布到位于由最高出价者选择的地理位置处的客户机设备。从发布中排除来自公共地理位置516中的其它商家的基于商家的媒体覆盖。在另一个实施例中,可以针对可用于公共地理位置516的基于商家的媒体覆盖的数量设置配额。例如,基于商家的发布引擎510可以针对公共地理位置516发布有限数量的基于商家的媒体覆盖(例如,最多两个基于商家的媒体覆盖)并且使其可用。

在另一个示例实施例中,基于商家的发布引擎510形成将最高出价者的上传内容与由最高出价者选择的地理位置相关联的优先关系。例如,可以基于来自基于商家的出价模块508的结果,操纵媒体覆盖在客户机设备110处的显示顺序。具有最高出价的商家的媒体覆盖可以被优先考虑,并且首先在客户机设备110处被显示。在最高出价者的媒体覆盖之后,可以在客户机设备110处显示来自其它商家的媒体覆盖。在另一个示例实施例中,商家可以能够对其所在的所有位置进行出价。因此,连锁餐厅可以能够在其每个连锁餐厅位置处发布其媒体覆盖(多个)。

图5c示出用于上传内容并且用于在地图上选择地理位置的gui520的一个示例。gui520包括地图522、上传图像框524、选择位置按钮526、覆盖标题框528、出价金额输入框530、活动长度输入框532、以及提交按钮534。上传图像框524使商家能够将内容(例如,图片、视频、或者动画)上传到基于商家的内容上传模块502。选择位置按钮526使商家能够通过在地图522上绘制边界或者通过输入地址或邮政编码来标识地理位置。覆盖标题框528使商家能够提交媒体覆盖的名称。出价金额输入框530使商家能够输入用于所标识的地理位置的出价金额。活动长度输入框532使商家能够指定其中上传的内容与所标识的地理位置相关联的活动的长度。商家可以通过点击提交按钮534,提交上传的内容和输入的信息。

图5d示出商家a已在地图522上标识边界点542、544、546和548以便定义地理位置540的一个示例。商家a已上传在上传图像框524中显示的图片525。商家a已在覆盖标题框528中输入标题“咖啡店a”,在出价金额输入框530中输入出价金额300美元,并且在活动长度输入框532中输入活动长度30天。商家a通过点击提交按钮534来提交图片525、所请求的地理位置540、以及其它输入的信息。基于商家的发布引擎510针对商家a生成媒体覆盖。

图5e示出另一个商家(商家b)已在地图522上标识边界点552、554、556和558以便定义地理位置550的一个示例。商家b已上传在内容上传框524中显示的图片527。商家b已在覆盖标题框528中输入标题“咖啡店b”,在出价金额输入框530中输入出价金额500美元,并且在活动长度输入框532中输入活动长度30天。商家b可以通过点击提交按钮534,提交图片527、所请求的地理位置550、出价金额、以及活动长度。基于商家的发布引擎510生成用于商家b的媒体覆盖。

图5f是示出基于出价过程选择的基于商家的媒体覆盖的一个示例的图。商家a的地理位置540和商家b的地理位置550在公共地理位置545处重叠。用户1816位于公共地理位置545处,并且使用移动设备1802在移动设备1802的显示器1804中生成媒体内容1806(例如,用户1816拍摄照片)。具有用于公共位置545的最高出价的商家的媒体覆盖被发布到移动设备1802。在本示例中,商家b出价高于商家a。因此,提供商家b的媒体覆盖560,并且将其显示在显示器1804中的媒体内容1806之上。媒体覆盖560包含来自商家b的上传内容。此外,当前示例实施例的上下文中的“商家”不仅可以包括参与商品交易或销售的实体,而且还可以包括任何其它实体,包括个人、大学、非营利组织、学生组织、俱乐部等。

图6a是示出预定义媒体覆盖模块318的一个示例实施例的框图。预定义媒体覆盖模块318例如包括实时事件模块602、社交网络模块604、促销模块606、收集模块608、渐进使用模块610、病毒式使用模块612、可动作模块614、历史感知模块616、以及音频模块618。

实时事件模块602基于实时事件信息生成媒体覆盖。实时事件信息可以涉及与对应地理位置关联的体育事件的实时比赛得分、或者与对应地理位置关联的娱乐(例如,音乐会)或社交事件相关的实时新闻事件。例如,客户机设备110的用户参加体育场处的实时体育事件(例如,比赛)。因此,来自客户机设备110的媒体元数据可以使用日期和时间标识体育场的位置。实时事件模块602使用该信息搜索与体育馆的位置、日期和时间关联的实时事件。实时事件模块602取回与体育场处的实时体育事件关联的当前或近乎当前的比赛得分(例如,经由espnapi)。实时事件模块602还可以取回与实时体育事件关联的徽章或队徽。因此,实时事件模块602基于涵盖实时体育事件的新闻源来生成包含最新得分的媒体覆盖。

在另一个示例中,客户机设备110的用户参加场所处的实时社交事件。同样,媒体元数据使用日期和时间标识场所的位置。实时事件模块602使用该信息从诸如社交网络服务器或新闻媒体服务之类的源中,搜索与场所的位置、日期、以及时间关联的实时事件。实时事件模块602取回与场所处的实时社交事件关联的新闻源。因此,实时事件模块602基于从与场所处的实时社交事件关联的新闻源中取回的新闻,生成包含信息或内容的媒体覆盖。

社交网络模块604基于客户机设备110的用户的社交网络信息来生成媒体覆盖。社交网络信息可以包括从社交网络服务提供方取回的社交网络数据。社交网络数据可以包括用户的简档数据、用户的“喜好”、用户关注的机构、用户的朋友、以及用户的帖子等等。例如,如果用户已将他自己标识为餐厅的粉丝或者向社交网络服务提供方指示对餐厅的“喜好”,则与该餐厅关联的媒体覆盖可以可用于餐厅位置处的该用户。在另一个示例中,在用户的客户机设备110中显示媒体覆盖的排序或优先级可以基于用户的简档或用户在餐厅“签到”的次数。

在另一个示例实施例中,媒体覆盖可以被限制并且仅可用于客户机设备110的用户和用户的社交网络(例如,不同类别的朋友或其它用户)。因此,用户可以将媒体覆盖转发给他的朋友。

促销模块606生成用于促销(例如,游戏、竞赛、抽奖)的媒体覆盖。例如,可以生成一组唯一媒体覆盖。当客户机设备110在与媒体覆盖关联的预定义位置时,或者当在由用户拍摄的照片或视频中识别到对象(例如,名称、标志、产品等)时,可以向客户机设备110提供所述一组唯一媒体覆盖中的一个媒体覆盖。例如,用户可以访问快餐店。来自客户机设备110的媒体元数据标识快餐店的位置。促销模块606从所述一组唯一媒体覆盖中取回一个唯一媒体覆盖,并且向客户机设备110提供该唯一媒体覆盖。在已向客户机设备110提供该唯一媒体覆盖之后,促销模块606可以从所述一组唯一媒体覆盖中删除该唯一媒体覆盖。在另一个实施例中,在已向其它客户机设备提供该唯一媒体覆盖达预定义次数之后,促销模块606从所述一组唯一媒体覆盖中删除该唯一媒体覆盖。

在另一个示例中,可以基于在另一个应用中的出现(例如,经由api传送到媒体覆盖应用122)生成促销媒体覆盖。例如,当用户完成视频游戏中的级别时,媒体覆盖可以是提供给客户机设备110或者可用于用户的视频游戏中的角色的图像。媒体覆盖可以可用于单次使用、多次使用、在一个时段内可用、或者无限期地可用。

在另一个示例中,媒体覆盖可以被提供给客户机设备110,或者基于用户已与媒体覆盖应用链接的另一个帐户(例如,经由与媒体覆盖应用关联的帐户)而可用于用户。例如,用户可能具有xbox帐户,其链接到针对媒体覆盖应用的用户帐户。用户可以是第一用户,并且第一用户可以在xbox上打败第二用户(例如,玩足球游戏)。xbox上的游戏或应用可以将第一用户在xbox上打败第二用户的事实传送到媒体覆盖应用122(例如,经由api)。可以生成媒体覆盖,并且将其提供给客户机设备110或者使其可用于第一用户,该媒体覆盖包括关于第一用户打败第二用户的信息。例如,该媒体覆盖可以包括第一用户打败第二用户的事实、得分、第一用户对第二用户的整体记录等。

在另一个示例中,用户可能已将飞行常客帐户(例如,美国航空公司帐户)链接到媒体覆盖应用。当用户正在登机飞行或者在与飞行常客帐户关联的航班上(例如,在从lax到jfk的美国航空公司10号航班上)时,用户可以接收与该航班关联的媒体覆盖。例如,用户可以接收包括航空公司徽标、航班路线、出发和到达时间、出发和到达城市(例如,洛杉矶和纽约)的装饰图像等的媒体覆盖。

媒体覆盖包括与游戏或促销相关的内容。在另一个示例中,媒体覆盖可以包括基于游戏或促销调整的动态内容。例如,动态内容可以包括游戏或促销的剩余媒体覆盖的当前数量。来自促销模块606的媒体覆盖可以由客户机设备110“收集”。例如,客户机设备110可以将媒体覆盖存储在客户机设备110处的集合中。可以在收集一组预定义媒体覆盖的每个覆盖时兑换奖品。

收集模块608生成可收集媒体覆盖。例如,向客户机设备110提供与客户机设备110的地理位置关联的媒体覆盖。媒体覆盖可以由客户机设备110收集,并且永久地可用于客户机设备110。客户机设备110可以将所收集的媒体覆盖存储在客户机设备110的收集文件夹中。

渐进使用模块610生成具有基于媒体覆盖的使用次数而改变的动态内容的媒体覆盖。例如,媒体覆盖可以被设置为被使用有限次数。每次向客户机设备提供媒体覆盖时,调整媒体覆盖的内容。例如,媒体覆盖可以包括筹款进度条,其中每次使用媒体覆盖时,该条的水平上升。媒体覆盖中的动态内容可以包括显示媒体覆盖的剩余使用次数的倒计时。

病毒式使用模块612生成可以被转发到与媒体覆盖关联的地理位置之外的其它用户的媒体覆盖。例如,客户机设备110基于客户机设备110的地理位置来接收媒体覆盖。客户机设备110可以将媒体覆盖发送到客户机设备110的地理位置之外的客户机设备112。所转发的媒体覆盖可以在预定义时间限制(例如,一小时)内由客户机设备112使用。同样,客户机设备112可以将媒体覆盖转发到客户机设备110的地理位置之外的其它客户机设备以便在预定义时间限制内使用。

可动作模块614使用与媒体覆盖的内容项关联的动作来生成媒体覆盖。例如,媒体覆盖可以启动客户机设备110的浏览器,并且在浏览器中打开预定网站。在另一个实施例中,媒体覆盖能够在客户机设备110处打开其它功能(例如,支付应用)或者执行其它程序。例如,用户可以点击媒体覆盖,以便在客户机设备110处下载或显示与该媒体覆盖关联的优惠券。

历史感知模块616基于客户机设备110的地理位置和与该地理位置关联的历史事件来生成媒体覆盖。例如,媒体覆盖可以包括与客户机设备110的地理位置关联的金字塔的图片。可以基于历史事件、或者例如针对世界七大自然奇观中的每一个来收集媒体覆盖。例如,当用户参观国家公园时,可以收集与国家公园关联的媒体覆盖。客户机设备110能够收集与所有国家公园关联的所有媒体覆盖。

音频模块618基于与从客户机设备110接收的内容项关联的音频内容(例如,音频轨道)来生成媒体覆盖。例如,媒体覆盖可以包括以下一项或多项:与音频内容关联的标题、与音频内容关联的艺术家姓名、与音频内容关联的专辑名称、与音频内容关联的专辑插图、与音频内容关联的歌词等。在另一个实施例中,媒体覆盖能够打开其它功能(例如,以便购买与音频内容关联的歌曲,获得有关该歌曲的更多信息等)。例如,用户能够点击媒体覆盖,以便在客户机设备110处下载或显示与该媒体覆盖关联的优惠券。

图6b是示出具有实时数据内容的媒体覆盖1820的一个示例的图。媒体覆盖1820包含与移动设备1802的地理位置关联的实时数据。例如,实时数据包含与移动设备1802的地理位置关联的体育事件的实时天气状况1822和最新得分更新1824。移动设备1802在显示器1804上的媒体内容1806之上显示媒体覆盖1820(例如,作为透明覆盖)。在一个示例实施例中,可以使用图6a的实时事件模块602实现媒体覆盖1820。

图6c是示出具有促销内容的媒体覆盖1830的一个示例的图。例如,媒体覆盖1830包括可以在咖啡店兑换的数字优惠券1832。媒体覆盖1830可以包括动态内容1834。例如,动态内容1834可以包括优惠券能够被使用的剩余次数。此外,媒体覆盖1830可以包括与可执行功能关联的可动作区域1836。例如,当用户点击可动作区域1836时,媒体覆盖1830被转发到用户的朋友的移动设备。移动设备1802在显示器1804上的媒体内容1806之上显示媒体覆盖1830。在一个示例实施例中,可以使用图6a的社交网络模块604、促销模块606、渐进使用模块610、以及可动作模块614实现媒体覆盖1830。

图6d是示出可收集媒体覆盖1840的一个示例的图。响应于在与可收集媒体覆盖1840关联的地理位置处检测到移动设备1802,可以向移动设备1802随机提供可收集媒体覆盖1840。可收集媒体覆盖1840能够被存储在移动设备1802处。一旦移动设备1802检测到已存储相关的可收集媒体覆盖,移动设备1802就可以导致在显示器1804中显示相关的可收集媒体覆盖或对应的唯一媒体覆盖。移动设备1802在显示器1804上的媒体内容1806之上显示媒体覆盖1840。在一个示例实施例中,可以使用图6a的收集模块608实现媒体覆盖1840。

图6e是示出病毒式媒体覆盖1850的一个示例的图。病毒式媒体覆盖1850可以包括动态内容1854和可动作区域1852。例如,动态内容1854显示筹款事件的进度条和目标。基于最近募集的金额调整进度条。可动作区域1852可以触发移动设备1802以便导致金融交易(例如,捐款)和与另一个移动设备的通信(例如,使用消息传送应用120向另一个移动设备发送消息)。移动设备1802在显示器1804上的媒体内容1806之上显示病毒式媒体覆盖1850。在一个示例实施例中,可以使用图6a的渐进使用模块610、病毒式使用模块612、以及可动作模块614实现媒体覆盖1850。

图6f是示出具有音频内容的媒体覆盖1860的一个示例的图。媒体覆盖1860可以包括例如包含歌曲标题1862和乐队名称的动态内容1864。动态内容1864还可以包括可动作区域1866。可动作区域1866可以提供有关歌曲、如何购买歌曲等的额外信息。移动设备1802可以在显示器1804上的媒体内容1806(例如,内容项)之上显示媒体覆盖1860。在一个示例中,可以使用图6a的音频模块618和可动作模块614实现媒体覆盖1860。替代地或者此外,可动作区域1866可以在另一个位置中(例如,在媒体内容1806的下面)。在另一个示例中,用户手势(例如,手指在媒体内容1806上向上滑动)可以导致发生操作(例如,购买歌曲、收听完整曲目、进一步了解艺术家等)。

图7是示出基于用户的媒体覆盖发布模块314的操作的一个示例实施例的交互图。在操作711处,第一用户的客户机设备110上传内容,并且将所请求的地理位置和所请求的持续时间发送到媒体覆盖应用122。在操作713处,媒体覆盖应用122基于上传的内容生成媒体覆盖,并且在所请求的持续时间内持续将媒体覆盖与所请求的地理位置相关联。在一个示例实施例中,可以使用图3的基于用户的媒体覆盖发布模块314实现操作711和713。

在操作714处,第二用户的客户机设备112将地理位置信息发送到消息传送应用120。在操作715处,消息传送应用120基于客户机设备112的地理位置信息,从媒体覆盖应用122标识媒体覆盖。在操作718处,媒体覆盖应用122向客户机设备112提供所标识的媒体覆盖。在一个示例实施例中,可以使用图3的媒体覆盖引擎306实现操作716和718。

图8是示出基于商家的媒体覆盖发布模块316的操作的一个示例实施例的交互图。在操作808处,商家a的客户机设备802将内容与地理位置信息(例如,地理位置x)和出价金额(例如,出价金额a)一起上传到媒体覆盖应用122以便形成媒体覆盖a。在操作810处,商家b的客户机设备804将内容与相同的地理位置信息(例如,地理位置x)和出价金额(例如,出价金额b)一起上传到媒体覆盖应用122以便形成媒体覆盖b。在操作812处,媒体覆盖应用122确定最高出价者,并且将最高出价者的媒体覆盖与地理位置x相关联。例如,如果出价金额a大于出价金额b,则向位于地理位置x处的客户机设备提供媒体覆盖a。在一个示例实施例中,可以使用图3的基于商家的媒体覆盖发布模块316实现操作808、810和812。

在操作814处,地理位置x处的客户机设备806将其地理位置信息发送到消息传送应用120。在操作816处,消息传送应用120从媒体覆盖应用122标识与地理位置x关联的媒体覆盖。在操作818处,媒体覆盖应用122向客户机设备806提供媒体覆盖a。在一个示例实施例中,可以使用图3的媒体覆盖引擎306实现操作816和818。在另一个示例实施例中,媒体覆盖应用122向客户机设备806提供媒体覆盖a和b两者,并且指示客户机设备806在媒体覆盖b之前首先显示媒体覆盖a,因为商家a是最高出价者。

图9是示出基于用户的媒体覆盖发布模块314的方法901的一个示例实施例的流程图。在操作903处,基于用户的媒体覆盖发布模块314接收来自第一客户机设备的上传内容和所请求的地理位置。在一个示例实施例中,可以使用图4a的基于用户的内容上传模块402、基于用户的地理位置选择模块404、以及基于用户的持续时间选择模块406实现操作903。

在操作904处,基于用户的媒体覆盖发布模块314形成基于用户的媒体覆盖,其包括上传内容并且与所请求的地理位置相关联。在一个示例实施例中,可以使用图4a的基于用户的发布引擎408实现操作904。

在操作906处,基于用户的媒体覆盖发布模块314接收来自第二客户机设备的地理位置信息。在操作908处,基于用户的媒体覆盖发布模块314判定第二客户机设备的地理位置是否在来自第一客户机设备的所请求的地理位置内。在操作909处,基于用户的媒体覆盖发布模块314响应于第二客户机设备的地理位置在来自第一客户机设备的所请求的地理位置内,从第一客户机设备向第二客户机设备发布基于用户的媒体覆盖。在一个示例实施例中,可以使用图3的基于用户的媒体覆盖模块320实现操作909。

在操作911处,媒体覆盖引擎306响应于第二客户机设备的地理位置不在来自第一客户机设备的所请求的地理位置内,向第二客户机设备提供与第二客户机设备的地理位置对应的预定义媒体覆盖。在一个示例实施例中,可以使用图3的预定义媒体覆盖模块318实现操作911。

图10是示出用于基于商家的媒体覆盖发布模块316的操作方法1000的一个示例实施例的流程图。在操作1002和1004处,基于商家的媒体覆盖发布模块316从商家接收上传内容、地理位置信息、以及对应的出价金额。例如,在操作1002处,基于商家的内容上传模块502从商家a接收内容a。基于商家的地理位置选择模块504从商家a接收地理位置x。基于商家的出价模块508从商家a接收出价金额a。

在操作1004处,基于商家的内容上传模块502从商家b接收内容b。基于商家的地理位置选择模块504从商家b接收地理位置x。基于商家的出价模块508从商家b接收出价金额b。

在操作1006处,确定最高出价金额。在一个示例实施例中,可以使用图6a的基于商家的出价模块508实现操作1006。如果出价金额a大于出价金额b,则在操作1008处,基于商家的发布引擎510基于内容a和地理位置x生成基于商户的媒体覆盖a。在操作1010处,基于商家的媒体覆盖模块322向位于地理位置x处的客户机设备提供基于商家的媒体覆盖a。

如果出价金额b大于出价金额a,则在操作1014处,基于商家的发布引擎510基于内容b和地理位置x生成基于商家的媒体覆盖b。在操作1016处,基于商家的媒体覆盖模块322向位于地理位置x处的客户机设备提供基于商家的媒体覆盖b。

图11是示出用于实时事件模块602的操作的方法1100的一个示例实施例的流程图。在操作1104处,实时事件模块602接收来自客户机设备的地理位置信息。在操作1106处,实时事件模块602标识与地理位置信息关联的实时事件。在操作1108处,实时事件模块602访问与实时事件相关的实时事件数据。在操作1110处,实时事件模块602基于实时事件数据生成实时事件媒体覆盖。在操作1112处,实时事件模块602向客户机设备提供实时事件媒体覆盖。

图12是示出用于社交网络模块604的操作方法1200的一个示例实施例的流程图。在操作1202处,社交网络模块604接收来自客户机设备的社交网络信息。在操作1204处,社交网络模块604基于来自客户机设备的社交网络信息,访问来自社交网络服务提供方的社交网络数据。在操作1206处,社交网络模块604从客户机设备的地理位置信息标识地理位置。在操作1208处,社交网络模块604基于社交网络数据和客户机设备的地理位置,生成基于社交网络的媒体覆盖。在操作1210处,社交网络模块604向客户机设备提供基于社交网络的媒体覆盖。

图13是示出用于促销模块606的操作方法1300的一个示例实施例的流程图。在操作1302处,促销模块606针对预定义地理位置生成用于商家的一组媒体覆盖。在操作1304处,促销模块606接收来自客户机设备的地理位置信息。在操作1306处,促销模块606从地理位置信息标识客户机设备的地理位置。在操作1308处,促销模块606访问与所述地理位置关联的用于商家的一组媒体覆盖。在操作1310处,促销模块606从所述一组媒体覆盖中随机选择至少一个媒体覆盖。在操作1312处,促销模块606向所述客户机设备提供随机选择的媒体覆盖(多个)。

图14是示出用于收集模块608的操作方法1400的一个示例实施例的流程图。在操作1402处,收集模块608接收来自客户机设备的地理位置信息。在操作1404处,收集模块608从所述地理位置信息确定客户机设备的地理位置。在操作1406处,收集模块608访问与所述客户机设备的地理位置关联的媒体覆盖。在操作1408处,收集模块608将所述媒体覆盖存储在与所述客户机设备关联的媒体覆盖集合中。在操作1410处,收集模块608向所述客户机设备呈现所述媒体覆盖集合中的媒体覆盖以供使用。

图15是示出用于渐进使用模块610的操作方法1500的一个示例实施例的流程图。在操作1502处,渐进使用模块610针对地理位置生成渐进使用媒体覆盖。在操作1504处,渐进使用模块610接收来自所述地理位置处的第一客户机设备的地理位置信息。在操作1506处,渐进使用模块610向所述第一客户机设备提供渐进使用媒体覆盖,并且基于所述渐进使用媒体覆盖生成第一经修改的媒体覆盖。在操作1508处,渐进使用模块610接收来自所述地理位置处的第二客户机设备的地理位置信息。在操作1510处,渐进使用模块610向所述第二客户机设备提供所述第一经修改的媒体覆盖,并且基于所述第一经修改的媒体覆盖生成第二经修改的媒体覆盖。

图16是示出用于病毒式使用模块612的操作方法1600的一个示例实施例的流程图。在操作1602处,病毒式使用模块612针对地理位置生成媒体覆盖。在操作1604处,病毒式使用模块612接收来自所述地理位置处的第一客户机设备的媒体元数据。在操作1606处,病毒式使用模块612向所述地理位置处的所述第一客户机设备提供所述媒体覆盖。在操作1608处,病毒式使用模块612接收来自所述第一客户机设备的将所述媒体覆盖转发到所述地理位置之外的第二客户机设备的请求。在操作1610处,病毒式使用模块612在有限时间内向所述地理位置之外的所述第二客户机设备持续提供所述媒体覆盖。

图17是示出用于可动作模块614的操作方法1700的一个示例实施例的流程图。在操作1702处,可动作模块614生成具有与功能关联的可动作部分的可动作媒体覆盖。在操作1704处,可动作模块614向第一客户机设备提供所述可动作媒体覆盖。在操作1706处,可动作模块614接收来自所述第一客户机设备的具有所述媒体覆盖的媒体项(例如,照片)。在操作1708处,可动作模块614向第二客户机设备提供具有所述媒体覆盖的所述媒体项。在操作1710处,可动作模块614标识来自所述第二客户机设备的对所述可动作部分的选择。在操作1712处,可动作模块614在所述第二客户机设备处执行与所述可动作部分关联的功能。

图18是示出用于媒体覆盖发布模块304的操作方法1800的一个示例实施例的流程图。在操作1882处,媒体覆盖发布模块304可以接收来自(例如)客户机设备110的内容项(例如,照片、视频等)。例如,客户机设备110的用户可能正在使用客户机设备110拍摄照片或视频。当用户正在拍摄照片或视频时,或者在用户已拍摄照片或视频之后,客户机设备110可以将与照片或视频(例如,正在在后台播放)、或者所捕获的照片或视频相关的视频、音频的一部分发送到媒体覆盖发布模块304。

在操作1884处,媒体覆盖发布模块304可以判定内容项的一个或多个特征是否与用于媒体覆盖的触发器相匹配。示例性特征或触发器可以包括与内容项或客户机设备110关联的地理位置、内容项中的音频内容、基于来自客户机设备110的移动数据的客户机设备110的速度、与内容项关联的时间戳、与机器可读代码(例如,条形码、qr码)关联的数据、内容项中的对象、添加内容项的新接收者等。如果内容项的一个或多个特征与用于媒体覆盖的触发器相匹配,则在操作1886处,媒体覆盖发布模块304可以生成与内容项关联的媒体覆盖。媒体覆盖可以包括创意覆盖、地理镜头、音频滤波器、音乐剪辑、创意工具、对额外特性或功能的访问、音频剪辑等。

例如,媒体覆盖发布模块304可以检测内容项中的音频内容,并且基于内容项中的音频内容标识音频轨道(例如,将音频内容的指纹与已知指纹匹配以便标识音频轨道)。音频轨道可以触发与该音频轨道关联的媒体覆盖的生成。可以生成包括以下至少一项的媒体覆盖:与音频轨道关联的标题、与音频轨道关联的艺术家姓名、与音频轨道关联的专辑名称、与音频轨道关联的专辑插图、与音频轨道关联的歌词等(例如,参见图6f)。

在一个示例中,音频轨道可能正在实时事件(例如音乐会)上播放。可以基于哪个乐队正在音乐会上演奏、哪首歌曲正在播放等,生成不同的媒体覆盖。例如,可以生成媒体覆盖,其包括正在播放的特定歌曲和乐队、将播放的下一首歌曲或乐队、已播放的前一首歌曲或乐队、在事件过程中正在播放或将播放的歌曲和/或乐队列表中的突出显示的歌曲和/或乐队、歌曲正在播放或将结束时的一个或多个时间戳等。媒体覆盖发布模块304可以使用与事件关联的其它信息(例如,调度信息)来补充从客户机设备110接收的信息。

在另一个示例中,媒体覆盖可以提供要与内容项包括在一起的额外音频内容。例如,内容项可以连同正在在后台播放的特定音频轨道一起包括一个或多个照片或视频。媒体覆盖发布模块304可以如上所述标识音频轨道,并且向照片(多个)或视频提供音频轨道集的连续版本。

在另一个示例中,媒体覆盖发布模块304可以检测内容项中(例如,照片或视频中)的特定对象并且标识该对象(例如,使用对象识别技术)。可以生成与该对象关联的媒体覆盖。例如,可以响应于用户拍摄具有某个对象的照片或视频,向客户机设备110提供媒体覆盖(例如,拍摄照片或视频的鼓励或奖励)。所述媒体覆盖可以与所述对象相关或者具有有关所述对象的进一步信息。例如,媒体覆盖发布模块304可以识别指示用户在迪斯尼乐园的对象,并且呈现迪斯尼主题的媒体覆盖。在另一个示例中,媒体覆盖发布模块304可以识别诸如徽标、品牌名称、产品、特定人员(例如,名人)之类的对象。

在另一个示例中,媒体覆盖发布模块304可以检测来自内容项中的机器可读代码(例如,条形码、qr码等)的数据。可以基于所提供的代码创建或选择媒体覆盖。例如,可以针对音乐艺术家创建机器可读代码,并且可以针对该音乐艺术家创建媒体覆盖。用户可以使用客户机设备110扫描与该音乐艺术家相关的机器可读代码,并且媒体覆盖发布模块304可以生成与该音乐艺术家关联的媒体覆盖。此外或备选地,可以向用户提供额外附件或特性(例如,用于编辑照片或视频的工具等)。

在另一个示例中,媒体覆盖发布模块304可以检测与内容项关联的地理位置,并且生成与该地理位置关联的媒体覆盖(例如,具有比赛的实时得分的媒体覆盖、音乐会信息的媒体覆盖等),如上面进一步详细讨论的那样。

在操作1888处,媒体覆盖发布模块304可以将所述媒体覆盖发送到客户机设备110。可以在客户机设备110上显示所述媒体覆盖(例如,覆盖在照片或图像上),或者可以向用户显示通知,所述通知指示一个或多个媒体覆盖可用于照片或视频(例如,音频媒体覆盖、创意工具等)。用户可以通过与客户机设备110交互(例如,按下按钮、长按屏幕、滑动或其它手势等)来访问一个或多个媒体覆盖。此外或备选地,媒体覆盖可能已经被本地存储在客户机设备110上,并且媒体覆盖发布模块304可以向客户机设备110发送“解锁”媒体覆盖以便提供给用户的指示。

用户可以选择使用媒体覆盖,并且然后将包括所述媒体覆盖的内容项发送给一个或多个接收者。在操作1890中,媒体覆盖发布模块304可以接收包括所述媒体覆盖的内容项。在操作1892处,媒体覆盖发布模块304可以将具有所述媒体覆盖的内容项发送到第二客户机设备112(或一个或多个客户机设备)。可以在第二客户机设备112上显示具有所述媒体覆盖的内容项。

在将具有所述媒体覆盖的内容项发送到第二客户机设备之前,媒体覆盖发布模块304可以针对所述内容项生成第二媒体覆盖。媒体覆盖发布模块304可以将具有所述媒体覆盖(例如,第一媒体覆盖)和所述第二媒体覆盖的内容项发送到第二客户机设备112。例如,所述第一媒体覆盖可以包括音频轨道信息,并且所述第二媒体覆盖可以包括指向有关音频轨道(其能够由第二客户机设备的用户显示和/或访问)的其它信息(例如,有关轨道、艺术家、专辑、或歌词、如何购买音频轨道或专辑等的细节)的链接或快捷方式。在一个示例中,第二媒体覆盖可以是如上所述的可动作媒体覆盖。

除了或替代媒体覆盖,内容项的特征可以触发其它事物。例如,指示用户在特定商店中的地理位置信息可以触发访问与用户已进入的实体店相关的特定电子商务商店。

上面示例描述了媒体覆盖发布模块304判定内容项的一个或多个特征是否与用于媒体覆盖的触发器相匹配。在另一个示例实施例中,客户机设备110(例如,经由一个或多个应用)可以判定内容项的一个或多个特征是否与用于媒体覆盖的触发器相匹配。图22是示出用于客户机设备110的操作方法2200的一个示例实施例的流程图。

在操作2202处,客户机设备110生成对一个或多个媒体覆盖的请求。所述请求可以仅是对可用媒体覆盖的请求,或者所述请求可以包括额外信息。例如,所述请求可以包括与客户机设备110关联的位置、一天中的时间、与内容项相关的数据等。例如,客户机设备110的用户可能正在使用客户机设备110拍摄照片或视频。当用户正在拍摄照片或视频时,或者在用户已拍摄照片或视频之后,客户机设备110可以将与照片或视频(例如,正在在后台播放)、或者所捕获的照片或视频相关的视频、音频的一部分发送到媒体覆盖发布模块304。

在操作2204处,客户机设备110将所述请求发送到由媒体覆盖发布模块304接收的数据交换平台102。媒体覆盖发布模块304从客户机设备110接收所述请求,并且返回相关的媒体覆盖。

在一个示例中,媒体覆盖发布模块304可以返回所有可用媒体覆盖。例如,媒体覆盖发布模块304可以返回所有可用媒体覆盖和用于每个媒体覆盖的关联触发器(多个)。在另一个示例中,媒体覆盖发布模块304可以确定哪个(哪些)媒体覆盖尚未被发送到客户机设备110。例如,自客户机设备110最后请求媒体覆盖以来,可能存在一个或多个新的媒体覆盖。

在另一个示例中,媒体覆盖发布模块304可以使用所述请求中提供的信息来仅返回相关媒体覆盖。例如,媒体覆盖发布模块304可以确定哪些媒体覆盖与客户机设备110的位置、一天中的时间、内容项等相关。

在操作2206处,客户机设备110接收一个或多个媒体覆盖。客户机设备110可以将一个或多个媒体覆盖存储在客户机设备110上的数据库或其它存储结构中。客户机设备110还可以接收与一个或多个媒体覆盖关联的触发器(多个),并且将触发器(多个)存储在客户机设备110上的数据库或其它存储结构中。

在操作2208处,客户机设备110判定内容项的一个或多个特征是否与用于媒体覆盖的触发器相匹配。示例特征或触发器可以包括与内容项或客户机设备110关联的地理位置、内容项中的音频内容、基于来自客户机设备110的移动数据的客户机设备110的速度、与内容项关联的时间戳、与机器可读代码(例如,条形码、qr码)关联的数据、内容项中的对象、添加内容项的新接收者等。如果内容项的一个或多个特征与用于媒体覆盖的触发器匹配,则在操作2210处,客户机设备110生成与从媒体覆盖发布模块304接收的一个或多个媒体覆盖中的内容项关联的媒体覆盖。例如,客户机设备110可以确定从媒体覆盖发布模块304接收的哪个(哪些)媒体覆盖与触发器关联。如上所述,媒体覆盖可以包括创意覆盖、地理镜头、音频滤波器、音乐剪辑、创意工具、对额外特性或功能的访问、音频剪辑、用于增强内容项中的面部或其它对象的镜头、用于向内容项应用动画或其它效果的镜头等。

触发器可以与单个媒体覆盖或者与多个媒体覆盖相关联。例如,第一触发器可以与将被显示给用户的单个媒体覆盖关联。在另一个示例中,第二触发器可以与将均被显示给用户的两个媒体覆盖关联。用户可以选择一个或多个媒体覆盖。此外,可以存在与单个媒体覆盖关联的多个触发器。例如,第三触发器或第四触发器可以与单个媒体覆盖关联。如果检测到第三触发器或第四触发器(或两者),则将向用户显示单个媒体覆盖。

客户机设备110可以判定内容项的一个或多个特征是否与用于媒体覆盖的触发器匹配,如上所述。例如,客户机设备110可以检测内容项中的音频内容,并且基于内容项中的音频内容标识音频轨道(例如,将音频内容的指纹与已知指纹匹配以便标识音频轨道)。音频轨道可以触发与该音频轨道关联的媒体覆盖的生成。可以生成包括以下至少一项的媒体覆盖:与音频轨道关联的标题、与音频轨道关联的艺术家姓名、与音频轨道关联的专辑名称、与音频轨道关联的专辑插图、与音频轨道关联的歌词等(例如,参见图6f)。

在一个示例中,音频轨道可能正在实时事件(例如音乐会)时播放。可以基于哪个乐队正在音乐会上演奏、哪首歌曲正在播放等,生成不同的媒体覆盖。例如,可以生成媒体覆盖,所述媒体覆盖包括正在播放的特定歌曲和乐队、将播放的下一首歌曲或乐队、播放的前一首歌曲或乐队、在事件过程中正在播放或将播放的歌曲和/或乐队列表中的突出显示的歌曲和/或乐队、歌曲正在播放或将结束时的一个或多个时间戳等。客户机设备110可以使用与事件关联的其它信息(例如,调度信息)来生成媒体覆盖。

在另一个示例中,媒体覆盖可以提供要与内容项包括在一起的额外音频内容。例如,内容项可以连同正在在后台播放的特定音频轨道一起包括一个或多个照片或视频。客户机设备110可以如上所述标识音频轨道,并且向照片(多个)或视频提供音频轨道集的连续版本。

在另一个示例中,客户机设备110可以检测内容项中(例如,照片或视频中)的特定对象并且标识该对象(例如,使用对象识别技术)。可以生成与该对象关联的媒体覆盖。例如,可以响应于用户拍摄具有某个对象的照片或视频,向客户机设备110提供媒体覆盖(例如,拍摄照片或视频的鼓励或奖励)。所述媒体覆盖可以与所述对象相关或者具有有关所述对象的进一步信息。例如,客户机设备110可以识别指示用户在迪斯尼乐园的对象,并且呈现迪斯尼主题的媒体覆盖。在另一个示例中,客户机设备110可以识别诸如徽标、品牌名称、产品、特定人员(例如,名人)之类的对象。

在另一个示例中,客户机设备110可以检测来自内容项中的机器可读代码(例如,条形码、qr码等)的数据。可以基于所提供的代码创建或选择媒体覆盖。例如,可以针对音乐艺术家创建机器可读代码,并且可以针对该音乐艺术家创建媒体覆盖。用户可以使用客户机设备110扫描与音乐艺术家相关的机器可读代码,并且客户机设备110可以生成与音乐艺术家关联的媒体覆盖。此外或备选地,可以向用户提供额外附件或特性(例如,用于编辑照片或视频的工具等)。

在另一个示例中,客户机设备110可以检测与内容项关联的地理位置,并且生成与该地理位置关联的媒体覆盖(例如,具有比赛的实时得分的媒体覆盖、音乐会信息的媒体覆盖等),如上面进一步详细讨论的那样。

在操作2212处,可以在客户机设备110上显示媒体覆盖(例如,覆盖在照片或图像上),或者可以向用户显示通知,所述通知指示一个或多个媒体覆盖可用于照片或视频(例如,音频媒体覆盖、创意工具等)。用户可以通过与客户机设备110交互(例如,按下按钮、长按屏幕、滑动或其它手势等)来访问一个或多个媒体覆盖。

用户可以选择使用媒体覆盖,并且然后经由客户机设备110将包括所述媒体覆盖的内容项发送给一个或多个接收者。媒体覆盖发布模块304可以接收包括所述媒体覆盖的内容项。媒体覆盖发布模块304可以将具有所述媒体覆盖的内容项发送到第二客户机设备112(或一个或多个客户机设备)。可以在第二客户机设备112上显示具有所述媒体覆盖的内容项。

某些实施例在此被描述为包括逻辑或多个组件、模块或机构。模块可以构成软件模块(例如,(1)在非瞬时性机器可读介质上或者(2)在传输信号中体现的代码)或硬件实现的模块。硬件实现的模块是有形单元,其能够执行某些操作并且可以以某种方式被配置或布置。在示例实施例中,一个或多个计算机系统(例如,独立、客户机、或者服务器计算机系统)或一个或多个处理器可以由软件(例如,应用或应用部分)配置为用于执行如在此描述的某些操作的硬件实现的模块。

在各种实施例中,硬件实现的模块可以以机械方式或电子方式实现。例如,硬件实现的模块可以包括专用电路或逻辑,其(例如,作为专用处理器,例如现场可编程门阵列(fpga)或专用集成电路(asic))被永久配置为执行某些操作。硬件实现的模块还可以包括可编程逻辑或电路(例如,如包含在通用处理器或其它可编程处理器内),其由软件临时配置以便执行某些操作。将认识到,在专用和永久配置的电路中、或者在临时配置的电路(例如,由软件配置)中以机械方式实现硬件实现的模块的决策可以由成本和时间考虑因素来驱动。

因此,术语“硬件实现的模块”应该被理解为包含有形实体,即物理构造、永久配置(例如,硬连线)或临时配置(例如,编程)以便以某种方式操作或者执行在此描述的某些操作的实体。考虑其中硬件实现的模块被临时配置(例如,编程)的实施例,每个硬件实现的模块不需要在任何一个时刻被配置或实例化。例如,如果硬件实现的模块包括使用软件配置的通用处理器,则通用处理器可以在不同时间被配置为相应不同的硬件实现的模块。软件因此可以配置处理器,以便例如在一个时刻构成特定的硬件实现的模块,并且在不同的时刻构成不同的硬件实现的模块。

硬件实现的模块可以向其它硬件实现的模块提供信息,并且从其它硬件实现的模块接收信息。因此,所述硬件实现的模块可以被认为在通信上耦合。如果同时存在多个这种硬件实现的模块,则可以通过信号传输(例如,通过连接硬件实现的模块的适当电路和总线)实现通信。在其中在不同时间配置或实例化多个硬件实现的模块的实施例中,例如可以通过存储和取回多个硬件实现的模块有权访问的存储结构中的信息来实现这种硬件实现的模块之间的通信。例如,一个硬件实现的模块可以执行操作,并且将该操作的输出存储在与其在通信上耦合的存储设备中。另一个硬件实现的模块然后可以在稍后时间访问该存储设备,以便取回和处理所存储的输出。硬件实现的模块还可以开始与输入或输出设备的通信,并且可以对资源(例如,信息集合)执行操作。

可以至少部分地由临时配置(例如,通过软件)或永久配置为执行相关操作的一个或多个处理器来执行在此描述的示例方法的各种操作。无论临时还是永久配置,这种处理器都可以构成处理器实现的模块,所述处理器实现的模块操作以便执行一个或多个操作或功能。在某些示例实施例中,在此所称的模块包括处理器实现的模块。

同样,在此描述的方法可以至少部分地由处理器实现。例如,一种方法的至少某些操作可以由一个或多个处理器或处理器实现的模块执行。某些操作的执行可以在一个或多个处理器之间分布,不仅驻留在单个机器内,而是跨越多个机器被部署。在某些示例实施例中,一个或多个处理器可以位于单个位置(例如,在家庭环境、办公环境或服务器场内),而在其它实施例中,处理器可以跨越多个位置分布。

一个或多个处理器还可以操作以便支持在“云计算”环境中或者作为“软件即服务”(saas)执行相关操作。例如,至少某些操作可以由一组计算机(作为包括处理器的机器的示例)执行,其中这些操作可以经由网络104(例如,因特网)并且经由一个或多个适当的接口(例如,api)来访问。

示例实施例可以以数字电子电路、或者以计算机硬件、固件或软件、或者以它们的组合来实现。示例实施例可以使用计算机程序产品(例如,有形地体现在信息载体中的计算机程序,例如体现在机器可读介质中以便由数据处理装置(例如,可编程处理器、计算机、或者多个计算机)执行或者控制所述数据处理装置的操作)实现。

计算机程序可以以任何形式的编程语言(包括编译或解释语言)编写,并且可以以任何形式部署,包括作为独立程序或者作为模块、子例程、或者适合于在计算环境中使用的其它单元。可以部署计算机程序以便在一个计算机上或者在一个站点处的多个计算机上执行,或者跨越多个站点分布并且由通信网络互连。

在示例实施例中,操作可以由一个或多个可编程处理器执行,这些可编程处理器通过处理输入数据并且生成输出来执行计算机程序以便完成功能。方法操作还可以由专用逻辑电路(例如,fpga或asic)执行,并且示例实施例的装置可以被实现为专用逻辑电路(例如,fpga或asic)。

计算系统能够包括客户机和服务器。客户机和服务器通常彼此远离,并且通常通过通信网络交互。客户机和服务器的关系借助计算机程序而产生,这些计算机程序在相应计算机上运行并且彼此具有客户机-服务器关系。在部署可编程计算系统的实施例中,将认识到,硬件和软件架构都值得考虑。具体地说,将认识到,选择以永久配置的硬件(例如,asic)、以临时配置的硬件(例如,软件和可编程处理器的组合)、还是以永久和临时配置的硬件的组合实现某一功能可以是一种设计选择。下面描述可以在各种示例实施例中部署的硬件(例如,机器)和软件架构。

图19是示出能够安装在上述设备中的任何一个或多个上的软件架构702的框图700。例如,在各种实施例中,客户机设备110和112以及数据交换平台102(例如,应用服务器118、数据库服务器124等)可以使用软件702的部分或全部元件来实现。图19仅是软件架构的一个非限制性示例,并且将认识到,可以实现许多其它架构以便促进在此描述的功能。在各种实施例中,软件702由诸如图20的机器900之类的硬件实现,机器900包括处理器910、存储器930、以及i/o组件950。在该示例架构中,软件702可以被概念化为层的堆叠,其中每层可以提供特定功能。例如,软件702包括诸如操作系统704、库706、框架708、以及应用710之类的层。在操作上,与某些实施例一致,应用710通过软件堆栈调用api调用712,并且响应于api调用712而接收消息714。

在各种实现中,操作系统704管理硬件资源并且提供公共服务。操作系统704例如包括内核720、服务722、以及驱动器724。与某些实施例一致,内核720充当硬件与其它软件层之间的抽象层。例如,内核720提供存储器管理、处理器管理(例如,调度)、组件管理、联网、以及安全设置等功能。服务722能够针对其它软件层提供其它公共服务。根据某些实施例,驱动器724负责控制底层硬件或者与底层硬件对接。例如,驱动器724能够包括显示驱动器、照相机驱动器、低功耗驱动器、闪存驱动器、串行通信驱动器(例如,通用串行总线(usb)驱动器)、驱动器、音频驱动器、电源管理驱动器等。

在某些实施例中,库706提供由应用710使用的低级公共基础架构。库706能够包括系统库730(例如,c标准库),其可以提供诸如存储器分配功能、字符串操纵功能、数学功能之类的功能。此外,库706可以包括api库732,例如媒体库(例如,用于支持呈现和操纵各种媒体格式的库,这些媒体格式例如包括运动图像专家组4(mpeg4)、高级视频编码(h.264或avc)、运动图像专家组第3层(mp3)、高级音频编码(aac)、自适应多速率(amr)音频编解码器、联合图像专家组(jpeg或jpg)、或者便携式网络图形(png))、图形库(例如,用于在显示器上的图形内容中以二维(2d)和三维(3d)呈现的opengl框架)、数据库库(例如,用于提供各种关系数据库功能的sqlite)、web库(例如,用于提供web浏览功能的webkit)等。库706还可以包括各种其它库734以便向应用710提供许多其它api。

根据某些实施例,框架708提供能够由应用710使用的高级公共基础架构。例如,框架708提供各种图形用户界面(gui)功能、高级资源管理、高级定位服务等。框架708可以提供能够由应用710使用的广泛的其它api,其中某些api可以特定于特定的操作系统或平台。

在一个示例实施例中,应用710包括家庭应用750、联系人应用752、浏览器应用754、书籍阅读器应用756、定位应用758、媒体应用760、消息传送应用762、游戏应用764、以及各种其它应用,例如第三方应用766。根据某些实施例,应用710是执行程序中定义的功能的程序。可以采用各种编程语言创建以各种方式构造的应用710中的一个或多个,例如面向对象的编程语言(例如,objective-c、java或c++)或过程式编程语言(例如,c或汇编语言)。在一个特定示例中,第三方应用766(例如,由特定平台的供应方之外的实体使用androidtm或iostm软件开发工具包(sdk)开发的应用)可以是在移动操作系统上运行的移动软件,该移动操作系统例如包括iostm、androidtmphone、或者其它移动操作系统。在该示例中,第三方应用766能够调用由操作系统704提供的api调用712以便促进在此描述的功能。

某些实施例可以具体包括内容库应用767。在某些实施例中,这可以是用于管理与服务器系统(例如数据交换平台102)的通信的独立应用。在其它实施例中,该功能可以与另一个应用(例如媒体应用760或另一个此类应用)集成。内容库应用767可以管理使用机器900的照相机设备收集内容、经由i/o组件950与服务器系统通信、以及在存储器930中接收内容并且存储接收的内容。可以由内容库应用767使用在机器900上操作的不同框架708、库706元件、或者操作系统704元件,管理内容和与内容关联的用户输入的呈现。

图20是示出根据某些实施例的机器900的组件的框图,机器900能够从机器可读介质(例如,机器可读存储介质)读取指令并且执行在此讨论的任何一种或多种方法。具体地说,图20示出计算机系统的示例形式的机器900的图形表示,其中能够执行用于导致机器900执行在此讨论的任何一种或多种方法的指令916(例如,软件、程序、应用710、小程序、应用、或者其它可执行代码)。在备选实施例中,机器900作为独立设备操作或者可以耦合(例如,联网)到其它机器。在联网部署中,机器900可以以服务器-客户机网络环境中的服务器机器(例如,应用服务器118、数据库服务器124)或客户机设备110、112的身份操作,或者在对等(或分布式)网络环境中作为对等机器操作。机器900能够包括但不限于服务器计算机、客户机计算机、个人计算机(pc)、平板计算机、膝上型计算机、上网本、机顶盒(stb)、个人数字助理(pda)、娱乐媒体系统、蜂窝电话、智能电话、移动设备、可佩带式设备(例如,智能手表)、智能家用设备(例如,智能家电)、其它智能设备、web设备、网络路由器、网络交换机、网络桥接器、或者能够按顺序或以其它方式执行指令916(其指定机器900要采取的操作)的任何机器。此外,尽管仅示出单个机器900,但术语“机器”还应该被认为包括单独或共同执行指令916以便执行在此讨论的任何一种或多种方法的机器900的集合。

在各种实施例中,机器900包括处理器910、存储器930、以及i/o组件950,它们可以被配置为经由总线902彼此通信。在一个示例实施例中,处理器910(例如,中央处理单元(cpu)、精简指令集计算(risc)处理器、复杂指令集计算(cisc)处理器、图形处理单元(gpu)、数字信号处理器(dsp)、专用集成电路(asic)、射频集成电路(rfic)、另一个处理器、或者它们的任何合适的组合)例如包括可以执行指令916的处理器912和处理器914。术语“处理器”旨在包括可以包含两个或更多独立处理器912、914(也被称为“核心”)的多核处理器910,这些独立处理器可以同时执行指令。尽管图20示出多个处理器910,但机器900可以包括具有单个核心的单个处理器910、具有多个核心的单个处理器910(例如,多核处理器910)、具有单个核心的多个处理器912、914、具有多个核心的多个处理器912、914、或者它们的任何组合。

根据某些实施例,存储器930包括主存储器932、静态存储器934、以及存储单元936,处理器910可以经由总线902访问它们。存储单元936能够包括机器可读介质938,其上存储体现在此描述的任何一种或多种方法或功能的指令916。在由机器900执行期间,指令916还可以完全或至少部分地驻留在主存储器932内、静态存储器934内、至少一个处理器910内(例如,在处理器的高速缓冲存储器内)、或者它们的任何合适的组合。因此,在各种实施例中,主存储器932、静态存储器934、以及处理器910被认为是机器可读介质938。

如在此使用的,术语“存储器”指能够临时或永久存储数据的机器可读介质938,并且可以被认为包括但不限于随机存取存储器(ram)、只读存储器(rom)、缓冲存储器、闪存、以及高速缓冲存储器。尽管机器可读介质938在一个示例实施例中被示为单个介质,但术语“机器可读介质”应该被认为包括能够存储指令916的单个介质或多个介质(例如,集中式或分布式数据库、或者关联的高速缓存和服务器)。术语“机器可读介质”还应该被认为包括任何介质或多个介质的组合,其能够存储指令(例如,指令916)以便由机器(例如,机器900)执行,以使得当由机器900的一个或多个处理器(例如,处理器910)执行时,指令916导致机器900执行在此描述的任何一种或多种方法。因此,“机器可读介质”指单个存储装置或设备、以及包括多个存储装置或设备的“基于云的”存储系统或存储网络。术语“机器可读介质”因此应该被认为包括但不限于以下形式的一个或多个数据储存库:固态存储器(例如,闪存)、光介质、磁介质、其它非易失性存储器(例如,可擦式可编程只读存储器(eprom))、或者它们的任何合适的组合。术语“机器可读介质”明确排除非法定信号本身。

i/o组件950包括用于接收输入、提供输出、产生输出、传输信息、交换信息、捕获测量等的各种组件。一般而言,将认识到,i/o组件950能够包括图20中未示出的许多其它组件。i/o组件950根据功能被分组,仅用于简化以下讨论,并且分组决不是限制性的。在各种示例实施例中,i/o组件950包括输出组件952和输入组件954。输出组件952包括视觉组件(例如,显示器,例如等离子显示板(pdp)、发光二极管(led)显示器、液晶显示器(lcd)、投影仪、或者阴极射线管(crt))、听觉组件(例如,扬声器)、触觉组件(例如,振动电动机)、其它信号发生器等。输入组件954包括字母数字输入组件(例如,键盘、被配置为接收字母数字输入的触摸屏、光电键盘、或者其它字母数字输入组件)、基于点的输入组件(例如,鼠标、触摸板、轨迹球、操纵杆、运动传感器、或者其它指点工具)、触觉输入组件(例如,物理按钮、提供触摸或触摸手势的位置和力度的触摸屏、或者其它触觉输入组件)、音频输入组件(例如,麦克风)等。

在某些进一步的示例实施例中,i/o组件950除各种其它组件外,还包括生物测量组件956、运动组件958、环境组件960、或者定位组件962。例如,生物测量组件956包括用于以下操作的组件:检测表情(例如,手部表达、面部表情、声音表达、身体姿势、或者眼睛跟踪)、测量生物信号(例如,血压、心率、体温、汗液、或者脑波)、标识个人(例如,语音标识、视网膜标识、面部标识、指纹标识、或者基于脑电图的标识)等。运动组件958包括加速度传感器组件(例如,加速度计)、重力传感器组件、旋转传感器组件(例如,陀螺仪)等。环境组件960例如包括照明传感器组件(例如,光度计)、温度传感器组件(例如,检测环境温度的一个或多个温度计)、湿度传感器组件、压力传感器组件(例如,气压计)、声学传感器组件(例如,检测背景噪声的一个或多个麦克风)、接近度传感器组件(例如,检测附近物体的红外传感器)、气体传感器组件(例如,机器嗅觉检测传感器、气体检测传感器,其用于检测危险气体的安全浓度或者测量大气中的污染物)、或者可以提供与周围物理环境对应的指示、测量或信号的其它组件。定位组件962包括定位传感器组件(例如,gps接收器组件)、高度传感器组件(例如,高度计或气压计,其检测可以从中获得高度的空气压力)、方位传感器组件(例如,磁强计)等。

可以使用各种技术实现通信。i/o组件950可以包括通信组件964,其可操作以便分别经由耦合982和耦合972将机器900耦合到网络980或设备970。例如,通信组件964包括用于与网络980对接的网络接口组件或另一个合适的设备。在进一步示例中,通信组件964包括有线通信组件、无线通信组件、蜂窝通信组件、近场通信(nfc)组件、组件(例如,低功耗)、组件、以及用于经由其它形式提供通信的其它通信组件。设备970可以是另一个机器900或各种外围设备(例如,经由通用串行总线(usb)耦合的外围设备)中的任何一种。

此外,在某些实施例中,通信组件964检测标识符或者包括可操作以检测标识符的组件。例如,通信组件964包括射频识别(rfid)标签读取器组件、nfc智能标签检测组件、光学读取器组件(例如,光传感器,其用于检测诸如通用产品代码(upc)条形码之类的一维条形码、诸如快速响应(qr)代码、阿兹特克代码、数据矩阵、dataglyph、maxicode、pdf417、超码、统一商业代码缩小空间符号(uccrss)2d条形码之类的多维条形码、以及其它光学代码)、声学检测组件(例如,用于标识标记音频信号的麦克风)、或者它们的任何合适的组合。此外,可以经由通信组件964获得各种信息,例如经由网际协议(ip)地理位置获得的位置、经由信号三角测量获得的位置、经由检测可以指示特定位置的或nfc信标信号获得的位置等。

在各种示例实施例中,网络980的一个或多个部分可以是自组织网络、内联网、外联网、虚拟专用网络(vpn)、局域网(lan)、无线lan(wlan)、广域网(wan)、无线wan(wwan)、城域网(man)、因特网、因特网的一部分、公共交换电话网络(pstn)的一部分、普通老式电话服务(pots)网络、蜂窝电话网络、无线网络、网络、另一种类型的网络、或者两个或更多这种网络的组合。例如,网络980或网络980的一部分可以包括无线或蜂窝网络,并且耦合982可以是码分多址(cdma)连接、全球移动通信系统(gsm)连接、或者另一种类型的蜂窝或无线耦合。在该示例中,耦合982可以实现多种类型的数据传输技术的任何一种,例如单载波无线电传输技术(1xrtt)、演进数据优化(evdo)技术、通用分组无线业务(gprs)技术、增强型数据速率gsm演进(edge)技术、第三代合作计划(3gpp)(包括3g)、第四代无线(4g)网络、通用移动电信系统(umts)、高速分组接入(hspa)、微波存取全球互通(wimax)、长期演进(lte)标准、由各种标准制定组织定义的其它技术、其它远程协议、或者其它数据传输技术。

在示例实施例中,经由网络接口设备(例如,包括在通信组件964中的网络接口组件)使用传输介质并且利用多种公知的传输协议(例如,超文本传输协议(http))中的任何一种,通过网络980发送或接收指令916。同样,在其它示例实施例中,经由耦合972(例如,对等耦合)使用传输介质向设备970发送或接收指令916。术语“传输介质”应该被认为包括能够对指令916进行存储、编码或承载以便由机器900执行的任何无形介质,并且包括数字或模拟通信信号或其它无形介质以便促进这种软件的通信。

此外,机器可读介质938是非瞬时性的(换言之,没有任何瞬时信号),因为它不包含传播信号。但是,将机器可读介质938标记为“非瞬时性”不应被解释为意味着介质不能移动;介质938应该被认为可从一个物理位置传输到另一个物理位置。此外,因为机器可读介质938是有形的,所以介质938可以被认为是机器可读设备。

图21是示出根据一个示例实施例的示例性移动设备1900的框图。移动设备1900可以包括处理器1902。处理器1902可以是适合于移动设备1900的各种不同类型的可以从市面上购买的处理器1902(例如,xscale架构微处理器、无内锁流水线微处理器(mips)架构处理器、或者另一种类型的处理器1902)中的任何一种。处理器1902通常可以访问存储器1904,例如随机存取存储器(ram)、闪存、或者另一种类型的存储器。存储器1904可以适合于存储操作系统(os)1906、以及应用1908,例如可以向用户提供基于位置的服务(lbs)的启用移动定位的应用。处理器1902可以直接或者经由适当的中间硬件被耦合到显示器1910和一个或多个输入/输出(i/o)设备1912,例如小键盘、触摸面板传感器、麦克风等。同样,在某些实施例中,处理器1902可以被耦合到与天线1916对接的收发器1914。收发器1914可以被配置为根据移动设备1900的性质,经由天线1916发送和接收蜂窝网络信号、无线数据信号、或者其它类型的信号。此外,在某些配置中,gps接收器1918还可以利用天线1916接收gps信号。

在本说明书中,多个实例可以实现被描述为单个实例的组件、操作、或者结构。尽管一种或多种方法的各个操作被示出和描述为单独操作,但可以同时执行各个操作中的一个或多个,并且不需要以示出的顺序执行操作。作为示例配置中的单独组件呈现的结构和功能可以被实现为组合结构或组件。同样,作为单个组件呈现的结构和功能可以被实现为单独组件。这些和其它变化、修改、添加、以及改进落入此处的主题的范围内。

尽管已参考特定的示例实施例描述了本发明主题的概述,但可以在不偏离本公开的实施例的更广泛范围的情况下,对这些实施例进行各种修改和改变。本发明主题的此类实施例在此可以单独或统称为术语“发明”,这仅为了方便起见并且并非旨在自愿将本申请的范围限于任何单个公开或发明概念(如果实际上披露多个概念)。

足够详细地描述了在此示出的实施例,以便使所属技术领域的技术人员能够实现公开的教导。可以从中使用和得出其它实施例,以使得可以在不偏离本公开的范围的情况下进行结构和逻辑替换和改变。因此,具体实施方式不应被认为是限制性的,并且各种实施例的范围仅由所附权利要求以及此类权利要求所赋予的等同物的完整范围来限定。

如在此使用的,术语“或”可以以包含或排他的方式来解释。此外,可以针对在此描述的资源、操作或结构提供多个实例作为单个实例。此外,各种资源、操作、模块、引擎、以及数据存储之间的边界在某种程度上是任意的,并且特定操作在特定示例性配置的上下文中示出。可以设想功能的其它分配,并且这些分配可以落入本公开的各种实施例的范围内。一般而言,作为示例配置中的单独资源呈现的结构和功能可以被实现为组合结构或资源。同样,作为单个资源呈现的结构和功能可以被实现为单独资源。这些和其它变化、修改、添加、以及改进落入如由所附权利要求代表的本公开的实施例的范围内。说明书和附图因此被认为是示例性的而不是限制性的。

提供本公开的摘要是为了符合37c.f.r.§1.72(b),其要求将允许读者快速确定技术公开的性质的摘要。提交时应理解,它将不用于解释或限制权利要求的范围或含义。此外,在前面的具体实施方式中,可以看出,出于简化本公开的目的,各种特性在单个实施例中被组合在一起。本公开方法不被解释为反映要求保护的实施例需要比每个权利要求中明确描述的特性更多的特征的这一意图。相反,如以下权利要求反映的,发明主题存在于少于单个公开实施例的所有特性中。因此,以下权利要求在此被纳入具体实施方式中,其中每个权利要求本身作为单独实施例。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1