Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: superchorch en 2 Septiembre 2011, 18:41 pm



Título: como recibir un tono desde la placa de sonido
Publicado por: superchorch en 2 Septiembre 2011, 18:41 pm
hola ante todo me presento, siempre leia y sacaba la info que necesitaba de este foro pero no encontre algo parecido a mi pregunta haci que por primera vez posteo.
No se como recibir un tono desde la placa de sonido o como direccionarla.
Para emitir no hay problema beep hace todo por mi pero como recibo un tono?
Y aunque suene trillado, gracias de antemano.
No pido que me lo resuelban sino que me orienten o den algun link para poder resolverlo yo


Título: Re: como recibir un tono desde la placa de sonido
Publicado por: BlackZeroX en 2 Septiembre 2011, 19:47 pm
API Beep.

Código
  1.  
  2. Private Declare Function Beep Lib "kernel32" (ByVal dwFreq As Long, ByVal dwDuration As Long) As Long
  3. Private Sub Form_Activate()
  4.    'KPD-Team 1999
  5.    'URL: http://www.allapi.net/
  6.    'E-Mail: KPDTeam@Allapi.net
  7.    Dim Cnt As Long
  8.    For Cnt = 0 To 5000 Step 10
  9.        'play a tone of 'Cnt' hertz, for 50 milliseconds
  10.        Beep Cnt, 50
  11.        Me.Caption = Cnt
  12.        DoEvents
  13.    Next Cnt
  14. End Sub
  15.  
  16.  

Dulces Lunas!¡.


Título: Re: como recibir un tono desde la placa de sonido
Publicado por: raul338 en 3 Septiembre 2011, 01:11 am
Tendras que usar las API de mci (mciSendString o mciSendCommand) o usar DirectSound (se me ocurren jeje)

Tambien puedes mirar esto
Sound Card Recorder  @PSC (http://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=28118&lngWId=1)
The Best Sound Recorder @PSC (http://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=60673&lngWId=1)
Recording sound from microphone in VB (http://social.msdn.microsoft.com/forums/en-US/vbgeneral/thread/41e5a1fd-b33a-4e62-b73a-aa364c5dae5c/) (es .Net, pero el uso de API es la misma)


Título: Re: como recibir un tono desde la placa de sonido
Publicado por: seba123neo en 3 Septiembre 2011, 02:17 am
a proposito de las boludeces que se pueden hacer con el Beep, me acuerdo en pascal un codigo que tocaba con beeps el himno a la alegria de beethoven, lo perdi y nunca mas pude encontrarlo.  ;D


Título: Re: como recibir un tono desde la placa de sonido
Publicado por: superchorch en 5 Septiembre 2011, 17:54 pm
gracias voy a probar lo que pasaron.
Les cuento para que lo estoy buscando; seguramente se habran dado cuenta que las nuevas mothers no traen los viejos puertos serie paralelo o incluso el conector ps2 del mouse, todo es usb. Estoy desarrollando un hard para usar los tonos que siempre van a estar en las compus viejas o nuevas y me falta la integracion con la compu.
Vamos a ver que sale.
Desde ya gracias y posteo como sigo.


Título: Re: como recibir un tono desde la placa de sonido
Publicado por: superchorch en 16 Septiembre 2011, 19:15 pm
es una tonteria pero no funciona.
como hago para que funcione el comando BEEP???
incluyo la definicion

Private Declare Function Beep Lib "kernel32" (ByVal dwFreq As Long, ByVal dwDuration As Long) As Long

y dentro del codigo de un boton meto el comando

 beep 5000, 5000

o algo parecido solo para probar pero no suena...     compila y todo, puedo ejecutar sentencias despues de pasar por la instruccion beep pero no suena.
El control de sonido de windows esta habilitado y tiene un volumen normal, asi mismo pasa con el controlador mejorado de realtec; realmente estoy haciendo algo mal pero no se que es.

Aun no se me dio por buscar si en relidad tengo el  kernel32 pero para mi es ovio que si lo tengo pero no hace sonido alguno

alguna idea?


Título: Re: como recibir un tono desde la placa de sonido
Publicado por: superchorch en 16 Septiembre 2011, 19:24 pm
no les conte
Tengo un vb6 portable corriendo en xp, pense que no me funcionaba al princio porque era portable y no le di importancia solo era cuestion de instalar uno y listo pero desde el visualstudio2008 tampoco anda.
¿que sera?


Título: Re: como recibir un tono desde la placa de sonido
Publicado por: raul338 en 16 Septiembre 2011, 20:49 pm
Tienes el parlantito en la CPU ?


Título: Re: como recibir un tono desde la placa de sonido
Publicado por: BlackZeroX en 16 Septiembre 2011, 23:39 pm
Código
  1.  
  2. Private Declare Function Beep Lib "kernel32" (ByVal dwFreq As Long, ByVal dwDuration As Long) As Long
  3.  
  4. Private Sub Form_Load()
  5.    Beep 5000, 5000
  6. End Sub
  7.  
  8.  

Si no te funciona eso entonces vas a abrir tu PC y a ver si esta la pequeña bocina, ya que es Obligatoria su existencia.

Dulces Lunas!¡.


Título: Re: como recibir un tono desde la placa de sonido
Publicado por: seba123neo en 17 Septiembre 2011, 06:18 am
para los que no sabian, el Beep esta en el administrador de dispositivos como un dispositivo oculto, si no esta activado no se escucha, es como si fuera un servicio, lo podes activar o desactivar.


Título: Re: como recibir un tono desde la placa de sonido
Publicado por: BlackZeroX en 17 Septiembre 2011, 06:46 am
.
Quien esta tan loco como para desactivar el Beep?... en casos extraordinarios arrancarlo de la Motherboard? juren que esto ultimo habra y hay casos.

P.D.: No sabia eso del Beep, solo sabia que era para detectar errores...

Dulces Lunas!¡.


Título: Re: como recibir un tono desde la placa de sonido
Publicado por: CAR3S? en 17 Septiembre 2011, 16:59 pm
no entiendo el th ni de que hablan |:

Alguien me explica?


Título: Re: como recibir un tono desde la placa de sonido
Publicado por: superchorch en 20 Septiembre 2011, 19:46 pm
gracias voy a probar la configuracion de sonido de win si tiene habilitado el beep desde panel de control - Dispositivos de audio y sonidos y desde la lista que me da buscar beep a ver si tiene asignado un sonido y claro si esta habilitado.
PD: yo pensaba que el beep salia desde los parlantes (los estereos) y no desde el speaker rudimentario que supongo si tiene mi pc (lo voy a verificar, gracias)


Título: Re: como recibir un tono desde la placa de sonido
Publicado por: superchorch en 20 Septiembre 2011, 20:05 pm
todavia no llegue a casa para probar sus consejos pero creo que la solucion seria en ves de usar el beep usar sndPlaySound

declaracion

Declare Function sndPlaySound Lib "winmm.dll" Alias "sndPlaySoundA" (ByVal lpszSoundName As String, ByVal uFlags As Long) As Long



ejemplo de uso copiado de la web


Example:

 ' Play the Empty Recycle Bin system sound and pause
' program execution until the sound is finished playing.
Dim retval As Long

retval = sndPlaySound("EmptyRecycleBin", SND_ALIAS Or SND_SYNC)  ' play the associated sound


solo tengo que asociar un evento que no se use y ponerle el sonido que quiero reproducir.

Si, se que es muy fish pero para alguien que sabe que no se puede llamar a si mismo programador conseguir algo por sus propios meritos cuenta, aun claro una solucion mas elegante siempre queda bien, que piensan?