Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: ka0s en 17 Agosto 2006, 04:07 am



Título: Sónido en VB
Publicado por: ka0s en 17 Agosto 2006, 04:07 am
Hola, mi duda es la siguiente...
Hice un Alarma en VB donde programas la hora y cuando se cumple te avisa. Pero como no sabía como ponerle un .wav o .mid de un ruido de una alarma lo hice con el simple BEEP xD
Alguién me podría decir como ponerle para que cuando se cumpla ahora suene un sónido que elija?


Salu2!


Título: Re: Sónido en VB
Publicado por: elmaro en 17 Agosto 2006, 05:36 am
dieguito usa esto
toma, en un modulo .bas pones las declaraciones:
Código:
Declare Function sndPlaySound Lib "WINMM.DLL" Alias "sndPlaySoundA" _
      (ByVal lpszSoundName As String, ByVal uFlags As Long) As Long
Const SND_SYNC = &H0
   Const SND_ASYNC = &H1
   Const SND_NODEFAULT = &H2
   Const SND_LOOP = &H8
   Const SND_NOSTOP = &H10
y en el formulario pones donde kieras,. en el load,. en un boton o donde mela kieras
Código:
SoundName$ = "tu_sonido.wav"
   wFlags% = SND_ASYNC Or SND_NODEFAULT
   x% = sndPlaySound(SoundName$, wFlags%)



El MaRo!


Título: Re: Sónido en VB
Publicado por: sircid en 17 Agosto 2006, 18:04 pm
Oye maro el codigo anterior que publicastes solo sirve para archivos wav?

Encontre un código para reproducir archivos midi/mid por si te sirve:

Los ficheros mid pueden reproducirse de la siguiente forma :
Código:
Private Declare Function mciSendString Lib "winmm.dll" Alias _
"mciSendStringA" (ByVal lpstrCommand As String, ByVal _
lpstrReturnString As Any, ByVal uReturnLength As Long, ByVal _
hwndCallback As Long) As Long
'lo de las dobles comillas es para evitar problemas con nombres largos
Código:
Dim ret As Integer
ret = mciSendString("open ""c:\windows\media\canyon.mid"" type sequencer alias cancion", 0&, 0, 0)
ret = mciSendString("play cancion wait", 0&, 0, 0)
ret = mciSendString("close cancion", 0&, 0, 0)
Con esto tu programa se detiene hasta que finaliza la "canción".
Si quieres que emnpiece a sonar y siga tu programa debes hacer :
Código:
ret = mciSendString("open ""c:\windows\media\canyon.mid"" type sequencer alias cancion", 0&, 0, 0)
ret = mciSendString("play cancion", 0&, 0, 0)
Y cuando quieras que pare de sonar (o antes de cerrar tu programa) :
Código:
Dim ret As Long
ret = mciSendString("stop cancion", 0&, 0, 0)
ret = mciSendString("close cancion", 0&, 0, 0)

Créditos (http://www.gamarod.com.ar/trucos/reproducir_archivos_midi_mid.asp)