From QB64 Wiki
The _SNDGETPOS function returns the current playing position in seconds using a handle from _SNDOPEN.
- position = _SNDGETPOS(handle&)
- Returns the currently playing position in seconds from MP3 sound files with the SETPOS capability.
- If a sound isn't playing, it returns 0.
- If a sound is paused, it returns the paused position.
- For a looping sound, the value returned continues to increment and does not reset to 0 when the sound loops.
QB64 supports the following sound file formats (Bold is a guaranteed capability): WAV = "VOL,SYNC,LEN,PAUSE" Free WAV to OGG GUI converter OGG = "VOL,SYNC,LEN,PAUSE" Free WAV to OGG converter AIF = "VOL,SYNC,LEN,PAUSE" RIF = "VOL,SYNC,LEN,PAUSE" VOC = "VOL,SYNC,LEN,PAUSE" MID = "VOL" MOD = "VOL,PAUSE" MP3 = "VOL,PAUSE,SETPOS" Free WMA, MP3 and OGG converter Note: _SNDBAL only affects MP3 volume. Sound will reside in main channel.
Example:To check MP3 files for the SETPOS capability, use _SNDPLAY with _SNDGETPOS printed in a loop:
SoundFile& = _SNDOPEN("YourSoundFile.mp3", "VOL,SETPOS,PAUSE") '<<< your MP3 sound file here! _SNDSETPOS SoundFile&, 5.5 'set to play sound 5 1/2 seconds into music _SNDPLAY SoundFile& 'play sound Do: _LIMIT 60 LOCATE 5, 2: PRINT "Current play position> "; _SNDGETPOS(SoundFile&) LOOP UNTIL _KEYDOWN(27) OR NOT _SNDPLAYING(SoundFile&) 'ESC or end of sound exit