I'm currently migrating my application to 64-bit and whenever I'm trying to dispose the WaveOut class, I'm getting an "AccessVoilationException" with the message "Attempted to read or write protected memory. This is often an indication that other memory is corrupt."
Stacktrace:
at NAudio.Wave.WaveInterop.waveOutClose(IntPtr hWaveOut)
at NAudio.Wave.WaveOut.Dispose(Boolean disposing)
at NAudio.Wave.WaveOut.Dispose()
I've tested this with version 1.5 and 1.6 of NAudio, it only happens when I compile my application for 64-bit, 32-bit works fine.
Small codepiece where it happens:
if (wavePlayer != null)
{
this.wavePlayer.Stop();
this.wavePlayer.Dispose(); //AccessViolationException
}
Initialization of the WaveOut class:
this.wavePlayer = new WaveOut(WaveCallbackInfo.FunctionCallback());
I've also tried it with the new WaveOutEvent class in NAudio, but the problem persists.
Comments: If you have any interest in digging through my source code, this commit fixed the problem in my application: https://github.com/flagbug/Espera/commit/2580ab6c61036a125176e17245e624c65466c75e
Stacktrace:
at NAudio.Wave.WaveInterop.waveOutClose(IntPtr hWaveOut)
at NAudio.Wave.WaveOut.Dispose(Boolean disposing)
at NAudio.Wave.WaveOut.Dispose()
I've tested this with version 1.5 and 1.6 of NAudio, it only happens when I compile my application for 64-bit, 32-bit works fine.
Small codepiece where it happens:
if (wavePlayer != null)
{
this.wavePlayer.Stop();
this.wavePlayer.Dispose(); //AccessViolationException
}
Initialization of the WaveOut class:
this.wavePlayer = new WaveOut(WaveCallbackInfo.FunctionCallback());
I've also tried it with the new WaveOutEvent class in NAudio, but the problem persists.
Comments: If you have any interest in digging through my source code, this commit fixed the problem in my application: https://github.com/flagbug/Espera/commit/2580ab6c61036a125176e17245e624c65466c75e