2012-12-16 38 views
0

我正在使用MediaElement类播放按钮单击一个简单的声音。这对我来说很好,除非我正在双击它。在第二次敲击时,我希望旧声音停止播放并重新开始播放声音。但停止方法不起作用:WinRT(重新)播放与mediaElement在c#中的声音

public static MediaElement SoundDelete; 
    public static void PlaySoundCash() 
    { 
     if (SessionHelper.getConfig("SoundDelete") == "true") 
     { 
      System.Diagnostics.Debug.WriteLine(SoundDelete.Position.ToString()); 
      SoundDelete.Stop(); //dosn't work 
      SoundDelete.Position = new System.TimeSpan(0,0,0,0,0); //dosn't work 
      System.Diagnostics.Debug.WriteLine(SoundDelete.Position.ToString()); 
      SoundDelete.Play(); 
     } 
    } 

在控制台的时间跨度是0从来没有我怎样才能得到的声音从一开始就玩?

回答

1

我有完全相同的问题。事实证明,向Visual Tree添加MediaElement将允许您使用这些额外的功能。

将我的MediaElements添加到我的基础网格的子节点解决了这些问题。

例如:

C#

或XAML:

<Grid Name="BaseGrid"> 
    <MediaElement Name="SoundDelete" Source="path_to_your_sound_file.mp3" /> 
</Grid> 
+0

哎,我有我的XAML中,但不知道如何将它添加到Visual树。你能举个例子吗? –

+0

根据要求修改后的帖子 – MickJ