2

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

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

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

提前致谢

4

1 回答 1

0

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

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

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

于 2017-05-15T11:58:20.590 回答