控件,ACMWaveIn1,ACMWaveOut1,IdUDPClient1,IdUDPServer1, type TGSM610 = packed record wFormatTag: Word; { format type } nChannels: Word; { number of channels (i.e. mono, stereo, etc.) } nSamplesPerSec: DWORD; { sample rate } nAvgBytesPerSec: DWORD; { for buffer estimation } nBlockAlign: Word; { block size of data } wBitsPerSample: Word; { number of bits per sample of mono data } cbSize: Word; { the count in bytes of the size of } wSamplesPerBlock:word; end; var gsm610: TGSM610; format: Pointer; i : integer; begin with gsm610 do begin wFormatTag:=$31; nChannels:=1; wBitsPerSample:=0; nSamplesPerSec:=8000; nBlockAlign:=65; nAvgBytesPerSec:=1625; cbSize:=2; wSamplesPerBlock:=$140; end; format:=@gsm610; ACMWaveOut1.Open(format); //这个就可以跳过声音选定对话框 ACMWaveIn1.Open(format); IdUDPClient1.Active := true; IdUDPServer1.Active := true; procedure TSysDetectFrm.ACMWaveIn1Data(data: Pointer; size: Integer); var mdata:array[1..10000] of char; k:integer; begin for k:=1 to size do mdata[k]:=pchar(dword(data)+dword(k-1))^; IdUDPClient1.SendBuffer(mData,Size); end; procedure TSysDetectFrm.IdUDPServer1UDPRead(Sender: TObject; AData: TStream; ABinding: TIdSocketHandle); var mdata:array[1..10000] of char; data:Pchar; Tmp : integer; begin Adata.ReadBuffer(mdata,Adata.Size); data:=pchar(dword(@mdata)); ACMWaveOut1.PlayBack(data,Adata.Size); //产生回音 end; //上面代码类似于QQ,MSN,系统检测中的硬件检测效果(当然没有加强度显示功能),也许对你有帮助!
type
TGSM610 = packed record
wFormatTag: Word; { format type }
nChannels: Word; { number of channels (i.e. mono, stereo, etc.) }
nSamplesPerSec: DWORD; { sample rate }
nAvgBytesPerSec: DWORD; { for buffer estimation }
nBlockAlign: Word; { block size of data }
wBitsPerSample: Word; { number of bits per sample of mono data }
cbSize: Word; { the count in bytes of the size of }
wSamplesPerBlock:word;
end; var
gsm610: TGSM610;
format: Pointer;
i : integer;
begin
with gsm610 do
begin
wFormatTag:=$31;
nChannels:=1;
wBitsPerSample:=0;
nSamplesPerSec:=8000;
nBlockAlign:=65;
nAvgBytesPerSec:=1625;
cbSize:=2;
wSamplesPerBlock:=$140;
end;
format:=@gsm610;
ACMWaveOut1.Open(format); //这个就可以跳过声音选定对话框
ACMWaveIn1.Open(format);
IdUDPClient1.Active := true;
IdUDPServer1.Active := true; procedure TSysDetectFrm.ACMWaveIn1Data(data: Pointer; size: Integer);
var
mdata:array[1..10000] of char;
k:integer;
begin
for k:=1 to size do
mdata[k]:=pchar(dword(data)+dword(k-1))^;
IdUDPClient1.SendBuffer(mData,Size);
end; procedure TSysDetectFrm.IdUDPServer1UDPRead(Sender: TObject;
AData: TStream; ABinding: TIdSocketHandle);
var
mdata:array[1..10000] of char;
data:Pchar;
Tmp : integer;
begin
Adata.ReadBuffer(mdata,Adata.Size);
data:=pchar(dword(@mdata));
ACMWaveOut1.PlayBack(data,Adata.Size); //产生回音
end;
//上面代码类似于QQ,MSN,系统检测中的硬件检测效果(当然没有加强度显示功能),也许对你有帮助!