Ver la Versión Completa : UDP Ayuda.
Descendents
28-10-2003, 10:25:37
procedure TForm1.WaveIn1Data(data: Pointer; size: Integer);
begin
UDPC.Sendbuffer(data,size);
end;
esto de aqui arriba me da error.No se si lo hago mal o que pasa.
me da error en la linea: UDPC.Sendbuffer(data,size);
Utilizo las Indy UDPCLIENT, UDPSERVER.
Igual es que lo hago mal, y un pointer no se envia asi.No se.
Agradeceria ayuda porfavor
Muchas gracias
Un saludo.
jachguate
29-10-2003, 01:06:42
Hey amigo. Ya llevas 30 mensajes, y me parece extraño que aún no completes la información que podria ayudar a ayudarte. El hecho es que no indicas ni el mensaje de error, ni si este ocurre en tiempo de ejecución o en tiempo de compilación....
Te recomiendo que leas la guia de estilo (http://www.clubdelphi.com/foros/guiaestilo.php).
Hasta luego.
;)
Descendents
29-10-2003, 18:49:31
SI Quizas tienes razón.
Bueno mi problema es el siguiente.
Quiero enviar Por UDPClient ( el componente de las INDY), la siguiente informacion:
UDPC.SendBuffer(data^,size);
//EVENTO DE CUANDO HABLO
procedure TForm1.ACMWaveIn1Data(data: Pointer; size: Integer);
begin
UDPC.SendBuffer(data^,size);
end;
este es un evento que me recoje la voz cuando hablo por el micro.
Pues bien yo quiero enviar como ya he dicho antes el data:Pointer y el size:integer.
Diria que con ^ ya lo he conseguido, (porque antes hacia
UDPC.SendBuffer(data,size) y me daba error ahora envio UDPC.SendBuffer(data^,size) y ya no me da error ).
Pero ahora me encuentro que al recibir el UDPSERVER (de las indy), me llega un adata:Tstream;
// EVENTO DE CUANDO RECIBO
procedure TForm1.UDPSUDPRead(Sender: TObject; AData:TStream; ABinding: TIdSocketHandle);
Y la funcion que me reproduce el sonido es la siguiente:
ACMWaveOut1.PlayBack(data:Pointer,size:Integer);
Necesito poder reproducir lo que me llega pasandolo por la funcion ACMWaveOut1.PlayBack .Pasar el Tstream a pointer o algo asi.
Haber si alguien puede ayudarme.
En definitiva es voz por IP.que no se como enviarlo y reproducirlo correctamente.
Muchas gracias
jachguate
30-10-2003, 16:05:12
No se si tu componente de audio pueda leer datos desde un Stream... que sería lo mas indicado.
Si necesitas un buffer, podes leer los datos desde el stream a un área de memoria para el efecto, y luego pasarsela a tu componente.
Algo como:
procedure TForm1.UDPSUDPRead(Sender: TObject; AData:TStream; ABinding: TIdSocketHandle);
Var
Buffer : Array of Byte;
Tamano : Integer;
Begin
Tamano := AData.Size;
SetLength(Buffer, Tamano - 1);
AData.Read(Buffer[0], Tamano);
ACMWaveOut1.PlayBack(@Buffer[0],Tamano);
SetLength(Buffer, 0);
End;
No lo he probado, ni lo haré... asi que puede contener errores, pero con esa idea debiera funcionar.
(Espero al menos, un par de chelas!!... jejeje).
Hasta luego.
;)
pd. por cierto, te recomiendo el uso de las etiquetas [ code] y [ /code] cuando escribas trozos de código... miras la diferencia?
Descendents
30-10-2003, 20:22:48
Buenas de nuevo
Pues mira antes de esto que tu me has dicho, habia hecho algo parecido, y me funcionaba, pero me funcionaba un poco mal.
Pero lo que tu me has pasado mucho mejor, i funciona perfectamente.
Solo he cambiado el (-) por un (+), y muy bien.
jachguate
30-10-2003, 20:28:44
guenisimo!
Espero mis chelas... ;)
vBulletin v3.6.8, Derechos ©2000-2024, Jelsoft Enterprises Ltd.