我有一个WPF应用程序,其中使用SoundPlayer
播放几种短声音,例如键盘单击。有时,看似随机的声音会停止播放。当我离开页面导航时,声音将一次全部播放。
我的问题是,为什么会发生这种情况?
我已经尝试了几件事,但是由于无法始终如一地重现该问题,因此很难找到原因。声音在整个应用程序中都会使用,因此我将它们在app.xaml.cs中加载到应用程序范围的静态集合中。我调用SoundPlayer.Load()
以确保将它们立即加载到内存中。
就像我说的那样,这永远不会停止。播放似乎会堆积起来,直到导航到另一个页面,然后它们都立即播放。
可能会产生影响的另一件事是,我正在应用程序中显示网络摄像头。使用DirectShow.NET库加载网络摄像头。我不确定加载图表是否会对声音的播放产生不利影响。
最佳答案
我想网络摄像头正在更新UI元素,这将导致UI线程非常繁忙,在这种情况下,您可能不想使用同时阻塞当前线程的SoundPlayer.PlaySync()
或SoundPlayer.Load
。
而是尝试使用单独的线程的SoundPlayer.LoadAsync()
和SoundPlayer.Play()
。
关于wpf - 为什么SoundPlayer间歇性挂起播放?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4317548/