当前位置: 首页 > news >正文

义务网站建设/企业网站优化解决方案

义务网站建设,企业网站优化解决方案,网页制作与网站建设...,做网站wordpress应用于: Windows Phone 8 | Windows PhoneOS 7.1 你可以为winphone编写在后台播放音乐的app。这表示即使当用户点击返回或开始按钮离开你的应用界面时,你的应用依然可以继续播放音乐。本文讨论后台音乐应用的组成以及它们如何一起工作。 本文包含以下几…


应用于: Windows Phone 8 | Windows PhoneOS 7.1

你可以为winphone编写在后台播放音乐的app。这表示即使当用户点击返回或开始按钮离开你的应用界面时,你的应用依然可以继续播放音乐。本文讨论后台音乐应用的组成以及它们如何一起工作。

本文包含以下几节。

·后台音频架构

·后台音乐的最佳实践

后台音频架构

后台音频应用利用了后台代理作为基础。后台代理是从Windows Phone OS 7.1引入的。更多信息见Multitasking for Windows Phone.

Windows Phone上的所有媒体都是通过Zune Media队列播放的。你的后台音频应用发送命令到Zune Media队列来设置当前音轨、开始回放、暂停、快进、从头播放、等等之类。你通过调用BackgroundAudioPlayer类中的方法两做这些事情。实例对象然后与Zune Media队列通信以管理音频回放。

全局音量控制(UVC)是一个控制集,当播放音乐时或用户按下音乐控制开关时,它就出现在锁屏上。UVC也管理着Zune Media队列。因此,当开始从你的应用播放某些东西时,音频就可以通过使用UVC控制进行。UVC发送事件到你的应用中的AudioPlayerAgent ,使得你可以实现播放列表逻辑。

共有两种后台音频应用。一种是实现了一个简单的播放列表,并传一个包含了媒体文件的地址的Uri给Zune Media 队列来设置当前的Track。Uri 可以是一个本地地址也可以是一个远程地址。同时这也要求音频必须是WindowsPhone支持的类型。见Supported media codecs for Windows Phone 查看有效的音频文件类型。

另一种是使用MediaStreamSource实现一个音频流,向回放系统提供音频样点。此种流的格式可以随意,因为你自己从MediaStreamSource 实现一个派生类来处理流和音频解码。如何实现一个MediaStreamSource 超出了本文的范围。

这两种应用有很多共通点。我们将先讨论实现一个播放列表的应用,再讨论使用MediaStreamSource(MSS)实现流的一些内容。

播放列表应用

要创建一个后台音频播放列表应用,你必须实现两部分:一个提供用户界面来控制回放的应用,和一个实现了AudioPlayerAgent的派生类的assembly。

应用界面

如果你使用Visual Studio模板来创建你的应用,你的应用界面就存放于MainPage.xaml 和MainPage.xaml.cs 文件中。你的主应用使用Instance 来设置Zune Media队列的当前track、初始化回放,等等之类。

AudioPlayerAgent

你的AudioPlayerAgent 是被操作系统实例化的。用于处理用户发出的动作。动作可能通过你的应用界面发出也可能通过UVC。

你的AudioPlayerAgent 运行于后台并且调用一个BackgroundAudioPlayer的实例,BackgroundAudioPlayer又调用Zune Media 队列来实际播放音频。

当你的agent 处理完成OnUserAction(BackgroundAudioPlayer, AudioTrack, UserAction,Object)OnPlayStateChanged(BackgroundAudioPlayer, AudioTrack,PlayState)、或OnError(BackgroundAudioPlayer, AudioTrack, Exception,Boolean),就调用NotifyComplete 来通知操作系统你已经完成了,然后agent就可以安全的从内存中删除。

使用Windows Phone Audio Playback Agent 模板来创建一个新的AudioPlayerAgent 工程,然后把它添加到你的解决方案中。然后还要设置引用关系。

音频流应用

要创建一个音频流应用,你必须实现与Playlist Application相同的部分。典型地,你必须创建一个带有用户界面的主应用,和一个AudioPlayerAgent。 对于一个音频流应用,你还需要实现一个从AudioStreamingAgent派生的类和一个从MediaStreamSource派生的类。你要实现的部分是下表中的绿色部分。

音频流Agent

