微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

WP7上使用Silverlight播放音频的四种方法总结

最近的项目开发中遇到了这个问题,基本尝试了所有使用Silverlight on WP7来播放音频流的方法,总结了一下它们各自的特点。

  1、MediaElement

  优点:Silverlight自带控件,支持mp3和部分视频格式,方便控制。

  缺点:不支持wav格式,需自行编写解码器(mediastreamsource)。

  适用场合:前台播放。

  相关代码:无,参考MSDN即可。

  2、Song+MediaPlayer

  优点:小巧轻便,简单易用,支持格式多,可直接从Uri中加载。

  缺点:需启用XNA Framework。

  适用场合:后台播放完整音频。

  相关代码

song = Song.FromUri( "music"new Uri( "badapple.mp3", UriKind.Relative));MediaPlayer.Play(song);

 

  3、SoundEffect+SoundEffectInstance

  优点:可同时播放多段音频,支持简单的音效处理。

  缺点:需启用XNA Framework,且仅支持wav文件

  适用场合:后台播放多音频片段,并需要音效处理。

soundEffect = SoundEffect.FromStream(stream);
soundEffectInstance = soundEffect.CreateInstance();
soundEffectInstance.Play();

  4、SoundEffect+DynamicsoundEffectInstance

  优点:在3的基础上,DynamicsoundEffectInstance支持buffer机制(BufferNeeded事件和SubmitBuffer方法)。

  缺点:需启用XNA Framework,且仅支持wav文件,另外DynamicsoundEffectInstance的buffer只支持byte[]格式,同时对wav的格式有所要求(参考资料[1])。

  适用场合:后台播放音频片段,并需要支持buffer机制。

  相关代码:懒得写了,请自行研究。

  参考资料:

  [1]MSDN:Audio API Developers Guide

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