语音聊天程序求助 用了deAudio控件+NMUDP做语音聊天软件,之前找了很多关于ACM控件的帖,大多数都说了逐渐出现延迟的问题,用了deAudio控件后,倒没发现多少延迟,同时也做了一个,但发现只能够在单机进行,如果放到另一台机...就只有先开程序的一方能够接到包,另一方就无法收包...请各位赐教。源程序放在http://kakyu.ys168.com的语音聊天程序文件夹里deAudio2.8控件也放在那... 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, NMUDP, StdCtrls,deAudioIO,deACM;type TForm1 = class(TForm) NMUDP1: TNMUDP; de: TdeAudioIn; dc: TdeAudioConvertor; dc1: TdeAudioConvertor; da1: TdeAudioOut; procedure NMUDP1DataReceived(Sender: TComponent; NumberBytes: Integer; FromIP: String; Port: Integer); procedure FormCreate(Sender: TObject); procedure dc1AudioConverted(Sender: TObject; AudioData: Pointer; AudioDataSize: Integer; var Abort: Boolean); procedure dcAudioConverted(Sender: TObject; AudioData: Pointer; AudioDataSize: Integer; var Abort: Boolean); private { Private declarations } public { Public declarations } end;var Form1: TForm1; PlayPackets:integer;implementation{$R *.dfm}procedure TForm1.NMUDP1DataReceived(Sender: TComponent; NumberBytes: Integer; FromIP: String; Port: Integer);var mdata:array[1..22051] of char; data:Pchar;begin NMUDP1.ReadBuffer(mdata,NumberBytes); data:=pchar(dword(@mdata)); caption:=inttostr(PlayPackets); inc(PlayPackets); dc.ConvertAudio(data,NumberBytes);end;procedure TForm1.FormCreate(Sender: TObject);begin de.Format.FormatToPCM(dc1.FormatIn); dc.FormatOut := da1.Format; de.BufferSize := de.Format.AvgBytesPerSec div 8 + 4; da1.Format.Assign(dc.FormatOut); dc.Activate; da1.Active := true; dc1.Activate; de.Active := true; NMUDP1.ReportLevel := Status_Basic; NMUDP1.LocalPort := 6668; NMUDP1.RemotePort := 6668;end;procedure TForm1.dc1AudioConverted(Sender: TObject; AudioData: Pointer; AudioDataSize: Integer; var Abort: Boolean);var mdata:array[1..22051] of char; i:integer;begin for i:=1 to AudioDataSize do mdata[i]:=pchar(dword(AudioData)+i-1)^; NMUDP1.SendBuffer(mdata,AudioDataSize);end;procedure TForm1.dcAudioConverted(Sender: TObject; AudioData: Pointer; AudioDataSize: Integer; var Abort: Boolean);begin da1.PlayAudio(audiodata,audiodatasize);end;end.代码如此 我的NetPhonehttp://soft.eastrise.net去看看~~ delphi中设计报表的问题 已知管理员密码的情况下,能否抓取局域网内其它电脑的配置? 初学者,请各位高手看看这代码有什么错误? 毕业设计中数据库迁移的难点!! 有谁知道“enabled bcd ”在delphi哪里设置??? PopupMenu 问题 本人想把.txt文件里其中一横数据删除,后面的内容怎样向上移动一行 怎么实现把一个字符串两边的空格字符全去掉? 关于local sql的语法 create问题?? 有谁知道在Delphi里面好用的视频传输控件啊~~! 高分!求助!!这样判断多个控件是否在一个矩形框内
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, NMUDP, StdCtrls,deAudioIO,deACM;
type
TForm1 = class(TForm)
NMUDP1: TNMUDP;
de: TdeAudioIn;
dc: TdeAudioConvertor;
dc1: TdeAudioConvertor;
da1: TdeAudioOut;
procedure NMUDP1DataReceived(Sender: TComponent; NumberBytes: Integer;
FromIP: String; Port: Integer);
procedure FormCreate(Sender: TObject);
procedure dc1AudioConverted(Sender: TObject; AudioData: Pointer;
AudioDataSize: Integer; var Abort: Boolean);
procedure dcAudioConverted(Sender: TObject; AudioData: Pointer;
AudioDataSize: Integer; var Abort: Boolean);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;
PlayPackets:integer;
implementation{$R *.dfm}procedure TForm1.NMUDP1DataReceived(Sender: TComponent;
NumberBytes: Integer; FromIP: String; Port: Integer);
var
mdata:array[1..22051] of char;
data:Pchar;
begin
NMUDP1.ReadBuffer(mdata,NumberBytes);
data:=pchar(dword(@mdata));
caption:=inttostr(PlayPackets);
inc(PlayPackets);
dc.ConvertAudio(data,NumberBytes);
end;procedure TForm1.FormCreate(Sender: TObject);
begin
de.Format.FormatToPCM(dc1.FormatIn);
dc.FormatOut := da1.Format;
de.BufferSize := de.Format.AvgBytesPerSec div 8 + 4;
da1.Format.Assign(dc.FormatOut);
dc.Activate;
da1.Active := true;
dc1.Activate;
de.Active := true;
NMUDP1.ReportLevel := Status_Basic;
NMUDP1.LocalPort := 6668;
NMUDP1.RemotePort := 6668;
end;procedure TForm1.dc1AudioConverted(Sender: TObject; AudioData: Pointer;
AudioDataSize: Integer; var Abort: Boolean);
var
mdata:array[1..22051] of char;
i:integer;
begin
for i:=1 to AudioDataSize do mdata[i]:=pchar(dword(AudioData)+i-1)^;
NMUDP1.SendBuffer(mdata,AudioDataSize);
end;procedure TForm1.dcAudioConverted(Sender: TObject; AudioData: Pointer;
AudioDataSize: Integer; var Abort: Boolean);
begin
da1.PlayAudio(audiodata,audiodatasize);
end;end.代码如此
http://soft.eastrise.net去看看~~