PDA

Ver la Versión Completa : WaveInOpen y Callback


walito
01-07-2006, 01:07:46
hola, estoy tratando de intentar grabar de la placa de sonido la entrada de linea.
Por el momento no me exploto nada, todo bien, pero al momento de grabar me pide que en la funcion waveinopen le ponga una funcion callback, esto seria mi procedimiento que va a recibir dichos datos y donde yo ahi hare lo que quiera con los datos, ahora lo que no entiendo y no me da la cabeza es como pongo mi prodecimiento ahi??

intente poniendo el nombre de mi procedimiento y nada.


WaveInOpen(HWaveIn1,0,WaveFormat,ProcedimientoQueGraba,0,CALLBACK_WINDOW or WAVE_MAPPED);


alguien sabe como se pone la llamada a mi procedimiento ahi?

bueno desde ya muchas gracias

walter

roman
01-07-2006, 01:40:08
Tú no pones la llamada, simplemente especificas cuál es el procedimiento que se va a llamar (es el sistema op. el que hace la llamada).

EDITO:

Si ProcedimientoQueGraba es el procedimiento que quieres usar, creo que debes anteponer una @:


WaveInOpen(HWaveIn1,0,WaveFormat,@ProcedimientoQueGraba,0,CALLBACK_WINDOW or WAVE_MAPPED);


// Saludos

seoane
01-07-2006, 01:49:55
Prueba poniendo una @ delante del nombre del procedicimento, lo que te pide es la direccion de la funcion y eso nos lo da la @ :D . Si te interesa en este otro hilo (http://www.clubdelphi.com/foros/showthread.php?t=32156) dejo un ejemplo de como capturar el sonido y utilizo los datos para mostrar un bonito grafico con la forma de onda.

EDITO:

Veo que Roman se me ha adelantado con lo de la @. De todas formas me he fijado que usas la opcion CALLBACK_WINDOW en ese caso el parametro dwCallback es el identificador (Handle) de una ventana y no la direccion de una funcion

roman
01-07-2006, 02:03:22
ese caso el parametro dwCallback es el identificador (Handle) de una ventana y no la direccion de una funcion

Cierto, muy cierto. Entonces deberá usar CALLBACK_FUNCTION en lugar de CALLBACK_WINDOW.

// @Saludos

walito
02-07-2006, 01:32:54
muchas gracias chicos ahora lo voy a probar!!!

Gracias nuevamente

walter

walito
03-07-2006, 23:33:55
Gente desde ya muchas gracias, pude hacerlo andar como dicen ustedes.

Ahora tengo una consulta mas y no jodo mas...

Me estoy volviendo tonto al tratar de usar la API de windows con ACM para que directamente me tome la entrada de linea ya en formato MP3, segun MSDN se puede pero no logro entenderlo ni hacerlo andar.

Alguien ya probo eso?

Gracias

walter

walito
08-07-2006, 00:06:58
Chicos ahi logre capturar en tiempo real por la entrada de linea de la placa de sonido en formato mp3 usando las librerias msacm y mmsystem.

Pero resulta que solo captura hasta 56kbps, y yo necesito por lo menos llegar hasta 128kbps.

Lei que usando la libreria de lame_enc se podia, bueno la descargue y la instale, todo bien hasta ahi en mi dialogo qu muestra todos los formatos ahora me aparecieron para mp3 muchos mas, hasta 320kbps, pero parece que algo a windows no le gusta.

Alguien intento hacer esto? o de alguna otra forma???

Gracias