检查播放的背景音频,如果是,请转到确切的页面

时间:2013-10-16 08:36:34

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

我想在启动应用程序或激活后检查BackgroundAudioPlayer是否正在播放,如果是,则转到播放器页面。我知道我无法使用NavigationService,我发现在App.xaml.cs中,我应该像在Activated中使用RootVisual但它不起作用。 RootVisual为null。第一个没有错误,但问题是我到MainPage.xaml。那么我该如何解决呢?感谢

    private void Application_Launching(object sender, LaunchingEventArgs e)
    {
        if (BackgroundAudioPlayer.Instance.PlayerState == PlayState.Playing)
            RootFrame.Navigate(new Uri("/PlayerPage.xaml", UriKind.RelativeOrAbsolute));
    }

    private void Application_Activated(object sender, ActivatedEventArgs e)
    {
        if (BackgroundAudioPlayer.Instance.PlayerState == PlayState.Playing)
            (Application.Current.RootVisual as PhoneApplicationFrame).Navigate(new Uri("/PlayerPage.xaml", UriKind.RelativeOrAbsolute));
    }

1 个答案:

答案 0 :(得分:1)

我修改了你的代码,请看看;它会对你有用。

从Application_Activated事件中删除您的代码并将其放入Application_Launching Event。并且不要在Application_Activated中写入任何内容。(在导航上下文中)。请按照以下两个步骤进行操作:

<强> STEP-1 转到 WMAppManifest.xml 文件,然后从默认任务中删除“ MainPage.xaml ”条目。并保留NavigationPage的空白条目。像这样NavigationPage=""

请参阅以下相同的代码段。

<Tasks>
    <DefaultTask  Name ="_default" NavigationPage=""/>
  </Tasks>
  <Tokens>
    <PrimaryToken TokenID="liveTilesToken" TaskName="_default">
      <TemplateType5>
        <BackgroundImageURI IsRelative="true" IsResource="false">Background.png</BackgroundImageURI>
        <Count>0</Count>
        <Title>liveTiles</Title>
      </TemplateType5>
    </PrimaryToken>
  </Tokens>

STEP-2 相应地更新代码

private void Application_Launching(object sender, LaunchingEventArgs e)
        {
            Uri newUri = null;
            newUri = true ? new Uri("/MainPage.xaml", UriKind.Relative) : new Uri("/PlayerPage.xaml", UriKind.Relative);
            RootFrame.Navigate(newUri);
        }

希望它有所帮助。

谢谢。