new code
Code: Select all
Structure FadeThread
Alias.s
Dur.l
StartVol.l
EndVol.l
EndStructure
ProcedureDLL SetMusicVolume(Alias.s,Volume.l) ;Volume is 1 to 1000
Result = mciSendString_("SetAudio "+Alias+" volume to "+Str(Volume),0,0,0)
text.s = Space(255)
mciGetErrorString_(result,@text,255)
Debug text
EndProcedure
ProcedureDLL.l GetTrackLength(Alias.s)
LengthStr.s = Space(255)
Result = mciSendString_("status "+Alias+" length",@LengthStr,255,0)
Length = Val(LengthStr)
If Not Result
ProcedureReturn Length
Else
ProcedureReturn #False
EndIf
EndProcedure
ProcedureDLL.s GetTrackPos(Alias.s)
Pos.s = Space(255)
Result = mciSendString_("status "+Alias+" position",@Pos,255,0)
Elapsed.l = Val(pos)
Minutes = Int(Elapsed/60000)
Seconds = Int(Elapsed/1000)%60
Milliseconds = Elapsed%1000
PosString.s = RSet(Str(Minutes),2,"0")+":"+RSet(Str(Seconds),2,"0")
If Not Result
ProcedureReturn PosString
Else
ProcedureReturn ""
EndIf
EndProcedure
ProcedureDLL.l OpenMusic(FileName.s,Alias.s)
Result = mciSendString_("open "+Chr(34)+FileName+Chr(34)+" type mpegvideo alias "+Alias,0,0,0)
If Not Result
ProcedureReturn #True
Else
ProcedureReturn #False
EndIf
EndProcedure
ProcedureDLL CueMusic(Alias.s, FromPos.l, ToPos.l, Vol.l)
mciStr.s = "cue "+Alias
If FromPos > -1
mciStr+" from "+Str(FromPos)
EndIf
If ToPos > -1
mciStr+" to "+Str(ToPos)
EndIf
Res1 = mciSendString_(mciStr,0,0,0)
If Vol > -1
SetMusicVolume(Alias,Vol)
EndIf
EndProcedure
ProcedureDLL.l PlayMusic(Alias.s)
Result = mciSendString_("play "+Alias+" notify",0,0,0)
If Not Result
ProcedureReturn #True
Else
ProcedureReturn #False
EndIf
EndProcedure
Procedure FadeInMusic(*par.FadeThread)
For i = *par\StartVol To *par\EndVol
SetMusicVolume(*par\Alias,i)
Delay(*par\Dur)
Next
EndProcedure
FileName$ = OpenFileRequester("Choose a File:","","*.*",0)
If OpenMusic(FileName$, "Track001")
Debug GetTrackLength("Track001")
PlayMusic("Track001")
*par.FadeThread = AllocateMemory(SizeOf(FadeThread))
*par\Alias = "Track001"
*par\Dur = 5
*par\StartVol = 0
*par\EndVol = 1000
Repeat
Delay(7000)
CreateThread(@FadeInMusic(),*par)
a.s = GetTrackPos("Track001")
Debug a
Until a = ""
EndIf
old !#$%^&* code
Code: Select all
ProcedureDLL SetMusicVolume(Alias.s,Volume.l) ;Volume is 1 to 1000
Result = mciSendString_("setaudio "+Alias+" volume to "+Str(Volume),0,0,0)
text.s = Space(255)
mciGetErrorString_(result,@text,255)
Debug text
EndProcedure
msdn docs
http://msdn.microsoft.com/en-us/library ... 85%29.aspx