所以,我正在尝试使用简单的GUI在C#上用Beeps制作音乐。我一直在尝试,但我不确定是否甚至可以制作一个Console.Beep play,例如我按住一个按钮。
正常的Beep()方法只是播放一个中等频率的短蜂鸣声,并且有一个过载Beep(int频率,int持续时间)。我想要做的实际上是在我按住按钮时播放它,但显然我以前不能说出持续时间。
我认为这是不可能的,但也许有办法吗?
这也是我在网站上的第一个问题,所以,嘿。
答案 0 :(得分:3)
你可以这样做,我只是测试它并且它可以工作,并且在运行时不会锁定表单。
private void Window_MouseDown_1(object sender, MouseButtonEventArgs e)
{
// Starts beep on background thread
Thread beepThread = new Thread(new ThreadStart(PlayBeep));
beepThread.IsBackground = true;
beepThread.Start();
}
private void PlayBeep()
{
// Play 1000 Hz for max amount of time possible
// So as long as you dont hold the mouse down for 2,147,483,647 milliseconds it should work.
Console.Beep(1000, int.MaxValue);
}
private void Window_MouseUp_1(object sender, MouseButtonEventArgs e)
{
//Aborts the beep with a new 1ms beep on mouse up which finishes the task.
Console.Beep(1000, 1);
}