In a c++ program, I play a series of wave files taken from a list of filenames using playsound. Each wave file plays for less than 1 second. After playing a series of up to 5 files, there is a 10 to 30 second delay in which no sound is played, and then another series of files is played. My playsound function call looks like this:
PlaySound(FilePathName, NULL, SND_SYNC | SND_FILENAME | SND_NODEFAULT)
My problem is that trailing sounds from a previous longer series play after a subsequent shorter series completes. Apparently what isn't overwritten in the sound buffer gets played.
Is there a way to clear the sound buffer of older wave format data or otherwise stop play at the end of a new list? (Obviously, the SND_PURGE flag does not and is not meant to accomplish this.)