Search code examples
c#.netnaudio

NAudio playing music before function is even called


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;

Tick Event:

private void Musicdelayer_Tick(object sender, EventArgs e)
{
        Console.WriteLine("tick");
        player.Play();
}

Now something incredibly strange happens:

The console outputs "tick" 5 seconds after the tick event is called with the offset of -5000... but the player has started playing already instantly before tick is even called.. what the hell?

I am just confused out of my mind to how this is happening. Any idea what might be going on?


Solution

  • Apparently pausing it first seems to solve the issue... strange