为什么SoundPlayer会在播放时间歇性地挂起?

时间:2010-11-30 19:15:06

标签: wpf .net-3.5 audio directshow.net

我有一个WPF应用程序,我正在使用SoundPlayer播放几个简短的声音,如键盘点击。有时,看似随意,声音会停止播放。当我离开页面时,声音将在一次尖锐的回放中同时播放。

我的问题是,为什么会发生这种情况有什么明显的原因吗?

我尝试了几件事,但因为我不能始终如一地重现这个问题,所以很难找到原因。声音在整个应用程序中使用,因此我将它们在app.xaml.cs中加载到应用程序范围的静态集合中。我打电话给SoundPlayer.Load()确保他们马上加载到记忆中。

就像我说的,这永远不会完全停止。回放似乎堆积起来,直到导航到另一个页面,他们一次玩。

可能产生影响的另一件事是我在应用程序中显示网络摄像头源。使用DirectShow.NET库加载网络摄像头源。我不确定加载图表是否会对播放声音产生任何不利影响。

1 个答案:

答案 0 :(得分:0)

我认为网络摄像头正在更新UI元素,这将导致UI线程非常繁忙,在这种情况下,您可能不希望使用SoundPlayer.PlaySync()SoundPlayer.Load来阻止当前线程。

而是尝试使用单独帖子的SoundPlayer.LoadAsync()SoundPlayer.Play()