Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   API de Windows (https://www.clubdelphi.com/foros/forumdisplay.php?f=7)
-   -   WaveInOpen y Callback (https://www.clubdelphi.com/foros/showthread.php?t=33259)

walito 01-07-2006 01:07:46

WaveInOpen y Callback
 
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.

Código Delphi [-]
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 @:

Código Delphi [-]
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 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

Cita:

Empezado por seoane
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


La franja horaria es GMT +2. Ahora son las 20:29:22.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi