Per vedere se la scheda audio è occupata o no per riprodurre un suono ho fatto così, sfruttando la proprietà del catch, che viene attivato in caso di errore di un comando:
PUBLIC SUB Suona()
DIM SoundToPlay AS Sound
SoundToPlay= NEW Sound("nomefile")
SoundToPlay.Play()
CATCH
PRINT "Device occupato"
END
Puoi anche evitare di mandare in CATCH il codice:
PUBLIC SUB Suona()
DIM SoundToPlay AS Sound
SoundToPlay= NEW Sound("nomefile")
TRY SoundToPlay.Play()
IF ( ERROR ) THEN
PRINT "Device occupato"
END IF
END