移动设备上的后台音频的制作方法

文档序号:6364694阅读:198来源:国知局
专利名称:移动设备上的后台音频的制作方法
技术领域
本发明涉及通信领域,尤其涉及媒体技术。
背景技术
当代移动设备被用于许多类型的用户应用,包括运行交互式应用以及收听音乐或其他音频(例如,广播)。音频输出一般是某些事物用户常常希望在后台中执行,例如在设置播放列表或其他音频内容之后,用户希望能够收听该音频且仍然能够使用设备特征和/或执行其他前台任务。为实现后台音频场景,系统需要使进程在后台运行并播放音频。对于这样的场景当前解决方案具有一个或多个问题,包括消耗太多电量和/或其他系统资源,提供与系统 用户体验/界面(UX)差的集成(如果有的话),和/或将安全威胁引入该系统的可能性。此外,回放可能由于资源耗尽而意外地停止。结果,一种解决方案是使用“第一方”应用作为后台音频程序,(如此处所使用的,“第一方”一般指的是可信代码,诸如由操作系统厂商所提供的代码,而“第三方”指的是来自厂商的应用,而不管它们的资源或可信度)。然而,这将设备系统限制成不允许第三方应用执行后台音频回放和提供不同的用户体验,同时消耗第一方应用的资源等等。

发明内容
提供本发明内容以便以简化形式介绍将在以下的具体实施方式
中进一步描述的一些代表性概念。本发明内容不旨在标识出所要求保护的主题的关键特征或必要特征,也不旨在以限制所要求保护的主题的范围的任何方式来使用。简言之,此处描述的主题的各方面涉及一种技术,媒体服务借此技术在移动设备上的后台进程中播放音频,如最初由前台(例如,第三方)应用所指示的。当应用在前台时经由一接口与媒体服务进行通信,包括用于向媒体服务提供与要播放的音频数据(例如,音轨)相对应的信息。媒体服务播放音频,并且在媒体服务播放后台音频时应针对音频回放的请求采取动作。例如,针对音频回放的请求可对应于用户动作,诸如播放、暂停、跳过、停止、后跳、前跳、查找、快进、倒带、关于评级的动作、随机和/或重复播放请求。针对音频回放的请求可以提供状态信息,诸如正播放、已暂停、已停止、正快进、正倒带、缓冲已开始、缓冲已停止、音轨已准备好和/或音轨已结束状态。在一个方面,媒体服务用于启动代理,该代理提供针对音频回放的请求。前台应用可被停用,而媒体服务在后台中继续音频回放。媒体服务可使得代理按需被重新启动,以获取附加的音频信息,例如,要播放的更多音轨。在一个方面,通用音量控制(例如,系统)组件提供针对音频回放的请求。应用(当在前台时)可提供确定通用音量控制组件的操作的信息。媒体服务提供可在通用音量控制组件的用户界面上呈现的信息,诸如从应用和/或代理所获取的例如文本(标题、艺术家)、图像等等。在一个方面,源代理可被配置成输出音频数据,媒体服务将该音频数据处理成音频回放。源代理可使用(例如,自定义的)编解码器、解密机制、解压缩机制、和/或专用协议来提供音频数据。源代理可向共享存储器输出音频数据以供媒体服务处理。与要播放的音频数据相对应的信息可以与控制标志相关联,该控制标志经由属性设置来指示媒体服务是否被允许相对于音频回放采取特定动作。例如,标志可包括允许/拒绝对于正在播放或排队待播放的任何媒体项目进行跳过下一个、跳过前一个、快进、暂停、和/或倒带动作。结合附图阅读以下具体实施方式
,本发明的其他优点会变得显而易见。


