But the Application Audio system
Next is a quick demonstration
With waveOutSetVolume_() you can get your machine audio devices status easily
Have Fun

Code: Select all
If InitSound() = 0
MessageRequester("Error", "Can't initialize the sound system", 0)
End
EndIf
If InitMovie() = 0
MessageRequester("Error", "Can't initialize movie playback !", 0)
End
EndIf
UseFLACSoundDecoder()
UseOGGSoundDecoder()
Global playflag,SoundFileName$
Procedure MediaGetVolume()
CurrVol = 0
waveOutGetVolume_(0, @CurrVol)
CalcVol = CurrVol & $0000ffff
volume = CalcVol / ($FFFF / $64)
ProcedureReturn volume
EndProcedure
Procedure MediaPutVolume(volume)
NewVolume = (($FFFF / $64) * volume)
NewVolume = ((NewVolume & $0000ffff) | (NewVolume << 16))
waveOutSetVolume_(0, NewVolume)
EndProcedure
Procedure Loadmedia()
playflag = 0
SoundFileName$ = OpenFileRequester("Choose a sound file", "", "Sound files|*.*",0)
If SoundFileName$
ext$ = LCase(GetExtensionPart(SoundFileName$))
If ext$ = "wav" Or ext$ = "ogg" Or ext$ = "flac"
playflag = 1
ElseIf ext$ = "mp3" Or ext$ = "mid"
playflag = 2
ElseIf ext$ = "mod" Or ext$ = "xm" Or ext$ = "it"
playflag = 3
EndIf
EndIf
EndProcedure
MediaPutVolume(50)
If MediaGetVolume() = 0
MessageRequester("Info","1- No Sound Device"+#CRLF$+"2- Sound Output Device is Disabled",#MB_OK|#MB_ICONINFORMATION)
End
EndIf
OpenWindow(0,0,0,600,400,"PB Sound Player",#PB_Window_SystemMenu|#PB_Window_ScreenCentered)
ButtonGadget(0,10,360,70,30,"Load")
ButtonGadget(1,80,360,70,30,"Play")
ButtonGadget(2,150,360,70,30,"Stop")
ButtonGadget(10,300,360,80,30,"Mute")
TrackBarGadget(12,390, 365, 200,30,1,100)
SetGadgetState(12,50)
ButtonGadget(14,10,330,210,30,"Mute/Unmute System")
Repeat
Select WaitWindowEvent(1)
Case #PB_Event_CloseWindow
Quit = 1
Case #PB_Event_Gadget
Select EventGadget()
Case 0
Loadmedia()
Case 1
If playflag = 1
If LoadSound(0, SoundFileName$)
MediaPutVolume(GetGadgetState(12))
PlaySound(0)
Else
MessageRequester("Error", "Can't load the sound.", 0)
EndIf
ElseIf playflag = 2
If LoadMovie(0, SoundFileName$)
MediaPutVolume(GetGadgetState(12))
PlayMovie(0,0)
Else
MessageRequester("Error", "Can't load the sound.", 0)
EndIf
ElseIf playflag = 3
If LoadMusic(0, SoundFileName$)
MediaPutVolume(GetGadgetState(12))
PlayMusic(0)
Else
MessageRequester("Error", "Can't load the sound.", 0)
EndIf
EndIf
Case 2
If playflag = 1
StopSound(0)
ElseIf playflag = 2
StopMovie(0)
ElseIf playflag = 3
StopMusic(0)
EndIf
Case 10
Run ! 1
If Run = 1
volume = MediaGetVolume()
MediaPutVolume(0)
Else
SetGadgetState(12,volume)
MediaPutVolume(volume)
EndIf
Case 12
MediaPutVolume(GetGadgetState(12))
Case 14
keybd_event_(#VK_VOLUME_MUTE,0,0,0)
keybd_event_(#VK_VOLUME_MUTE,0,#KEYEVENTF_KEYUP,0)
EndSelect
EndSelect
Until Quit = 1
End