Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用SoundPlayer()播放多个wav文件时声音不会重叠_C#_.net_Multithreading_Media_Wav - Fatal编程技术网

C# 使用SoundPlayer()播放多个wav文件时声音不会重叠

C# 使用SoundPlayer()播放多个wav文件时声音不会重叠,c#,.net,multithreading,media,wav,C#,.net,Multithreading,Media,Wav,我正在尝试使用SoundPlayer()播放.wav文件,然后使用SpeechSynthesizer()说出一个句子 问题是,SoundPlayer()在新线程上播放,因此我的程序在播放.wav文件时会说话。我需要它在.wav文件完成后开始讲话 我的示例代码: SoundPlayer sound = new SoundPlayer("drum_roll.wav"); sound.Play(); SpeechSynthesizer synth = new SpeechSynthesizer();

我正在尝试使用
SoundPlayer()
播放.wav文件,然后使用
SpeechSynthesizer()
说出一个句子

问题是,
SoundPlayer()
在新线程上播放,因此我的程序在播放.wav文件时会说话。我需要它在.wav文件完成后开始讲话

我的示例代码:

SoundPlayer sound = new SoundPlayer("drum_roll.wav");
sound.Play();

SpeechSynthesizer synth = new SpeechSynthesizer();
synth.Volume = 100;
synth.Speak("Hello World");
有没有办法阻止
SoundPlayer()
从一个新线程开始,如果没有,我如何才能达到预期的结果


另外,我对C比较陌生,这是我第一次发布与C相关的问题,因此对我的代码/问题(特别是我标记此问题的方式)的任何反馈都非常感谢。

如果你能停止你的主线程,你可以使用

SoundPlayer.PlaySync()
在调用线程上加载并播放.wave文件


太简单了。那正是我想要的谢谢。