我读到 Windows Phone 7 提供了许多用于播放音频的类
它们之间有什么区别?我应该选择什么
MediaElement
是一个位于可视化树中的控件(这意味着您需要将它放在页面上的某个位置,即使它被隐藏,否则它不会播放)。您可以从独立存储、您的 XAP 文件或网络上流式传输歌曲。可以在此处查看支持的文件类型。
SoundEffect
是一个XNA
组件,通常用于循环背景音乐或枪声。这类似于MediaElement
它不会改变用户的MediaPlayer
设置,但两者之间的区别在于MediaElement
您SoundEffect
可以同时进行多个SoundEffects
播放,而您只能MediaElement
在页面上拥有一个控件。另外,我相信只WAV
支持文件。即使它是一个 XNA 组件,它也可以在 Silverlight 中使用。
MediaPlayer
是系统范围的播放器。它是您从 播放曲目时使用的那个Music and Video Hub
,以及当您按下手机的音量按钮并查看时您控制的那个Universal Volume Control
(覆盖层与播放、暂停、下一个和上一个按钮一起下降)。如果用户当前正在收听曲目并且他们运行您的应用程序,该应用程序将接管MediaPlayer
,则用户的曲目将停止并替换为您的曲目。
BackgroundAudioPlayer
旨在让用户离开您的应用但继续播放应用的音乐。这就是主音乐播放器所做的事情,这就是为什么您可以关闭Music and Video hub
,但仍继续播放音乐的原因。
您使用什么取决于您的应用程序是什么以及您需要什么。没有一刀切的推荐。此外,您应该阅读应用指南,以确保您的应用不会对无法通过市场提交的音频进行任何处理。