Ich moechte ein IP Telefon programmieren. Ich benutze UDPClient/Server Indy 10.1.5.
Ich habe eine DEMO, aber die scheint mit Indy 9 geschrieben zu sein:
Der folgende Code liest von der Audio-Komponente die aufgenommene Soundspur in einen Stream und veschickt sie per SendBuffer. Leider funktioniert das unter Indy 10 nicht mehr.
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8:
| procedure TSendFrm.ACMIn1Data(Sender: TACMComponent; aDataPtr: Pointer; aDataSize: Cardinal); begin UDPClient.SendBuffer(aDataPtr^,aDataSize); Bytes:=Bytes+aDataSize; BytesLbl.Caption:=Format ('%u',[Bytes]); UpDate; end; |
Ich habe schon folgendes versucht. Resultat: Es gibt zwar keine Fehler-Meldung, aber es wird auch nichts versendet. Wie bekomme ich die Daten auf die der Pointer zeigt in einen Buffer/Stream den ich mit SendBuffer verschicken kann?
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
| procedure TSendFrm.ACMIn1Data(Sender: TACMComponent; aDataPtr: Pointer; aDataSize: Cardinal); var My_Stream: TBytes; begin My_Stream := RawToBytes(aDataPtr^, aDataSize); UDPClient.SendBuffer(My_Stream); Bytes:=Bytes+aDataSize; BytesLbl.Caption:=Format ('%u',[Bytes]); UpDate; end; |
Die Sound-Komponenten findet man auf Torry:
www.torry.net/vcl/mm.../acmcomponents16.zip