从其他任务访问BackgroundMediaPlayer

时间:2014-12-26 15:37:36

标签: c# windows-phone-8.1 background-process background-audio

我有一个应用程序,它有两个后台任务:后台音频任务和蓝牙任务。我想要做的是从蓝牙任务的代码中修改音频播放的状态,而不必通过前台应用程序。我试着把它放在蓝牙任务中,希望它可以工作:

if (BackgroundMediaPlayer.Current.CurrentState == MediaPlayerState.Playing)
   BackgroundMediaPlayer.Current.Pause();

但事实证明它不起作用。即使正在播放背景音频,当我从蓝牙任务访问其状态时,其值等于 MediaPlayerState.Closed()。任何人都知道我该怎么做呢?我认为这样做是因为BackgroundMediaPlayer是一个全局对象,在整个手机中只有一个实例,但显然 .Current 属性显然是每个项目特有的。我注意到它的类型为 MediaPlayer ,所以有什么方法可以将对象放在我可以从这两个任务访问的全局容器中吗?

提前致谢

1 个答案:

答案 0 :(得分:0)

我只回答这个问题,以防像我这样的人需要为WP8.1开发。

我能想到的唯一方法是将两个后台任务放在中 相同的解决方案并使用ApplicationData.Current.LocalSettings将值保存到设置中,并从音乐播放器任务中的设置中间隔拉出更改。

基本上,后台音频任务会密切关注设置,以查看蓝牙后台任务是否更改了它们,然后通过暂停或播放音频来响应。