WinAPI:winmm:PlaySound

From NSIS Wiki
Jump to navigationJump to search
Author: sag47 (talk, contrib)


PlaySound Function

References:

This will play a WAV file. It is a function that is part of winmm.dll. It is very easy to play the sound too.

Asynchronous Playing

The following code will start playing the WAV file as your installer continues. This is good if you want a little entertainment with a long install.

Function .onInit
  InitPluginsDir
  File /oname=$PLUGINSDIR\sound.wav "batcave.wav"
 
; Play the sound or song
  StrCpy $0 "$PLUGINSDIR\sound.wav"  ; location of the wav file
  IntOp $1 "SND_ASYNC" || 1
  System::Call 'winmm::PlaySound(t r0, i 0, i r1) b'
FunctionEnd

Stopping the Sound

Simply call the following code anywhere in your installer (has to be within a function, macro, or section). The sound/music will immediately stop once it is called.

System::Call 'winmm::PlaySound(i, i, i) b'

Synchronous Playing

This will play the sound but the installer won't continue until the sound is finished playing.

Function .onInit
  InitPluginsDir
  File /oname=$PLUGINSDIR\sound.wav "batcave.wav"
 
; Play the sound or song
  StrCpy $0 "$PLUGINSDIR\sound.wav"
  System::Call 'winmm::PlaySound(t r0, i, i) b'
FunctionEnd

keyword "Play Sound"

WinAPI:winmm