在c#中播放声音效率更高

时间:2014-11-01 11:31:56

标签: c# audio

我用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会慢下来。有没有其他方法可以播放声音并更快更好地播放?

1 个答案:

答案 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();