REPRODUZIR SOM

HELDER 27/05/2004 08:09:42
#26874
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.

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
USUARIO.EXCLUIDOS 27/05/2004 08:51:47
#26882
Resposta escolhida
'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
USUARIO.EXCLUIDOS 27/05/2004 11:50:36
#26940
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...

USUARIO.EXCLUIDOS 27/05/2004 13:24:25
#26960
http://www.mentalis.org/index2.shtml
voce vai ver a esquerda - eh o primeiro item do menu
Tópico encerrado , respostas não são mais permitidas