我用C#编程了一个获胜的轮子。对于每个场,它都会发出声音。从200毫秒到1.5秒。 (听起来像是" tick")。
这是我的代码(只有声音):
public class Global{
public static WMPLib.WindowsMediaPlayer tick_sound = new WMPLib.WindowsMediaPlayer();
}
private void timer1_Tick(object sender, EventArgs e){
Global.tick_sound.controls.stop();
Global.tick_sound.URL = @"\Resources\tick.mp3";
Global.tick_sound.controls.play();
}
它正在工作,但声音在这个timerloop中听起来并不是很好。我猜Windows Media Player会慢下来。有没有其他方法可以播放声音并更快更好地播放?
答案 0 :(得分:0)
NAudio是个不错的选择。你可以在这里得到它: http://naudio.codeplex.com/
安装NAudio。 添加NAudio和NAudio.Wave作为项目中的参考。 并使用它的代码。
这是一个例子:
class PlaySound
{
IWavePlayer wave;
AudioFileReader file;
public PlaySound(string FILE)
{
file = new AudioFileReader(FILE);
wave = new WaveOut();
}
public void playSound()
{
wave.Init();
wave.Play();
}
}
然后在你的代码中播放声音:
PlaySound sound = new PlaySound(@"\Resources\tick.mp3");
sound.playSound();