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

问题描述 投票:-3回答:1

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

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

c# frequency beep
1个回答
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();

    // ...
}
© www.soinside.com 2019 - 2024. All rights reserved.