作为示例而非限制,在附图中示出了本发明,附图中相同的附图标记指示相同或 相似的元素,附图中图I是表示包括在音频回放应用从前台中被停用的情况下用于播放后台音频的示例组件的框图。图2是表示包括在起初音频以非本机音频格式的情况下用于播放后台音频的示例组件的框图/控制流图。图3是表示用于准备并播放后台音频的示例操作的框图/控制流图。图4是表示可被传递以准备并播放后台音频的示例数据的框图/控制流图。图5是表示其中可实现在此处所描述的各实施例的一个或多个方面的示例性、非限制性计算系统或操作环境的框图,例如,在移动电话设备的例子中。
具体实施例方式此处描述的技术的各方面一般针对其中移动设备等包括后台音频服务的技术。为播放音频,应用(例如,第三方应用)经由后台音频服务向执行回放的媒体服务发送请求。通过提供具有已知的对于系统的影响大小的系统服务而不是允许不可信应用进程在后台中运行,提供了更多的安全性和稳定性,同时允许第三方应用指示后台音频回放和关于回放的操作。应当理解,此处的任何示例均是非限制性的。因此,本发明不限于在此描述的任何具体的实施例、方面、概念、结构、功能或示例。相反,此处所描述的实施例、方面、概念、结构、功能或示例中的任一个都是非限制性的,并且本发明一般能够以在计算和移动设备中提供好处和优点的各种方式来使用。图I是示出一个示例实现中各组件的框图。一般而言,媒体服务102播放由第三方应用104结合播放器代理106 (例如不具有用户界面的“无头主持(headless host)”)所指示的后台音轨,如下文描述的。应用104和/或播放器代理106与媒体服务102之间的通信经由包括API集的后台音频服务108 (后台音频播放器)。后台音频服务108支持基本回放和自定义编解码模式。回放模式可帮助设备省电,并且使得对应用的编码相对简单。在下文参考图2所描述的自定义编解码模式中,应用可执行更强大的操作,诸如支持专用DRM(数字权限管理)或专用编解码。
在一个实现中,应用104用对播放音频的请求来调用后台音频服务108。媒体服务102被通知,媒体服务102进而与应用实例管理器110(系统服务)通信以启动播放器代理106。媒体服务102与应用实例管理器110之间的通信请求为代理106保留资源,且向应用实例管理器110通知播放器代理106是对时序要求严格的资源(因此,在典型的操作环境中,该资源不会遭受中断(如果存在中断则提供差的用户体验))。一般而言,播放器代理106独立于应用104,因为两者中的一个可保持操作而另一个不操作、两者可同时操作,或在给定时间两者都不可操作。
在一个实现中,播放器代理106代表应用104作出实际回放请求和其他关于回放的请求(例如,跳过、倒带等)。这允许应用104从前台中被移除等等。在替换实现中,请求可在代理与应用之间共享,而应用选择例如哪些请求自己保留,哪些被委托给代理。注意,使播放器代理负责处理请求提供了优点请求可经由应用或其他系统服务发起,且由此不存在冲突,并且用户甚至可在应用已被终止或以其他方式被停用之后使用系统。一般而言,媒体服务102经由媒体服务委托/转换器112向应用实例管理器110通知各种事件,诸如用户动作以及任何播放状态改变;(注意,媒体服务委托/转换器112可另选地被合并到媒体服务102中)。示例用户动作包括播放、暂停、跳过、停止、跳过下一个、跳过前一个、查找、快进、倒带、关于评级的动作、随机播放和/或重复。示例播放状态包括正播放、已暂停、已停止、正快进、正倒带、缓冲已开始、缓冲已停止、音轨已准备好和/或音轨已结束。每次媒体服务想要与播放器代理106通信时,媒体服务102指示应用实例管理器110在需要时重新启动播放器代理106 ;注意,这允许应用实例管理器110在期望时将播放器代理106留在存储器中、使播放器代理106进入休眠状态(被保留在存储器中但直到被激活才能运行代码)、或完全终止播放器代理106并在需要时重新启动一实例。一旦被通知,媒体服务和播放器代理106可进行通信(经由后台音频服务108)以执行进一步动作,诸如请求播放下一音轨,向代理通知用户已经执行与音频有关的某一动作,例如,通过与应用104或系统提供的UVC (通用音量控制)114进行接口等等。图I中还示出了对现有和将来的操作系统用户体验的后台音频支持/集成,包括UVC(通用音量控制)114集成、本机第一方播放器114 (Zune )体验、以及经由XNA/Si I ver I i ght 环境120与程序118集成。为此,XNA和Silverlight 可使用本机回放API来执行音频回放,且媒体服务回放与来自Silverlight 和XNA的请求进行协调。该设计使得应用能够在一个进程中使用XNA和Silverlight 代码两者。其他方面包括“现在播放”令牌、电话调用中断以及其他。应注意,移动设备可按任何合适的形式输出音频。例如,移动设备可经由内置扬声器、经由头戴式耳机的耳机插孔、经由无线或有线通信来向另一设备输出音频(例如,通过Wi-Fi输出到外部声音系统)等等。媒体服务102可被认为是向信宿(sink)提供输入源信
肩、O图2是示出替换配置的框图,包括控制代理206和源代理222。控制代理类似于播放器代理并不再描述。源代理包括被配置成支持诸如从相关联的源流传输或渐进地下载的非本机支持的媒体格式的代码/逻辑。源代理222可由因特网音频服务、音乐服务等来提供,且一般而言,源代理222被配置成处理对已加密内容的解密、对已压缩内容的解压缩、对自定义编码格式的解码、自定义协议等等。源代理可处理一个或多个这样的自定义格式等等。与播放器代理/控制代理不同,需要源代理222保持可操作以提供正确地格式化的内容,并且由此不被应用实例管理器停用(除可能在异常环境下之外)。如图2中所表示的,应用204经由后台音频服务API向媒体服务102作出播放内容的请求,如图2中带标记的箭头(Ia)和(Ib)所表示的。进而,媒体服务102与应用实例管理器(带标记的箭头(2))通信,包括用于保留资源并启动控制代理206,类似于图I中所描述的(但不具有所示的委托/转换器)。控制代理206被启动,如带标记的箭头(3)所
/Jn ο当被启动时,控制代理206向媒体服务102作出各请求(箭头(4)),包括对特定源代理222的请求。源代理可能先前已经被加载到设备中且被保持在设备上或根据需要被下载。如经由带标记的箭头(5)和(6)所表示的,应用实例管理器启动源代理222。源代理222请求媒体服务播放音轨(箭头(7a)和(7b)),从而向媒体服务102通 知源代理222将提供(例如,流传输)正确地格式化的内容。源代理对控制代理206作出响应音轨已准备好(箭头(8a)和(8b))。源代理222将正确地格式化的音频内容(箭头(9a)和(9b))提供给媒体服务102的播放组件,(DShow 226,被合并入或耦合到媒体服务102)。在一个实现中,音频内容经由共享存储器228来缓冲,这由于避免了进一步的数据传送/复制而是高效的。如可看到的,在如图I的基本回放模式中,应用104可通过向服务102发送音轨(例如,统一资源标识符/URI或诸如HTTP URL)并且要求服务102播放该音轨,来实现回放体验。服务102负责部分的回放(对内容读取/下载/流传输,解析容器格式,内容解密,音频流解码等等)。在如图2的自定义编解码模式中,应用204结合源代理222经由任何任意机制按需获得内容(诸如下载、流传输、从本地存储中读取、或诸如为文本-语音等的动态生成),并在将内容传递给本机服务之前按需执行任意处理,诸如解密或解码。由于共享存储器228可被用于传递内容,因此可节省大量存储器,而相对于将已解码内容复制到另一存储器缓冲器具有提高的性能。该设计还使得ISV(独立软件厂商)能够通过提供相应的源代理(可能与应用一起),来更方便地保护其内容许可。转到另一方面,如上所述,设备系统提供UVC 114控制/用户界面,用户通过该UVC114控制/用户界面能够独立于应用104或204来控制音频回放。一般而言,在任何期望的时间,用户按一硬件按钮来带出UVC 114控制/用户界面。注意,在一个实现中,当应用104或204在前台时,应用可禁用、限制或以其他方式与UVC集成,诸如以示出代替UVC的控制或除了 UVC的控制以外该应用的控制,向UVC用户界面添加文本或图像(例如,专辑封面)等等。后台音频服务API 108使得应用能够在它接收用户交互时实现其自己的逻辑。用户与UVC系统用户体验的交互(诸如跳过一音轨)由应用来处理。应用具有禁用/启用UVC回放控制按钮、和/或改变诸如标题、艺术家和专辑封面之类的歌曲元数据的机会。为此,媒体服务102在回放状态改变时或其他相关事件发生时向应用前台代码、第一方后台代码116和UVC 114发送通知,以确保组件具有正确的元数据和回放状况。为了回放位置,应用能够查询后台服务。该通知设计使得应用、UVC 114和第一方播放器116能够获取正确的回放状况和元数据,而无需引入大量不必要的跨进程流量。当应用在后台时,用户可经由UVC 114与音频进行接口。例如,用户可增加或减小音量,暂停音轨,跳过音轨等等。媒体服务102由代理(或应用)经由“现在播放”令牌等来指示关于可在UVC用户界面上播放什么,例如,文本(标题、艺术家、专辑名和/或之类的),图像、徽标等。UVC 114与媒体服务102进行(例如,直接地)通信,包括用于订阅状况改变(例如,回放改变,诸如播放/暂停/已停止的播放状态以及项目已改变(音轨切换)通知,借此UVC拉取诸如来自媒体服务的供显示的标题/艺术家/专辑)等相关数据。经由应用/代理,媒体服务现在具有与正在播放什么有关的信息,且在音轨改变时媒体服务将指示UVC 114更新标题(新的音轨名)。如果媒体服务对多个音轨进行排队,则直到队列需要被更新/改变时才需要涉及应用/代理。注意,在一个替换方案中,代替发送要播放的单个音轨,应用/代理可发送多个音轨的播放列表。这可能是有效的,以便避免为每一新的音轨与代理进行通信(包括可能的启动)。此外,每一媒体项目(例如,音轨)与媒体控制标志中应用/代理可设置的、且对UVC 114能够针对音轨做什么进行控制的属性相关联。例如,应用可指定不能跳过一音轨 (诸如例如广告)。同样在允许跳过之前,另一应用可以让用户在必需完整收听一音轨之前、跳过某有限数量的音轨。一般而言,媒体控制标志包括允许/拒绝跳过下一个、跳过前一个、快进、暂停和倒带的属性。转到与设备的电话的集成,当有传入呼叫时,媒体服务被通知。在一个实现中,后台音乐音量被减小,且铃声在听觉上与后台音乐混合。用户可配置相关音量级。如果用户按下“忽略”,则铃声停止而后台音频将继续播放(例如,以其先前的音量级)。如果用户应答,则音频被暂停(例如,如果被媒体控制标志允许,或者如果不被允许则被音频静音)。由此,混合音频输出信号和铃声继续,直到呼叫尝试以某种方式结束,例如,呼叫尝试被忽略(通过显式用户动作或直到呼叫尝试终止)或(通过用户或自动地)被应答。当用户应答的呼叫结束时,音频恢复播放。图3和4以及以下简述场景示出第三方应用可如何使用受管理的后台音频回放API。出于简明起见,假设在以下示例中HTTP URL是所选择的URI。为此,图3和4示出用于媒体回放的场景的基本构件块以及数据/控制流。注意,如图所示,应用304和代理306具有它们自己的隔离的存储330,而媒体服务具有其自己的数据存储332,它可包括队列。以下所标记的步骤对应于图3中带圈的数字I.应用创建服务请求(“播放这一音轨并且当你需要下一音轨时回呼叫我”)2.服务开始播放音轨3.用户关闭应用4.当前音轨结束5.服务要求系统呼叫代理来获得下一音轨6.系统开始新的进程并调用代理7.代理执行逻辑并提供下一音轨信息8.系统挂起或销毁该代理9.当前音轨结束···(返回至步骤5)对于第三方应用后台音频回放,应用304用于联系其在web 334上的服务器。这通常包括认证用户以及检索任何用户数据。对于这一示例,假设要播放的内容由指向某一服务器的HTTP URL来表示。当应用304决定是时候开始播放音乐时,应用可执行以下示例步骤I.创建后台服务108 (包括API集)的实例。2.作为其初始化的一部分,后台服务108调用媒体服务102以便为应用304创建队列。这一调用在对于该应用队列尚未存在队列的情况下创建队列。3.应用304检查以查看后台音频服务108是否具有当前音轨。(对于这一示例,假设尚未存在队列)4.不存在当前音轨,因此应用304执行其操作以便从服务器取得音轨(可包括认证用户等等)。 5.对于这一示例,假设服务器返回指向要播放的音轨的HTTP URL。6.应用304按需创建音频音轨(AudioTrack)对象(或其他合适的数据结构)、URL中的传递、音轨名、以及任何其他元数据。7.应用304经由适当的功能调用将新音轨对象传递给后台音频服务108。8.后台音频服务108经由适当的功能调用来创建新的媒体项目。9.后台音频服务108查询给定音频音轨以寻找它在项目上设置的URL。10.后台音频服务108将该音频添加到媒体服务/队列。11.应用调用后台首频服务108的播放功能。12.后台音频服务108通过调用媒体服务来发起回放。13.应用接收其感兴趣的事件。14.外壳向应用告知它正关闭。15.应用拆毁其后台音频服务108对象,而媒体服务继续播放音轨。恢复回放(持续播放列表队列)是另一场景。用户轻叩电源按钮以打开屏幕。不用对手机解锁,用户可按下音量增加键来带出UVC,并轻叩播放按钮,并且与应用相对应的工作站再次开始播放例如其早先停止的同一歌曲。以下是一示例。I.代理接收“基于用户动作的回调(OnUserAction callback)”。该回调的参数提供对当前音轨的引用,而动作是“播放”。假设由于队列在相同点处被拆毁而不存在当前音轨。2.代理通知不存在当前音轨,由此代理到其永久存储去读入标题、源、以及其播放的最后音轨的位置。3.代理创建新的音频音轨并相应地设置元数据。4.代理通过调用后台音频服务108的“进程”功能,例如“后台音频播放.进程(BackgroundAudioPlayer. Progress) ”,来设置要在哪里恢复音频。5.代理将新的音频音轨对象传递到后台音频播放器。6.代理调用后台音频服务108。7.回放在用户离开处恢复(假设音轨在服务上仍然可用)。恢复应用(取得队列状态)是另一示例,其中用户决定复核他或她经由应用不能记住的歌曲标题。用户对设备解锁,导航至应用列表,并且轻叩应用图标。应用启用和并示当前播放的艺术家以及当前歌曲回放时间计数器。可以选择“事件”标签,该标签例如示出艺术家的音乐会即将到来。以下是一示例。I.应用创建后台音频服务108的实例。2.作为其初始化的一部分,后台音频服务108检查媒体服务以查看是否已经存在应用队列。3.媒体服务报告对于该应用存在后台队列。4.后台音频服务108检索当前正播放的音轨的媒体项目值,并创建包含媒体项目值的新音频音轨对象。5.应用检查以查看是否存在当前音轨,在这一示例中,存在当前音轨。
6.应用取得当前音轨并查询标题。7.由于这是第一元数据查询,因此音频音轨对象到达媒体服务并获得可用元数据。然后,返回标题。8.应用调用一功能(后台音频播放器·播放状态(BackgroundAudioPlayer.PlayState))以取得当前播放状态(正播放(Playing))。9.由于内容正在播放,应用调用一功能(音频音轨.持续时间(AudioTrack.Duration))以取得该音轨的持续时间。10.应用调用一功能(后台音频播放器.进程(BackgroundAudioPlayer.Progress))以取得当前位置。11.应用用该信息来更新它的用户界面(UI)。也可执行各应用之间的切换回放。当歌曲/工作站经由先前应用仍在播放时,用户可导航进入例如第一方媒体播放器(例如Zune ),并轻叩播客。用户轻叩播放下一新剧集按钮,使得先前工作站自动地停止播放而新的播客回放开始。播客播放一段时间,直到用户决定调到其他无线电内容。当先前播客仍在播放时,用户导航至应用列表并启动不同的应用,其中用户找到期望的无线电台并轻叩播放图标。播客自动地停止播放,且用户现在听到期望的无线电台。以下是一示例。I.原始后台音频代理接收关于保存(基于播放状态改变/关闭(OnPlayStateChanged/Shutdown))的回调。2.原始后台音频代理从给定后台音频服务实例中抓取当前音轨,并且保存标题、源、当前位置等等。它将这些值保存在其隔离的存储330中。3.为释放资源,原始后台音频代理调用后台音频服务的功能(后台音频播放器.关闭(BackgroundAudioPlayer. Close)),该功能指示媒体服务删除应用的队列。注意,在原始后台音频回放由于用户播放不同的媒体而被停止的事件中,作为关闭(Shutdown)的一部分,媒体服务释放原始应用/代理的该资源。播放列表控制(跳过)是另一合乎需要的特征。用户开始对音乐进行流传输,且然后例如进入游戏中心(Games hub)以选择游戏。在玩游戏几分钟之后,不合需要的歌曲被播放;而在游戏应用中,用户轻叩音量增加按钮,使得UVC控制出现。用户然后可轻叩跳过图标以便移动到另一歌曲上。以下是一示例。I.音频后台代理的基于用户动作(OnUserAction)回调被激发。该用户动作枚举被设置成跳过下一个(SkipNext)。2.音频后台代理调用(例如,基于公司的业务模型/规则)确定用户被允许跳过当前音轨的内部方法等等。3.音频后台代理查询web服务器以寻找要播放的下一音轨的URL。4.音频后台代理创建新的音轨对象,并设置URL和其他相关元数据。5.音频后台代理使用后台音频服务的对象,该对象也作为基于用户动作的参数之一来传递以便将新的音频轨道设置成新的当前音轨。这一动作导致当前正播放的音轨停止。6.音频后台代理调用“播放(Play) ”以开始播放新的音轨。示例性操作环境图5示出可在其上实现此处所描述的主题的各方面的合适的移动设备500的示例。移动设备500仅为设备的一个示例,并非旨在对此处所描述的主题的各方面的使用范 围或功能提出任何限制。移动设备500也不应被解释成对于在示例性移动设备500中所示出的任一组件或其组合有任何依赖或要求。参考图5,用于实现此处所述的主题的各方面的示例性设备包括移动设备500。在某些实施例中,移动设备500包括蜂窝电话、允许与其他手持设备的语音通信的手持设备、某一其他语音通信设备等。在这些实施例中,移动设备500可配备用于拍摄照片的照相机,虽然这在其他实施例中可能不是必需的。在其他实施例中,移动设备500包括个人数字助理(PDA)、手持游戏设备、笔记本计算机、打印机、包括机顶盒、媒体中心等的装置、或其他装置、其他移动设备等。在又一些实施例中,移动设备500可包括通常被认作非移动的设备,如个人计算机、服务器等。移动设备500的组件可以包括但不限于,处理单元505、系统存储器510和将包括系统存储器510在内的各种系统组件耦合至处理单元505的总线515。总线515可包括几种类型的总线结构中的任何一种,包括存储器总线、存储控制器、外围总线、以及使用各种总线体系结构中的任一种的局部总线等。总线515允许在移动设备500的各种组件之间传送数据。移动设备500可以包括各种计算机可读介质。计算机可读介质可以是能由移动设备500访问的任何可用介质,而且包含易失性和非易失性介质以及可移动、不可移动介质。作为示例而非限制,计算机可读介质可包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其它数据这样的信息的任意方法或技术来实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括但不限于,RAM、ROM、EEPR0M、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储、磁带盒、磁带、磁盘存储或其他磁存储设备、或者可用于存储所需信息并且可由移动设备500访问的任何其他介质。通信介质通常以诸如载波或其他传输机制等已调制数据信号来体现计算机可读指令、数据结构、程序模块或其他数据,并包括任何信息传送介质。术语“已调制数据信号”是指具有以在信号中编码信息的方式被设定或改变其一个或多个特征的信号。作为示例而非限制,通信介质包括有线介质,诸如有线网络或直接线连接,以及无线介质,诸如声学、RF、蓝牙 、无线USB、红外、WiFi、WiMAX、和其它无线介质。上述的任意组合也应包含在计算机可读介质的范围内。系统存储器510包括易失性和/或非易失性存储器形式的计算机存储介质,且可包括只读存储器(ROM)和随机存取存储器(RAM)。在诸如蜂窝电话等移动设备上,操作系统代码520有时被包括ROM中,虽然在其他实施例中,这不是必需的。类似地,应用程序525通常位于RAM中,虽然同样在其他实施例中,应用程序可位于ROM中或其他计算机可读存储器中。堆530提供用于与操作系统520和应用程序525相关联的状态的存储器。例如,操作系统520和应用程序525可在其操作期间将变量和数据结构存储在堆530中。移动设备500还可包括其他可移动/不可移动、易失性/非易失性存储器。作为示例,图5示出闪存卡535、硬盘驱动器536、以及记忆棒537。例如,可小型化硬盘驱动器536以适应存储器槽。移动设备500可经由可移动存储器接口 531与这些类型的非易失性可移动存储器接口,或可经由通用串行总线(USB)、IEEE 5394、一个或多个有线端口 540、或天线565连接。在这些实施例中,可移动存储器设备535-537可经由通信模块532与移动设备接口。在某些实施例中,并非所有这些类型的存储器都可被包括在单个移动设备上。在其他实施例中,可将这些和其他类型的可移动存储器中的一个或多个包括在单个移动设备上。
在某些实施例中,可按更永久地附连到移动设备500的方式连接硬盘驱动器536。例如,硬盘驱动器536可连接到诸如并行高级技术附件(PATA)、串行高级技术附件(SATA)或其他可连接到总线515的附件等接口。在此类实施例中,移除硬盘驱动器可涉及移除移动设备500的外壳并移除将硬盘驱动器536连接到移动设备500内的支承结构的螺丝钉或其他紧固件。以上描述和在图5中示出的可移动存储设备535-537及其相关联的计算机存储介质提供对用于移动设备500的计算机可读指令、程序模块、数据结构、和其他数据的存储。例如,可移动存储器设备535-537可存储由移动设备500拍摄的图像、语音录音、联系人信息、程序、用于程序的数据等。用户可通过诸如键盘541和话筒542等输入设备向移动设备500中输入命令和信息。在某些实施例中,显示器543可以是触敏屏幕并可允许用户在其上输入命令和信息。键盘541和显示器543可通过耦合到总线515的用户输入接口 550连接到处理单元505,但也可由其他接口和总线结构连接,如通信模块532和有线端口 540。运动检测552可用于确定对设备500作出的姿势。例如,用户可经由对话筒542讲话以及经由在键盘541或触敏显示器543上输入的文本消息来与其他用户通信。音频单元555可提供电信号以驱动扬声器544以及接收并数字化接收自话筒542的音频信号。移动设备500可包括提供信号以驱动照相机561的视频单元560。视频单元560还可接收由照相机561获得的图像并将这些图像提供给包括在移动设备500上的处理单元506和/或存储器。由照相机561获得的图像可包括视频、不形成视频的一个或多个图像、
或其某一组合。通信模块532可向一根或多根天线565提供信号并从其接收信号。天线565之一可发射并接收用于蜂窝电话网络的消息。另一天线可发射并接收蓝牙 消息。又一天线(或共享天线)可经由无线以太网网络标准发射并接收网络消息。更进一步,天线将例如GPS信号等基于位置的信息提供给GPS接口和机制572。GPS机制572又使相应的GPS数据(例如时间和坐标)可用于处理。
在某些实施例中,可使用单根天线来发射和/或接收用于超过一种类型的网络的消息。例如,单根天线可发射并接收语音和分组消息。当在网络化环境中操作时,移动设备500可连接到一个或多个远程设备。远程设备可包括个人计算机、服务器、路由器、网络PC、蜂窝电话、媒体回放设备、对等设备或其他常见的网络节点,并且一般包括上面相对于移动设备500所述的许多或全部元件。本文所描述的主题的各方面可与众多其他通用或专用计算系统环境或配置一起操作。适用于此处所描述的主题的各方面的公知的计算系统、环境和/或配置的示例包括,但不限于,个人计算机、服务器计算机、手持式或膝上型设备、多处理器系统、基于微处理器的系统、机顶盒、可编程消费电子产品、网络PC、小型计算机、大型计算机、包括上述系统或设备中的任一个的分布式计算环境等。此处所描述的主题的各方面可在由移动设备执行的诸如程序模块等计算机可执行指令的一般上下文中描述。一般而言,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。本文所描述的主题的各方面也可以在其中任 务由通过通信网络链接的远程处理设备执行的分布式计算环境中实现。在分布式计算环境中,程序模块可以位于包括存储器存储设备在内的本地和远程计算机存储介质中。此外,虽然此处频繁使用术语服务器,但可以认识到,该术语也可涵盖客户机、分布在一个或多个计算机上的一个或多个进程的集合、一个或多个独立的存储设备、一个或多个其他设备的集合、以上的一个或多个的组合,等等。结论尽管本发明易于作出各种修改和替换构造,但其某些说明性实施例在附图中示出并在上面被详细地描述。然而应当了解,这不旨在将本发明限于所公开的具体形式,而是相反地,旨在覆盖落入本发明的精神和范围之内的所有修改、替换构造和等效方案。
权利要求
1.在计算环境中,一种系统,所述系统包括,被配置成在移动设备上的后台进程中播放音频的媒体服务,当在前台时应用用来与所述媒体服务通行的接口集,所述应用经由所述接口将与要播放的音频数据相对应的信息传输至所述媒体服务,所述媒体服务被配置成在所述媒体服务播放后台音频时对针对所述音频播放的请求采取动作。
2.如权利要求I所述的系统,其特征在于,所述应用向所述媒体服务提供统一资源标识符,作为与要播放的音频数据相对应的信息。
3.如权利要求I所述的系统,其特征在于,所述媒体服务用于启动提供针对所述音频回放的请求中的至少一个请求的代理。
4.如权利要求I所述的系统,其特征在于,还包括提供针对所述音频回放的请求中的至少一个请求的通用音量控制组件。
5.如权利要求4所述的系统,其特征在于,当在前台时所述应用提供确定所述通用音量控制组件的操作的信息。
6.如权利要求4所述的系统,其特征在于,所述媒体服务提供呈现在所述通用音量控制组件的用户界面上的信息。
7.如权利要求I所述的系统,其特征在于,还包括源代理,所述源代理被配置成输出所述媒体服务将其处理成所述音频回放的输出音频数据,所述源代理使用编解码器、解密机制、解压缩机制、或专用协议,或编解码器、解密机制、解压缩机制、或专用协议的任何组合,来提供所述音频数据。
8.如权利要求7所述的系统,其特征在于,所述源代理被配置向共享存储器输出所述音频数据以供处理。
9.如权利要求I所述的系统,其特征在于,所述与要播放的音频数据相对应的信息与控制标志相关联,所述控制标志包括经由一个或多个属性来指示所述媒体服务是否被允许对所述音频回放采取特定行动的数据。
10.如权利要求9所述的系统,其特征在于,所述控制标志包括一个或多个属性集合,所述集合包括用于以下各项的一属性跳过下一个的动作、跳过前一个的动作、快进动作、暂停动作、或倒带动作,或以下各项的各属性的任何组合跳过下一个的动作、跳过前一个的动作、快进动作、暂停动作、或倒带动作。
11.如权利要求I所述的系统,其特征在于,所述针对音频回放的请求与用户动作相对应,且包括播放、暂停、跳过、停止、跳过下一个、跳过前一个、查找、快进、倒带、关于评级的动作、随机播放或重复,或播放、暂停、跳过、停止、跳过下一个、跳过前一个、查找、快进、倒带、关于评级的动作、随机播放或重复的任何组合。
12.如权利要求I所述的系统,其特征在于,所述媒体服务通过返回状态信息来对针对音频回放的请求采取动作,所述状态信息包括正播放、已暂停、已停止、正快进、正倒带、缓冲已开始、缓冲已停止、音轨已准备或音轨已结束,或正播放、已暂停、已停止、正快进、正倒带、缓冲已开始、缓冲已停止、音轨已准备或音轨已结束的任何组合。
13.如权利要求I所述的系统,其特征在于,所述媒体服务被耦合到维护多个音频音轨的播放列表的回放队列。
14.在计算环境中,一种至少部分地在至少一个处理器上执行的方法,所述方法包括,将音频音轨信息从音频应用传输至媒体服务作为计算设备的前台应用来操作,获取与所述音频音轨信息相对应的音频数据,关闭所述前台应用,在所述媒体服务中处理所述音频数据以播放所述音频音轨,包括作为后台音频而另一个前台应用正在运行。
15.如权利要求14所述的方法,其特征在于,采取行动来启动代理以便获取附加的音频音轨信息。
16.如权利要求14所述的方法,其特征在于,还包括,将由所述应用或所述代理或这两者所提供的信息提供给通用音量控制组件,以供经由所述通用音量控制组件的用户界面来呈现与所述信息相对应的输出。
17.如权利要求14所述的方法,其特征在于,还包括采取行动来启动源代理,所述源代理被配置成将非本机音频格式化的数据处理成要被处理的本机音频数据以便播放所述音频音轨。
18.—个或多个具有计算机可执行指令的计算机可读介质,所述计算机可执行指令在被执行时执行以下步骤,包括 运行音频用户接口应用,作为移动设备上的前台应用; 经由后台音频服务接口将信息从所述音频用户接口应用传输至媒体服务,所述信息针对播放至少一个音频音轨;以及 处理与所述媒体服务中的至少一个音频音轨相对应的音频数据,以包括在所述音频用户接口应用被禁用之后提供音频供输出。
19.如权利要求18所述的一个或多个计算机可读介质,其特征在于,还具有计算机可执行指令,用以经由所述移动设备来输出与所述音频相对应的可听信号,在所述移动设备上接收电话呼叫尝试,以及将铃声与所述可听信号混合直到所述呼叫尝试结束。
20.如权利要求18所述的一个或多个计算机可读介质,其特征在于,还具有计算机可执行指令,用以运行源代理以便将非本机音频数据处理成由所述媒体服务所处理的音频数据。
全文摘要
本发明公开了移动设备上的后台音频。本发明涉及其中移动设备服务播放如第三方音频播放器设备所指示的后台音频的技术。例如,随着另一应用变成前台应用,服务在音频播放器应用从前台被禁用之后继续播放后台音频。还描述了启动代理以获取附加信息和/或处理自定义音频格式,以及处理来自通用(系统)音量控制或音频播放器应用(当在前台时)的用户请求。
文档编号G06F9/48GK102779070SQ201210031630
公开日2012年11月14日 申请日期2012年2月13日 优先权日2011年2月14日
发明者B·W·尼尔勒, C·J·皮尔逊, E·H·比耶, M·L·威尔逊, P·J·托尔, R·江, W·G·帕顿三世, Y·王, 许乐杰 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1