我将名为 MouseClick.wav 的音频文件放在资源文件夹下,并且代码中有一个函数可以播放它。
private void playSimpleSound()
{
SoundPlayer simpleSound = new SoundPlayer(Properties.Resources.MouseClick);
simpleSound.Play();
}
但是,当我运行程序时:
private void numPad_Click(object sender, EventArgs e)
{
//my lines of code
playSimpleSound();
}
我不断收到错误消息:
Exception thrown: 'System.InvalidOperationException' in System.dllAn unhandled exception of type 'System.InvalidOperationException' occurred in System.dllSound API only supports playing PCM wave files.
然后,当我使用这些在线转换器工具将 MouseClick.wav 文件转换为 PCM 时,我收到另一条错误消息:
Exception thrown: 'System.InvalidOperationException' in System.dllAn unhandled exception of type 'System.InvalidOperationException' occurred in System.dllThe file located at C:\blank\blank\blank\42ad11c67636a47fd5ec0fc5dde8cc55.pcm is not a valid wave file.
请给我建议,我不知道该怎么办。我尝试过使用其他 wav 文件。我尝试将我的 wav 文件放在其他位置。
SoundPlayer 类有一些限制。您是否尝试过或检查过任何其他 .NET 类或库?
这是 NAudio 的示例。使用nugget安装NAudio。
using NAudio.Wave;
private void playSimpleSound()
{
using (var stream = new MemoryStream(Properties.Resources.MouseClick))
{
using (var reader = new WaveFileReader(stream))
{
using (var waveOut = new WaveOutEvent())
{
waveOut.Init(reader);
waveOut.Play();
while (waveOut.PlaybackState == PlaybackState.Playing)
{
System.Threading.Thread.Sleep(200);
}
}
}
}
}