Windows Phone 8.0 MediaElement在没有任何呼叫的情况下播放声音

时间:2014-07-10 14:13:23

标签: windows-phone-7 windows-phone-8 windows-phone

当我点击1号按钮时,MediaElement将播放该句子的发音。然后,如果我点击按钮没有2我将导航到SoundRecord页面。然后,如果我再次单击后退按钮到上一页(如图中所示),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 个答案:

答案 0 :(得分:1)

  • 如果您使用

    ,请删除此行:soundPlayer.AutoPlay = true;
    if (soundPlayer.CurrentState == MediaElementState.Stopped)
       soundPlayer.Play();`
    
  • 在xaml中设置AutoPlay="False"并从代码中删除任何soundPlayer.AutoPlay=true;

  • 更改此内容:

    if (soundPlayer.CurrentState == MediaElementState.Stopped) 
    

    到此:

    if (soundPlayer.CurrentState != MediaElementState.Playing)