2014-07-10 79 views
0

当我点击按钮1时,MediaElement将播放该句子的发音。然后如果我点击按钮没有2我将导航到SoundRecord页面。那么如果我再次单击上一页的后退按钮(如图中所示),MediaElement会播放您选择的以前的发音而不调用任何功能... 原因是什么?如何解决此问题?Windows Phone 8.0 MediaElement播放声音时没有任何呼叫

enter image description here

也这是戏码声音文件:

public void PlayPronunciation(string fileName, MediaElement soundPlayer) 
    { 
     var path = string.Format("Assets/Audio/{0}.mp3", fileName); 
     soundPlayer.Source = new Uri(path, UriKind.Relative); 
     soundPlayer.AutoPlay = true; 

     if (soundPlayer.CurrentState == MediaElementState.Stopped) 
      soundPlayer.Play(); 
    } 

对于页面卸载事件的临时解决方案,我没有这样的事情,但我认为这不是一个很好的方式来解决我的问题:

private void PhoneApplicationPage_Unloaded(object sender, RoutedEventArgs e) 
{ 
SoundPlayer.AutoPlay = false; 
} 
+1

只是删除'soundPlayer.AutoPlay = true;'如果您使用if(soundPlayer.CurrentState == MediaElementState.Stopped) soundPlayer.Play();' – csharpwinphonexaml

+0

感谢您的回复,我做到了,但不幸的是它不工作:( –

+0

在xaml中设置'AutoPlay ='False''并从您的代码中删除每个AutoPlay = true – csharpwinphonexaml

回答

1
  • 删除此行:soundPlayer.AutoPlay = true;如果使用

    if (soundPlayer.CurrentState == MediaElementState.Stopped) 
        soundPlayer.Play();` 
    
  • 套装AutoPlay="False"在XAML和代码中删除任何soundPlayer.AutoPlay=true;

  • 更改此:

    if (soundPlayer.CurrentState == MediaElementState.Stopped) 
    

    这样:

    if (soundPlayer.CurrentState != MediaElementState.Playing)