Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/274.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# MediaPlayer vs BackgroundAudioPlayer_C#_Windows Phone 8_Windows Phone - Fatal编程技术网

C# MediaPlayer vs BackgroundAudioPlayer

C# MediaPlayer vs BackgroundAudioPlayer,c#,windows-phone-8,windows-phone,C#,Windows Phone 8,Windows Phone,我正在开发一个Windows Phone应用程序,在后台播放/流式播放音乐 为了实现这一点,我尝试同时使用和类。 在这两种情况下,一切都很好,所以我想知道,这些方法的优点/缺点是什么,因为现在我无法决定哪一种更好 我唯一不喜欢BackgroundAudioPlayer的地方是,我需要为audio agent创建单独的项目,并担心通过隔离存储传输曲目信息。但既然我已经这么做了。这不是问题 那么,这两个类之间还有其他区别吗 我认为MediaPlayer要求应用程序位于前台。BackgroundAud

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

为了实现这一点,我尝试同时使用和类。 在这两种情况下,一切都很好,所以我想知道,这些方法的优点/缺点是什么,因为现在我无法决定哪一种更好

我唯一不喜欢BackgroundAudioPlayer的地方是,我需要为audio agent创建单独的项目,并担心通过隔离存储传输曲目信息。但既然我已经这么做了。这不是问题


那么,这两个类之间还有其他区别吗

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


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

这取决于您的程序。如果您只想在使用程序时播放背景音乐,则应使用MediaPlayer。否则,在任何情况下,你都必须照顾好背景音频播放器。这也会激怒用户,他们在使用你的应用程序时也想听自己的音乐

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


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

这是有道理的,但MediaPlayer是在后台运行的(MediaElement要求应用程序位于前台)。更重要的是,MediaPlayer就像音乐中心一样,所以如果我用它开始一首歌,然后点击UVC的歌名,手机就会导航到音乐中心(不是我的应用程序)。关于前景限制,请阅读我对Matt答案的评论。互斥部分更有趣,因为我找不到一种方法来创建在应用程序和代理项目中都可用的单个实例。因此,我只是在IsolatedStorageSettings中编写了信息,希望.NET Framework能够处理它:)