Using NAudio 1.6.0.0
When the code below is running in a console application under Windows Embedded Standard 8, it doesn't raise the "PlaybackStopped" event.
The exact same application works fine under Windows 7 (haven't tested it under "normal" Windows 8).
I also tried to change the wavePlayer to the following (with the given result):
- DirectSoundOut: Plays the sound, doesn't raise the event
- WaveOut: Doesn't play the sound at all
- WaveOutEvent: Plays the sound, doesn't raise the event
- AsioOut: Plays the sound, doesn't raise the event
I also tried (after reading some postings on StackOverflow) to use the WaveChannel32 (with padding disabled) in many of the above situations (including DirectSoundOut) and none resulted in the event being fired.
```
internal class FileItem : ItemBase
{
private readonly IWavePlayer wavePlayer;
private readonly WaveStream reader;
private bool disposed;
public FileItem(string fileName)
{
this.fileName = fileName;
this.wavePlayer = new new DirectSoundOut();
this.reader = new AudioFileReader(fileName);
this.wavePlayer.Init(this.reader);
this.wavePlayer.PlaybackStopped += this.WavePlayerOnPlaybackStopped;
}
public override void Start()
{
this.wavePlayer.Play();
}
public override void Stop()
{
this.wavePlayer.Stop();
}
public override void Dispose()
{
if (this.disposed)
{
return;
}
this.disposed = true;
ThreadPool.QueueUserWorkItem(
s =>
{
this.wavePlayer.PlaybackStopped -= this.WavePlayerOnPlaybackStopped;
this.wavePlayer.Stop();
this.reader.Dispose();
this.wavePlayer.Dispose();
});
}
private void WavePlayerOnPlaybackStopped(object sender, StoppedEventArgs e)
{
this.RaiseCompleted(EventArgs.Empty);
}
}
```
(Code simplified to focus on real issue; might not compile "as is")
Comments: Thanks for your quick reply (and sorry for my delay). In general, Windows Embedded Standard is very close to the regular Windows release, so to me it wasn't surprising at all that NAudio works (most APIs are available in this OS). Do you have any suggestions how we could debug this? What information could we collect to give you a chance of helping us tracking down this issue. (The problem is, I can't remote debug onto that machine for several reasons, but I can write log files).
When the code below is running in a console application under Windows Embedded Standard 8, it doesn't raise the "PlaybackStopped" event.
The exact same application works fine under Windows 7 (haven't tested it under "normal" Windows 8).
I also tried to change the wavePlayer to the following (with the given result):
- DirectSoundOut: Plays the sound, doesn't raise the event
- WaveOut: Doesn't play the sound at all
- WaveOutEvent: Plays the sound, doesn't raise the event
- AsioOut: Plays the sound, doesn't raise the event
I also tried (after reading some postings on StackOverflow) to use the WaveChannel32 (with padding disabled) in many of the above situations (including DirectSoundOut) and none resulted in the event being fired.
```
internal class FileItem : ItemBase
{
private readonly IWavePlayer wavePlayer;
private readonly WaveStream reader;
private bool disposed;
public FileItem(string fileName)
{
this.fileName = fileName;
this.wavePlayer = new new DirectSoundOut();
this.reader = new AudioFileReader(fileName);
this.wavePlayer.Init(this.reader);
this.wavePlayer.PlaybackStopped += this.WavePlayerOnPlaybackStopped;
}
public override void Start()
{
this.wavePlayer.Play();
}
public override void Stop()
{
this.wavePlayer.Stop();
}
public override void Dispose()
{
if (this.disposed)
{
return;
}
this.disposed = true;
ThreadPool.QueueUserWorkItem(
s =>
{
this.wavePlayer.PlaybackStopped -= this.WavePlayerOnPlaybackStopped;
this.wavePlayer.Stop();
this.reader.Dispose();
this.wavePlayer.Dispose();
});
}
private void WavePlayerOnPlaybackStopped(object sender, StoppedEventArgs e)
{
this.RaiseCompleted(EventArgs.Empty);
}
}
```
(Code simplified to focus on real issue; might not compile "as is")
Comments: Thanks for your quick reply (and sorry for my delay). In general, Windows Embedded Standard is very close to the regular Windows release, so to me it wasn't surprising at all that NAudio works (most APIs are available in this OS). Do you have any suggestions how we could debug this? What information could we collect to give you a chance of helping us tracking down this issue. (The problem is, I can't remote debug onto that machine for several reasons, but I can write log files).