您好,登錄后才能下訂單哦!
這篇文章主要介紹控制臺中鋼琴發音小程序的示例,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
首先,我們建一個控制臺的項目。這個程序的核心是怎樣讓系統發音,這就用到了Console類中的Beep()這個方法,它呢,有兩個參數,第一個是來控制聲音的頻率,第二個是來控制時間的長短。
還有一個方法是ReadKey(),它呢,每次讀一個字符,它有一個bool型參數,用來控制按下的鍵是否顯示在控制臺窗口中。
其中,比較有意思的是,我們還可以對輸入的音符進行記錄,用于錄制我們自己剛剛彈的音樂。這里呢,我們用到了timespan 的類型 ,用來計算時間間隔,還有用到了線程的停頓(Thread.Sheep)。
下面呢,是整個程序的代碼,以供參考。
/// <summary> /// 獲取聲音及改變背景顏色 /// </summary> /// <param name="i"></param> static void Sound(int i) { int fre=(Convert.ToInt32(i) + 13) * 37; switch (i) { case '1': Console.Beep(fre, 300);//第一個參數指定聲音的頻率,第二個參數指定聲音的持續時間 Console.BackgroundColor = ConsoleColor.Blue; Console.Clear(); break; case '2': Console.Beep(fre, 300); Console.BackgroundColor = ConsoleColor.Cyan; Console.Clear(); break; case '3': Console.Beep(fre, 300); Console.BackgroundColor = ConsoleColor.Green; Console.Clear(); break; case '4': Console.Beep(fre, 300); Console.BackgroundColor = ConsoleColor.Red; Console.Clear(); break; case '5': Console.Beep(fre, 300); Console.BackgroundColor = ConsoleColor.Yellow; Console.Clear(); break; case '6': Console.Beep(fre, 300); Console.BackgroundColor = ConsoleColor.White; Console.Clear(); break; case '7': Console.Beep(fre, 300); Console.BackgroundColor = ConsoleColor.Blue; Console.Clear(); break; default: break; } } //該類定義記錄輸入的字符以及時間間隔 class LL { public char c;//字符 public DateTime d;//時間間隔 } static void Main(string[] args) { Console.SetWindowSize(100,30); List<LL> record = new List<LL>(); while (true) { ConsoleKeyInfo cki = Console.ReadKey(true); char i = cki.KeyChar; if (i != 'q')//如果輸入q,則開始按錄制的播放 { LL l = new LL(); l.c = i; l.d = DateTime.Now; record.Add(l); Sound(i); } else { for (int k = 0; k < record.Count;k++ ) { TimeSpan tspan; if (k != 0)//如果是第一個,則計算時間間隔 { tspan=record[k].d - record[k-1].d;//計算輸入的時間間隔 Console.WriteLine(tspan); Thread.Sleep(tspan);//將當前線程阻塞指定的時間。 } Sound(record[k].c); } record.Clear();//將記錄清空 } } }
以上是“控制臺中鋼琴發音小程序的示例”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。