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