是否有可能在 C# 中生成恒定的声音并在声音发出时控制其频率?
我尝试过这样的事情:
for (int i = 500; i < 15000; i += 1)
{
Console.Beep(i, 500));
}
但由于是同步的,循环会等待每次蜂鸣声结束。所以我尝试了这个:
for (int i = 500; i < 15000; i += 1)
{
new Thread(x => Console.Beep(i, 500)).Start();
}
我认为这将是产生频率不断增加的恒定声音的开始。然而,它仍然结结巴巴地走着。有没有办法可以更顺利地完成此任务?
如果您想实时执行此操作(即根据用户输入动态更改频率),这将非常困难,并且需要您编写软件合成器。在这种情况下,您可能想尝试使用类似的库NAudio(尽管我不能 100% 确定 NAudio 可以进行实时合成)。
另一方面,如果您只想预先生成一个具有连续上升音调的 WAV 文件,然后播放它,那就非常简单了。
Edit:第三种选择是玩MIDI声音并向 MIDI 设备发送控制更改消息,以逐渐将混合词应用于演奏的音符。这也很简单,但缺点是您无法确定它在其他人的计算机上听起来如何。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)