The code in the top-voted answer doesn't work for me. So I want with @HadiAkbarzadeh's answer, which is "handle playback-stopped and play again."
Here's how that looks with NAudio; note that you need to "rewind" the stream to position zero to replay. (Sorry, it's pseudocode-ish, for berevity.)
_waveOut = new WaveOutEvent();
_reader = new VorbisWaveReader("path/to/someAudioFile.ogg");
_waveOut.PlaybackStopped += (sender, args) => {
_reader.Seek(0, SeekOrigin.Begin);
_waveOut.Play();
};
That's it! It seamlessly replays after the audio completes.