You are on page 1of 1

Function SoundPosition(Alias As String) As Single

Dim RetVal As Long, Length As Long, Position As Long, ReturnData As String


ReturnData = Space(128)
�RetVal = mciSendString(�Set MediaFile time format milliseconds�, vbNullString, 0,
0)
RetVal = mciSendString(�status � & Alias & � length�, ReturnData, 128, 0)
Length = Val(ReturnData)
RetVal = mciSendString(�status � & Alias & � position�, ReturnData, 128, 0)
Position = Val(ReturnData)
If Length > 0 Then
SoundPosition = Position / Length * 100
Else
SoundPosition = -1
End If
End Function

'And with that, I can create a seek routine:

Function SoundSeek(Alias As String, SeekFraction As Single)


�Try using -.2 or .2 to seek backwards or forwards just a bit
Dim RetVal As Long, ReturnData As String, Position As Long, NewPosition As Long
ReturnData = Space(128)
RetVal = mciSendString(�status � & Alias & � position�, ReturnData, 128, 0)
Position = Val(ReturnData)
NewPosition = Position + SeekFraction * Position
Call SoundPause(Alias) �It�s necessary to mcisendstring the pause command while
seeking
RetVal = mciSendString(�seek � & Alias & � to � & NewPosition, vbNullString, 0, 0)
Call SoundResume(Alias) �After seek, send mcisendstring play to continue
End Function

You might also like