我正在尝试从嵌入式资源播放 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() 时中断。随后的调用似乎工作正常。
最佳答案
我刚刚遇到了同样的问题。声音的开头在应用程序中和通过外部媒体播放器(如 VLC)播放时都会被剪切。就我而言,问题与蓝牙扬声器有关。将声音输出切换到有线扬声器后,效果很好。
关于c# - 声音播放的开始被切断,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18306238/