; AudioLastError Example ; ---------------------- ; Effects must be initialized before the first WAV/Ogg playback If Not InitAudioEffects() Then RuntimeError AudioLastError$() Graphics 640,480,0,2 SetBuffer BackBuffer() ; A looping machine hum to hear the effect on sound=LoadSound("../../../samples/audio/media/machine.wav") If sound=0 Then RuntimeError "The audio sample media is missing." LoopSound sound SoundVolume sound,0.25 ; Meters make the audio state visible on screen RequireAudio AudioMasterMeter(True) RequireAudio AudioGroupMeter(0,True) last_error$="" channel=PlaySound(sound) If channel=0 Then RuntimeError "Unable to play the example sound." While Not KeyDown(1) ; Space provokes a recoverable failure: group 9 does not exist If KeyHit(57) ok=AudioGroupVolume(9,1) last_error=AudioLastError$() EndIf Cls Text 0,0,"Space: provoke a failure Esc: exit" Text 0,20,"AudioLastError$() = ["+last_error+"]" Text 0,40,"Reading the error does not clear it; successful queries preserve it" Text 0,80,"Group 0 peak: "+AudioGroupPeak(0)+" RMS: "+AudioGroupRMS(0) Text 0,100,"Master peak: "+AudioMasterPeak()+" RMS: "+AudioMasterRMS() Flip Wend ; Let shared effect tails fade before the program ends For group=0 To 3 RequireAudio AudioGroupClearEffects(group) Next StopChannel channel FreeSound sound End ; Stop with the recorded reason if an audio-effects call fails Function RequireAudio(success) If Not success Then RuntimeError AudioLastError$() End Function