我正在尝试创建一个程序,您可以在其中输入一个数字,它可以生成一个数字轨道。它将其分成数字并根据数字播放不同的蜂鸣声。但是哔哔声之间有一段延迟。这是项目的代码:
using System;
using System.Collections.Generic;
namespace ConsoleApplication
{
public class Program
{
public static void Main(string[] args)
{
int[] numbersWithBeeps = new int [] { 262, 294, 330, 349, 392, 440, 494, 523, 600, 687, 878};
int input;
Console.WriteLine("Please enter the number you would like to play.");
input = Convert.ToInt32(Console.ReadLine());
input*=10;
List<int> actualNumbers = new List<int>();
do{
if(input%10 == 0)
{
actualNumbers.Add(0);
}
else
{
actualNumbers.Add(input%10);
}
input=input/10;
} while(input > 0);
for(int i = actualNumbers.Count - 1; i > 0; i--){
Console.Beep(numbersWithBeeps[actualNumbers[i]], 500);
}
}
}
}
答案 0 :(得分:0)
延迟是由for
循环迭代引起的。当它不在包含numbersWithBepps[]
之一的迭代中时,它不会哔声。您的整个do{}while
循环似乎也是不必要的。很多你正在做的事对我来说没有意义。您希望用户选择播放的音调?那为什么不
int iSoundId;
getsound: Console.WriteLine("Enter the number of sound you want to hear:\t");
iSoundId = Convert.ToInt32(Console.ReadLine();
if (iSoundId < 32,767)
Console.Beep(iSoundId, 500);
else
{
Console.WriteLine("Number too high... Try again:\n);
goto getSound;
}
此外,如 juharr 所述,您的持续时间可能正在影响它。尝试将持续时间降低到 250 而不是500毫秒。