是否可以在播放时更改Console.Beep的频率?

时间:2017-12-17 18:51:57

标签: c# frequency beep

我想知道是否有一种方法可以让程序执行int f = 37; Console.Beep( f, 10000 )并在播放时更改f变量,以便声音实际发生变化。

编辑:我不想使用增加f的循环,因为它会使声音停止播放一段时间(每次迭代)。我知道还有其他方法,但我想知道Beep方法。

1 个答案:

答案 0 :(得分:1)

如果您想在控制台应用程序中播放声音,并且可以更广泛地控制正在播放的内容,建议您使用SoundPlayer课程(MSDN参考here,它有一个概述其功能)。

缺点是你必须创建一个产生哔声的wav文件(它不应该很难找到一个谷歌搜索)和每个wav文件您希望在应用程序中实现的不同声音。您可以将文件放在应用程序目录中,但也可以将它们作为资源嵌入到程序集中:

private static SoundPlayer s_Beep;
private static SoundPlayer s_Buzz;

public static void Main(String[] args)
{
    Assembly assembly = Assembly.GetExecutingAssembly();

    s_Beep = SoundPlayer(assembly.GetManifestResourceStream("YourNamespace.Beep.wav"));
    s_Beep.Load();

    s_Buzz = SoundPlayer(assembly.GetManifestResourceStream("YourNamespace.Buzz.wav")); 
    s_Buzz.Load();

    s_Beep.PlayLooping();
    Thread.Sleep(100);
    s_Beep.Stop();

    s_Buzz.Play();

    // ...
}