0
我在這裏發佈我的問題,因爲它建議在NAudio頁面(http://naudio.codeplex.com/documentation)上這樣做。NAudio和Midi文件讀取
鑑於我已經用NAudio加載了一個.mid文件,我想在適當的時候逐步完成一個曲目的事件。在到達「NoteOn」事件後,我想寫一些類似「Beep」的控制檯。這樣我可以顯示.mid文件的簡單活動。詳細地說,我該如何正確地逐步完成文件的事件?
我正在使用vsC#2008和NAudio的.dll工作正常。我已經在庫中加載了一個midi文件,可以提取軌道信息和所有內容,但我不確定如何在時間方面使用它。我想我需要用提供的「絕對時間」或「增量時間」值做些事情。感謝您的幫助。
編輯: 經過一個非常有用的迴應,我能夠弄清楚如何去做我想要的。
double convertAbsoluteTimeToMilliseconds = 1.0/30.0;
System.Diagnostics.Stopwatch sw = new System.Diagnostics.Stopwatch();
sw.Start();
foreach (MidiEvent note in _f1.Events[1])
{
while (note.AbsoluteTime * convertAbsoluteTimeToMilliseconds > sw.ElapsedMilliseconds) { }
if(note.CommandCode==MidiCommandCode.NoteOn)
Console.Write ("beep ");
}
sw.Stop();
如果有人知道另一種方法來做到這一點,請讓我知道。由於某種原因,使用睡眠時間會導致響應速度變慢,速度變慢。這似乎很好地工作。另外,我確定「convertAbsoluteTimeToMilliseconds」取決於機器。
謝謝您的答覆。你的僞代碼真的幫助我弄清楚如何做我想做的事。 – viperld002