MediaPlayer与BackgroundAudioPlayer

时间:2013-08-16 21:50:34

标签: c# windows-phone-8 windows-phone

我正在开发一个在后台播放/流式传输音乐的Windows Phone应用程序。

为实现这一目标,我尝试使用Microsoft.Phone.BackgroundAudio.BackgroundAudioPlayerMicrosoft.Xna.Framework.Media.MediaPlayer类。 在这两种情况下,一切工作都很好,所以我想知道,这些方法的优点/缺点是什么,因为现在我无法决定哪一个更好。

我在BackgroundAudioPlayer中唯一不喜欢的是,我需要为音频代理创建单独的项目,并担心通过IsolatedStorage传输跟踪信息。但是因为我已经这样做了。这不是问题。

那两个班级之间还有其他差异吗?

2 个答案:

答案 0 :(得分:2)

这取决于你的程序。如果您只想在使用程序时播放背景音乐,则应使用MediaPlayer。否则你必须在任何情况下处理BackgroundAudioPlayer。这也会让用户感到烦恼,他们也想在使用你的应用程序时听自己的音乐。

否则,如果您的背景音乐是​​该计划的主要目的,则用户希望启动您的音乐并切换到其他程序。然后它继续播放,您可以控制音量栏中的音乐。这就是为什么你必须为BackgroundAudioPlayer创建一个后台任务的原因。切换到其他程序时,主应用程序将以两种方式停止。

简而言之:游戏背景音乐永远不应该在离开游戏后播放(使用MediaPlayer) - 但我从不想看我的音乐播放器计算时间,同时听我的音乐库(使用BackgroundAudioPlayer)。

答案 1 :(得分:1)

我相信MediaPlayer要求应用程序位于前台。 BackgroundAudioPlayer将让用户启动曲目,退出应用程序,音乐将继续播放,代理可以响应UVC。

确保在前台应用程序和后台音频代理之间进行通信时使用互斥锁。