WaveOutEvent player = new WaveOutEvent();
WaveChannel32 volumeChannel = new WaveChannel32(waveStream);
player.Init(volumeChannel);
Multimedia.Timer musicdelayer = new Multimedia.Timer();
musicdelayer.Mode = Multimedia.TimerMode.OneShot;
musicdelayer.Tick += Musicdelayer_Tick;
musicdelayer.Period = (offset < 0) ? Math.Abs(offset) : 1;
Тиковое событие:
private void Musicdelayer_Tick(object sender, EventArgs e)
{
Console.WriteLine("tick");
player.Play();
}
Теперь происходит нечто невероятно странное:
Консоль выводит «тиковое» значение через 5 секунд после вызова тикового события со смещением -5000... но игрок начал играть уже мгновенно, прежде чем тик даже был назван ... что, черт возьми?
Я просто смущен тем, как это происходит.Есть идеи, что может происходить?