我有一个小应用程序,目的是当用户按下一个键时,会发生一些事情。
字典和SoundPlayer实例在加载表单时被实例化,所有SoundPlayer实例在添加到字典之前都会同步加载() .wav文件。
表单的KeyDown事件如下所示:
//do stuff up here, get the type, etc etc
//players is Dictionary<EnumFoo, SoundPlayer>
SoundPlayer sound = players[type];
sound.Play();
this.KeyUp += (sUp, eUp) =>
{
DateTime endTime = DateTime.Now;
foo.Duration = endTime - startTime;
sound.Stop();
this.resetColors();
};我的问题是:它只播放较短的声音。有的长到30秒,有的小于5秒。如果我在SoundPlayer实例化后的任何地方放置断点,那么即使长的声音也能正确播放。
我正在考虑使用一个ThreadPool并对这些项进行排队,但是该选项有它自己的一组分支。
有什么想法吗?我以前从来没跟媒体课混过。
发布于 2013-08-15 16:07:12
噢,我刚意识到为什么会发生这种事。一个三步的答案
https://stackoverflow.com/questions/18242918
复制相似问题