REPRODUZIR SOM
Quero que um form reproduza um som enquanto abre um form (vai aumentando de tamanho gradualmente).
Já tentei usar Doevents, mas reproduz o som somente no fim.
Já tentei usar Doevents, mas reproduz o som somente no fim.
Private Sub Timer1_Timer()
Dim wflags As Long
For X = 1 To 2000
Me.Top = Me.Height
Me.Height = X
DoEvents
Next X
wflags = SND_ASYNC Or SND_NODEFAULT
sndPlaySound "D:\Documents and Settings\Helder Quintas\Ambiente de trabalho\Work\msn_popup_style ype.wav", wflags
Timer1.Interval = 0
End Sub
'coloca este codigo em um modulo
Private Declare Function mciSendString Lib "winmm.dll" Alias "mciSendStringA" (ByVal lpstrCommand As String, ByVal lpstrReturnString As String, ByVal uReturnLength As Long, ByVal hwndCallback As Long) As Long
Private Declare Function mciGetErrorString Lib "winmm.dll" Alias "mciGetErrorStringA" (ByVal dwError As Long, ByVal lpstrBuffer As String, ByVal uLength As Long) As Long
'retorna erro de retorno de STATUS
Private Sub PrintMCIStatus(Code As Long)
Dim ErrorMsg As String
ErrorMsg = String$(1024, vbNullChar) ' Reserve space for message
mciGetErrorString Code, ErrorMsg, 1024 ' Get message
ErrorMsg = Left(ErrorMsg, InStr(1, ErrorMsg, vbNullChar) - 1) 'trim away remaing null chars
' Debug.Print ErrorMsg ' print message
AddItemGrv ErrorMsg
End Sub
'toca arquivo TheSound
Public Sub PlaySound(ByVal FileName As String)
On Error Resume Next
PrintMCIStatus mciSendString("open """ & FileName & """ alias TempDac wait", vbNullString, 0, 0)
PrintMCIStatus mciSendString("seek TempDac to start wait", vbNullString, 0, 0)
PrintMCIStatus mciSendString("play TempDac", vbNullString, 0, 0)
End Sub
'em seu form load
Private sub Form_Load
PlaySound "D:\Documents and Settings\Helder Quintas\Ambiente de trabalho\Work\msn_popup_style ype.wav"
'Resto de seu codigo aqui
end sub
isto vai tocar uma vez na hora que abrir o form..
se voce precisa ficar tocando enquanto aumenta - uma maneira eh ao inves de chamar playsound eh colocar o abaixo em um modulo
Public Function TempoMusica(byval FileName as string) as double
PrintMCIStatus mciSendString("open """ & FileName & """ alias TempDac wait", vbNullString, 0, 0)
PrintMCIStatus mciSendString("set TempDac time format ms", 0&, 0, 0)
PrintMCIStatus mciSendString("status TempDac length", TempoMusica, 255, 0)
end function
voce adiciona um segundo timer e no lugar do que eu coloquei playsound - usa o seguinte
timer1.interval = TempoMusica(SeuArquivo)
Timer1.enabled = true
e dentro de timer1_time voce chama playsound
Private Declare Function mciSendString Lib "winmm.dll" Alias "mciSendStringA" (ByVal lpstrCommand As String, ByVal lpstrReturnString As String, ByVal uReturnLength As Long, ByVal hwndCallback As Long) As Long
Private Declare Function mciGetErrorString Lib "winmm.dll" Alias "mciGetErrorStringA" (ByVal dwError As Long, ByVal lpstrBuffer As String, ByVal uLength As Long) As Long
'retorna erro de retorno de STATUS
Private Sub PrintMCIStatus(Code As Long)
Dim ErrorMsg As String
ErrorMsg = String$(1024, vbNullChar) ' Reserve space for message
mciGetErrorString Code, ErrorMsg, 1024 ' Get message
ErrorMsg = Left(ErrorMsg, InStr(1, ErrorMsg, vbNullChar) - 1) 'trim away remaing null chars
' Debug.Print ErrorMsg ' print message
AddItemGrv ErrorMsg
End Sub
'toca arquivo TheSound
Public Sub PlaySound(ByVal FileName As String)
On Error Resume Next
PrintMCIStatus mciSendString("open """ & FileName & """ alias TempDac wait", vbNullString, 0, 0)
PrintMCIStatus mciSendString("seek TempDac to start wait", vbNullString, 0, 0)
PrintMCIStatus mciSendString("play TempDac", vbNullString, 0, 0)
End Sub
'em seu form load
Private sub Form_Load
PlaySound "D:\Documents and Settings\Helder Quintas\Ambiente de trabalho\Work\msn_popup_style ype.wav"
'Resto de seu codigo aqui
end sub
isto vai tocar uma vez na hora que abrir o form..
se voce precisa ficar tocando enquanto aumenta - uma maneira eh ao inves de chamar playsound eh colocar o abaixo em um modulo
Public Function TempoMusica(byval FileName as string) as double
PrintMCIStatus mciSendString("open """ & FileName & """ alias TempDac wait", vbNullString, 0, 0)
PrintMCIStatus mciSendString("set TempDac time format ms", 0&, 0, 0)
PrintMCIStatus mciSendString("status TempDac length", TempoMusica, 255, 0)
end function
voce adiciona um segundo timer e no lugar do que eu coloquei playsound - usa o seguinte
timer1.interval = TempoMusica(SeuArquivo)
Timer1.enabled = true
e dentro de timer1_time voce chama playsound
eh uma funcao de winmm.dll
API
para maiores informacoes quanto api's, sugiro baixar o API-Guide - que dentre tantas definicoes tb tem exemplo de aplicacoes usando cada uma delas...
API
para maiores informacoes quanto api's, sugiro baixar o API-Guide - que dentre tantas definicoes tb tem exemplo de aplicacoes usando cada uma delas...
http://www.mentalis.org/index2.shtml
voce vai ver a esquerda - eh o primeiro item do menu
voce vai ver a esquerda - eh o primeiro item do menu
Tópico encerrado , respostas não são mais permitidas