我正在尝试从嵌入式资源播放 WAV,但它始终会在开始时从 0.5 秒到 2.0 秒的任何时间切断。也就是说,如果 WAV 是录制的声音,说“大家好。今天的新闻……”,那么播放通常会从一开始就切断“大家好——”。
播放代码非常简单:
using System.Media;
play(GetResourceStream(audioItem));
...
private static void play(UnmanagedMemoryStream sndData)
{
SoundPlayer sp = new SoundPlayer(sndData);
sp.LoadCompleted += delegate( object sender, System.ComponentModel.AsyncCompletedEventArgs e)
{
sp.Play();
};
sp.LoadAsync();
}
原始代码只是创建了SoundPlayer对象,然后调用了Play()方法。我添加了LoadAsync()调用和LoadCompleted事件处理程序,以查看是否解决了问题,但它的行为似乎没有任何不同。
附加信息:声音播放似乎只在应用程序第一次调用SoundPlayer.Play()时被切断。随后的电话似乎工作正常。