在我的Windows Phone 7应用程序中,我使用以下代码导航到页面
private void button2_Click(object sender, RoutedEventArgs e)
{
NavigationService.Navigate(new Uri("/Views/Game.xaml, UriKind.RelativeOrAbsolute));
}
在Game.xaml.cs的OnNavigatedTo事件中,我使用以下代码一个接一个地播放两个wav文件。为了让我同时防止两个音频播放,我使用while循环等到第一个音频播放完毕然后播放第二个文件。我相信这是在显示游戏页面之前导致第一个音频播放的原因。有没有更好的方法呢?
protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e)
{
playAudio("intro.wav");
while (MySoundEffect.State == SoundState.Playing)
{
}
playAudio("firstQuestion.wav");
base.OnNavigatedTo(e);
}
以下是playAudio的代码。
protected void playAudio(string fileName)
{
Stream stream = TitleContainer.OpenStream("audio/" + fileName);
SoundEffect effect = SoundEffect.FromStream(stream);
MySoundEffect = effect.CreateInstance();
FrameworkDispatcher.Update();
MySoundEffect.Play();
}
MySoundEffect是Game类的一个属性。
private SoundEffectInstance _MySoundEffect;
public SoundEffectInstance MySoundEffect
{
get { return _MySoundEffect; }
set { _MySoundEffect = value; }
}
每当用户点击按钮,声音