How to stop music started via SndPlaySound

delphi, delphi-7, playback

Solution

Call the `sndPlaySound` function with the first parameter set to `nil`, which causes the currently playing sound to stop. As the second parameter use the `SND_ASYNC` flag, because as the reference says, you must use this flag to terminate an asynchronously played waveform sound, which you are playing in your code:

sndPlaySound(nil, SND_ASYNC);

Problem

At this Website I found how to add music into a .res file and then use it in your delphi .exe. Here is the code for starting the WAVE song. ``` procedure TForm2.FormActivate(Sender: TObject); var hFind, hRes: THandle; Song: PChar; begin hFind := FindResource(HInstance, 'SonicSong', 'WAVE') ; if hFind <> 0 then begin hRes:=LoadResource(HInstance, hFind) ; if hRes <> 0 then begin Song:=LockResource(hRes) ; if Assigned(Song) then SndPlaySound(Song, snd_ASync or snd_Memory) ; UnlockResource(hRes) ; end; FreeResource(hFind) ; end; end; ``` So what I would like to know is how do I stop the music when I want to without closing the application?

Original source