by Richard Russell, February 2013
The method described in the main Help documentation for playing WAV files only allows you to play one file at a time. If you want to play two or more WAV files simultaneously a different approach must be used. The code snippet below demonstrates how to do it:
wavfile1$ = "C:\windows\media\Windows XP Shutdown.wav" wavfile2$ = "C:\windows\media\Windows XP Startup.wav" SYS "mciSendString", "close wav1", 0, 0, 0 SYS "mciSendString", "close wav2", 0, 0, 0 SYS "mciSendString", "open """ + wavfile1$ + """ alias wav1", 0, 0, 0 SYS "mciSendString", "open """ + wavfile2$ + """ alias wav2", 0, 0 ,0 SYS "mciSendString", "play wav1", 0, 0, 0 SYS "mciSendString", "play wav2", 0 ,0, 0
Note that the close commands are not required if the code is executed only once.
If you want to test whether a file has finished playing you can do so as follows:
reply1$ = STRING$(16, CHR$(0)) reply2$ = STRING$(16, CHR$(0)) SYS "mciSendString", "status wav1 length", reply1$, LEN(reply1$), 0 SYS "mciSendString", "status wav1 position", reply2$, LEN(reply2$), 0 IF reply1$ = reply2$ THEN PRINT "Finished playing"