2012-02-27 97 views
3

所以这很奇怪......在我的C#,WPF应用程序,我有一个按钮,点击后,会播放一段简短的音频剪辑,充当帮助文本。大约50%的时间它精美的作品......另外50%它被切断,我想不通为什么。即使它被切断的点也不一样。为什么我的声音在我的WPF应用程序中被切掉?

我想,也许,代码是走出去的范围或东西,然后停止,所以我把它在另一个线程...这并没有在所有的工作......所以现在我不知道该怎么做。

这里是我的按钮单击事件的代码。

try 
{ 
    string path = System.IO.Path.Combine(ConfigurationManager.AppSettings["MediaPath"], Global.Language); 
    path = System.IO.Path.Combine(path, "visitorTypes.mp3"); 

    if (Global.PlaySound) 
    { 
     string p = path.ToString(); 
     MediaPlayer mplayer = new MediaPlayer(); 
     mplayer.Open(new Uri(p, UriKind.Absolute)); 
     mplayer.Play(); 
    } 

    //a bunch of other code 

} 
catch (Exception ex) 
{ 
    Util.HandleError(ex); 
} 

想法?

回答

8

这可能是mplayer的被垃圾回收,因为它具有局部范围。尝试使媒体播放器对象成为具有应用程序生存期的类的成员变量。

+0

这工作!我有点尴尬,我没有想到这一点。你的解决方案基本上是我试图用一个单独的线程做的,但是你的解决方案实际上是做了一些事情。 谢谢! – David 2012-02-27 21:22:43

相关问题