在 C# 中播放声音更有效

Posted

技术标签:

【中文标题】在 C# 中播放声音更有效【英文标题】:Playing sound in c# more efficient 【发布时间】:2014-11-01 11:31:55 【问题描述】:

我用 C# 编写了一个获胜轮盘。对于每个字段,它都会播放声音。从 200 毫秒到 1.5 秒。 (听起来像“滴答声”)。

这是我的代码(只有声音):

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

它工作正常,但在这个计时器循环中声音听起来不太好。我猜 Windows Media Player 速度很慢。有没有其他方法可以更快更好地播放声音?

【问题讨论】:

【参考方案1】:

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

【讨论】:

以上是关于在 C# 中播放声音更有效的主要内容,如果未能解决你的问题,请参考以下文章

在 C# 中播放声音 - 使用哪种方式?

如何在 C# 中同时播放多个声音?

如何在c#中播放特定的Windows错误声音[重复]

在 C# 中的录音设备上播放声音

在 C# 中确定何时播放响亮的声音

C# 播放声音的方法?