我正在开发一个用c#播放Windows Phone 8背景音频的程序。 我的解决方案包含2个项目:主项目和AudioPlaybackAgent项目。
在AudioPlaybackAgent中,我添加了静态变量self.line.removeFromParent()
获取并设置在文件" AudioPlayer.cs":
currentTrackNumber
在主项目中,我尝试更新文件中的静态变量 " MainPage.xaml.cs中"添加:
namespace AudioPlaybackAgent
{
public class AudioPlayer : AudioPlayerAgent
{
static int currentTrackNumber = 0;
...
...
public static int CurrentTrackNumber
{
get { return currentTrackNumber; }
set { currentTrackNumber = value; }
}
...
...
}
}
但变量并没有改变。为什么呢?
答案 0 :(得分:2)
项目在不同的进程中运行,因此它们具有静态的单独副本。您通常可以通过覆盖的代理方法获取跟踪更改等基本信息。如果您需要更多信息(例如任意跳转到播放列表),那么您可以使用文件和IPC机制(如Win32事件)发信号 - 请参阅this post and associated sample。
通用Windows应用程序的效果会更好,因为可以直接通过BackgroundMediaPlayer class来回发送消息。