急!急!急!急!急!急!哪位大侠帮忙解决我的编程问题!关于网络文件传输!
void_fastcall TNetTelForm::ConnectClick(TObject *Sender)
{
IsPaused=false;
waveInStart(phwi);
}
//------------------------------------------------------------------
void_fastcall TNetTelForm::PauseClick(TObject *Sender)
{
if(IsPaused)
waveInStop(phwi);
}
//------------------------------------------------------------------
void_fastcall TNetTelForm::ResumeClick(TObject *Sender)
{
waveInStart(phwi);
}
//------------------------------------------------------------------
void _fastcall TNetTelForm::StopClick(TObject *Sender)
{
ServerSocket1->Active=false;
ClientSocket1->Active=false;
IsPaused=true;
waveInReset(phwi);
waveInStop(phwi);
for(int i=0;i<=1;i++)
FreeInputBuffer(phwi,lpInWaveHdr[i]);
waveInClose(phwi);
waveOutReset(phwo);
waveOutBreakLoop(phwo);
for(int i=0;i<=1;i++)
FreeOutputBuffer(phwo,lpOutWaveHdr[i]);
waveOutClose(phwo);
StatusBar->Panels->Items[0]->Text=“Is Stoped!”;
}
//------------------------------------------------------------------
void_fastcall TNetTelForm::VolumeBarChange(TObject *Sender)
{
Volume=Voleume&0x00000000;
Volume=Voleume^((DWORD)Volume->Position*0xFFFF/100);
Volume=Volume^((DWORD)VolumeBar->Position*0xFFFF/100)<<16);
If(waveOutSetVolume(pwho,Volume)!=0)
ShowMessage(“waveOutSetVolume error!”);
}
//------------------------------------------------------------------
void_fastcall TNetTelForm::ServerSocket1ClientRead(TObject *Sender, TCustomWinSocket *Socket)
{
if(OutputDeviceUnOpend)
{
InitializeOutputDevice();
OutputDeviceUnOpend=false;
}
try
{
ReceiveLength=Socket->ReceiveLength();
Socket->ReceiveBuf(lpOutWaveHdr[WhichToPlay]->lpData,ReceiveLength);
StatusBar->Panels->Items[1]->Text=AnsiString(“Packages:”)+MsgNumber++;
If(waveOutWrite(pwho,lpOutWaveHdr[WhichToPlay],sizeof(WAVEHDR))=0
StatusBar->Panels->Items[0]->Text=AnsiString(“Status:”)+(int)WhichToPlay;
StatusBar->Panels->Items[2]->Text=AnsiString(“PSize:”)+ReceiveLength;
WhichToPlay=!WhichToPlay;
}
catch(…)
{
StatusBar->Panels->Items[0]->“WaveOut error!”;
}
}
//------------------------------------------------------------------
void_fastcall TNetTelForm::ClientSocket1Error(TObject *Sender, TCustomWinSocket *Socket,TErrorEvent ErrorEvent,int &ErrorCode)
{
Socket->Close();
}
//------------------------------------------------------------------
void_fastcall TNetTelForm::ServerSocket1ClientError(TObject *Sender, TCustomWinSocket *Socket,TErrorEvent ErrorEvent,int &ErrorCode)
{
Socket->Close();
}
//------------------------------------------------------------------
void_fastcall TNetTelForm::ClientSocket1ClientRead(TObject *Sender, TCustomWinSocket *Socket)
{
if(OutputDeviceUnOpend)
{
InitializeOutputDevice();
}
}
//------------------------------------------------------------------
void_fastcall TNetTelForm::ExitClick(TObject *Sender)
{
if(!=IsPaused)
{
StopClick(Sender);
}
delete &phwi;
ExitClick(Sender);
TerminateProcess(GetCurrentProcess(),THREAD_SUSPEND_RESUME);
Close();
}
//------------------------------------------------------------------
void_fastcall TNetTelForm::CallBackPlay(TMessage*Message)
{
try
{
if(IsPaused)
return;
switch(waveInAddBuffer(phwi,lpInWaveHdr[!IsNeedSWap],sizeof(WAVEHDR)))
{
case MMSYSERR_INVALHANDLE:
ShowMessage(“MMSYSERR_INVALHANDLE”);break;
case MMSYSERR_NODRIVER:
ShowMessage(“MMSYSERR_NODRIVER”);break;
case MMSYSERR_NOMEN:
ShowMessage(“MMSYSERR_NOMEM”); break;
case WAVERR_UNPREPARED:
ShowMessage(“WAVERR_ UNPREPARED”);break;
}
StatusBar->Panels->Items[2]->Text=AnsiString(“PSize:”)+lpInWaveHdr[!IsNeedSwap]->dwBufferLength;
Clientsocket1->socket->SendBuf(lpInWaveHdr[!IsNeedSwap]->IpData,
lpInWaveHdr[!IsNeedSwap]->dwBufferLength);
switch(getwhichtime)
{
case 0:timebegin=(long)timeGetTime();
getwhichtime=1;
break;
case 1:timennd=(long)timeGettime();
getwhichtime=0;
break;
}
StatusBar->Panels->Items[3]->Text=AnsiString(“Interval:”)+fabs(timebegin-timeend_+AnsiString(“ms”);
StatusBar->Panels->Items[0]->Text=AnsiString(“Status:”)+(int)IsNeedSwap;
IsNeedSwap=!IsNeedSwap;
}
catch(…)
{
StatusBar->Panels->Items[0]->Text=“WaveIn error!”
}
}
//------------------------------------------------------------------
void_fastcall TNetTelForm::Nnnnnn(TObject*Sender)
{
ExitClick(Sender);
}
//------------------------------------------------------------------
void_fastcall TNetTelForm::IntializeInputDevice()
{
//Set up PCMWAVEFORMAT for 11 kHZ 8-bit mono.
pcmWaveFormat.wFormatTag=WAVE_FORMAT_PCM;
pcmWaveFormat.nChannels=1;
pcmWaveFormat.nSamplesPerSec=11025L;
pcmWaveFormat.nAvgBytesPerSec=11025L;
pcmWaveFormat.nBlockAlign=1;
pcmWaveFormat.wBitPerSample=8;
pcmWaveFormat.cbSize=0;
//open the output device.
Switch(waveInOpen(&phwi,WAVE_MAPPER,&pcmWaveFormat,(unsigned long)Handle,0,CALLBACK_WINDOW))
{
case MMSYSERR_ALLOCATED:
ShowMessage(“MMSYSERR_ALLOCATED”);break;
case MMSYSERR_BADDEVICEID:
ShowMessage(“MMSYSERR_ALLOCATED”);break;
case MMSYSERR_NODRIVER:
ShowMessage(“MMSYSERR_NODRIVER”);break;
case WAVERR_STILLPLAYING:
ShowMessage(“WAVERR_STILLPLAYING”);break;
case WAVERR_BADFORMAT:
ShowMessage(“WAVERR_BADFORMAT”);break;
}
//allocate memory and prepare for recording.
for(int i=0;i<=1;i++)
{
lpInWaveHdr[i]=AllocateInputLPWAVEHDRMemory(8*1024);
switch(waveInPrepareHeader(phwi,lpInWaveHdr[i],sizeof(WAVEHDR)))
{
case MMSYSERR_INVALHANDLE:
ShowMessage(“MMSYSERR_INVALHANDLE”);break;
case MMSYSERR_NODRIVER:
SowMessage(“MMSYSERR_NODRIVER”);break;
case MMSYSERR_NOMEN:
ShowMessage(“MMSYSERR_NOMEM”); break;
}
}
switch(waveInAddBuffer(phwi,lpInWaveHdr[IsNeedSwap],sizeof(WAVEHDR)))
{
case MMSYSERR_INVALHANDLE:
ShowMessage(“MMSYSERR_INVALHANDLE”);break;
case MMSYSERR_NODRIVER:
SowMessage(“MMSYSERR_NODRIVER”);break;
case MMSYSERR_NOMEN:
ShowMessage(“MMSYSERR_NOMEM”); break;
case WVERR_UNPREPARED:
ShowMessage(“WAVERR_ UNPREPARED”);break;
}
}
//-----------------------------------------------------------------
void_fastcall TNetTelForm::IntializeOutputDevice()
{
if(waveOutOpen(&phwo,WAVE_MAPPER,&pcmWaveFormat,(unsigned
long)Handle,0,CALLBACK_WINDOW)!=0)
::MessageBox(0,“out Open error.”,“”,MB_OK);
for(int i=0;i<=1;i++)
lpOutWaveHdr[i]=AllocateOutputLPWAVEHDRMemory(phwo,8*1024);
//set volume
Volume=Volume&0x00000000;
Volume=Voleume^((DWORD)0xFFFF/2);
Volume=Volume^(((DWORD)0xFFFF/2)<<16);
if(waveOutSetVolume(pwho,Volume)!=0)
ShowMessage(“waveOutSetVolume error!”);
}
//------------------------------------------------------------------
void_fastcall TNetTelForm::ServerSocket1ClientConnect(TObject *Sender, TCustomWinSocket *Socket)
{
StatusBar->Panels->Items[0]->Text=“Clientconnect OK!”;
}
//------------------------------------------------------------------
void_fastcall TNetTelForm::ClientSocket1Disconnect(TObject *Sender, TCustomWinSocket *Socket)
{
StatusBar->Panels->Items[0]->Text=“lost server_connection!”;
}
//------------------------------------------------------------------
void_fastcall TNetTelForm::ClientSocket1Connect(TObject *Sender, TCustomWinSocket *Socket)
{
StatusBar->Panels->Items[0]->Text=“connect OK!”;
}
//------------------------------------------------------------------
void_fastcall TNetTelForm::NetTelFormCreate(TObject *Sender)
{
LoadFormFile(“图象所在盘符路径”);
}
//------------------------------------------------------------------
怎么实现这个软件啊!?
问题点数:0、回复次数:2Top
1 楼shadowstar(CodeFast for Delphi & C++Builder)回复于 2003-06-01 05:47:53 得分 0
代码是你写的还是别人写的?
你就这么把代码贴上来问么?
只能说你这个人太懒!Top
2 楼matq2008(叶子.net)回复于 2003-06-01 09:03:54 得分 0
错误处理不能忘了:Errorcode=0
就是播放、传输Top