AudioStreamingAgent 负责创建MediaStreamSource 并指定Zune Media 队列到这个MediaStreamSource 。这通过调用传给OnBeginStreaming(AudioTrack, AudioStreamer) 方法的参数AudioStreamerSetSource(MediaStreamSource) 方法来指定。

使用Windows Phone Audio Streaming Agent 模板来创建一个新的AudioStreamingAgent 工程并添加到你的解决方案。

MediaStreamSource

Zune Media Queue 调用你的MediaStreamSource 来获取音频样点。创建MediaStreamSource 超出本文讨论范围。更多信息请见MediaStreamSourcesample

后台Agent 生命期

你的AudioPlayerAgent 是被BackgroundAudioPlayer创建的,当BackgroundAudioPlayer需要处理从你的应用界面或UVC发来的UserAction 请求时就会创建它。

你的AudioStreamingAgent也是被BackgroundAudioPlayer创建的,当BackgroundAudioPlayer需要一个新的流时就创建它。当你的agent被创建后,BackgroundAudioPlayer调用AudioStreamingAgent中的OnBeginStreaming(AudioTrack, AudioStreamer) 方法。

后台代理会在调用了Abort NotifyComplete 后被清理掉。

其它的后台音频类

后台音频应用使用了其它一些类来完成音频播放器体验。

BackgroundAudioPlayer

BackgroundAudioPlayer 面向Zune Media队列。在其Instance上的调用会影响设备上音频的播放。

AudioTrack

AudioTrack 代表了一个track的元数据,包括title、artist、album、和URI。如果URI被设置为null,系统就认为你把track设置为一个MediaStreamSource。此时,你可以使用Tag 属性从AudioPlayerAgentAudioStreamingAgent传递信息。

AudioStreamer

AudioStreamer 的实例被传给OnBeginStreaming(AudioTrack, AudioStreamer)。在你的OnBeginStreaming实现中,调用SetSource(MediaStreamSource) 来指定一个从MediaStreamSource派生的类,这个类提供音频样点。

http://www.lbrq.cn/news/1301005.html

相关文章:

  • 做网站要找什么公司/昆明seo网站管理
  • 苹果cms做的影视网站/关键词检索
  • 内蒙营销型网站建设/展示型网站设计公司
  • 婚纱摄影网站/美国疫情最新数据消息
  • 如何做慕课网站/网站的网站建设
  • dw网站建设视频下载/sem竞价教程
  • 广州中小学安全教育平台/aso关键词覆盖优化
  • 网站做的app有哪些/天津疫情最新情况
  • 网站设计与运营第二次/直播引流推广方法
  • 哪有网站建设的/网站推广的方法和途径
  • 阿里云个人怎么免费做网站/软件推广怎么赚钱
  • 外贸网站建设公司流程/建网站的公司
  • 沧州做网站的专业公司/百度竞价专员
  • 网站建设的行业代码是多少钱/下载优化大师并安装
  • 来年做那些网站致富/人工智能培训班收费标准
  • v电影主题 wordpress/网站关键词优化排名软件系统
  • 想在自己的网站做支付/请输入搜索关键词
  • 外贸营销型网站制作/seo文章生成器
  • 创建网站需要备案吗/百度爱采购关键词优化
  • 营销型网站建设urkeji/免费长尾词挖掘工具
  • 用帝国cms系统怎么做网站/搜索引擎有哪些好用
  • 最早做视频播放网站/竞价排名什么意思
  • 网站建设销售提点20个点/泉州关键词优化软件
  • 运营网站需要多少钱/360seo
  • wordpress 更新 慢/如何对一个网站进行seo
  • 做网站为什么要买服务器/网店运营教学
  • 互联网站安全服务平台操作指南/免费公司网站建站
  • 苏州保洁/新塘网站seo优化
  • 网站怎么在百度搜到/如何利用网络进行推广和宣传
  • wordpress 小程序/免费seo优化
  • 从丢包到恢复:TCP重传机制的底层逻辑全解
  • Django母婴商城项目实践(六)- Models模型之ORM操作
  • MySQL基础教程
  • GEV/POT/Markov/点过程/贝叶斯极值全解析;基于R语言的极值统计学
  • Docker Swarm 集群使用记录
  • bmp图像操作:bmp图像保存及raw与bmp转换