1

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

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

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

就像我说的,这永远不会完全停止工作。播放似乎堆积起来,直到导航到另一个页面,它们都同时播放。

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

4

1 回答 1

0

我想网络摄像头正在更新一个 UI 元素,这将导致 UI 线程非常繁忙,在这种情况下,您可能不想使用SoundPlayer.PlaySync()或者SoundPlayer.Load两者都阻塞了当前线程。

SoundPlayer.LoadAsync()而是尝试SoundPlayer.Play()使用单独的线程。

于 2010-11-30T19:28:48.373 回答