就是在一台机子上通过话筒说话,局域网的另一台机器上在通过输入它的IP地址与之相连后,便可以收到,也就是可以用耳机听到对方的语音。

解决方案 »

  1.   

    我这里有语音和图象传递的例子程序 给我你的地址如果你想要的话================================================================CSDN 论坛助手 Ver 1.0 B0402提供下载。 改进了很多,功能完备!★  浏览帖子速度极快![建议系统使用ie5.5以上]。 ★  多种帖子实现界面。 
    ★  保存帖子到本地[html格式]★  监视您关注帖子的回复更新。
    ★  可以直接发贴、回复帖子★  采用XML接口,可以一次性显示4页帖子,同时支持自定义每次显示帖子数量。可以浏览历史记录! 
    ★  支持在线检测程序升级情况,可及时获得程序更新的信息。★★ 签名  ●  
         可以在您的每个帖子的后面自动加上一个自己设计的签名哟。Http://www.ChinaOK.net/csdn/csdn.zip
    Http://www.ChinaOK.net/csdn/csdn.rar
    Http://www.ChinaOK.net/csdn/csdn.exe    [自解压]
      

  2.   

    mfkzj() 
    我也要,您可以给我吗?多谢!([email protected])
      

  3.   

    我有这个代码???PPChatNet。exe!给一段代码先!#include "WaveInOut.h"
    LPWAVEHDR AllocateInputLPWAVEHDRMemory(UINT size)
    {
    HPSTR sublpData;
    HGLOBAL lpmemory;
    LPWAVEHDR lpInWaveHdr;
    lpmemory=GlobalAlloc(GMEM_MOVEABLE|GMEM_SHARE,size);
    if(lpmemory==NULL)
    ShowMessage("Failed to GloabalAlloc memory for data sublpData");
    if((sublpData=(HPSTR)GlobalLock(lpmemory))==NULL)
    {
    ::MessageBox(0,"Failed to lock memory for data sublpData",NULL,
    MB_OK|MB_ICONEXCLAMATION);
    }
    lpmemory=GlobalAlloc(GMEM_MOVEABLE|GMEM_SHARE,(DWORD)sizeof(WAVEHDR));
    if(lpmemory==NULL)
    ShowMessage("Failed to globalAlloc memory for data LPWAVEHDR");
    lpInWaveHdr=(LPWAVEHDR)GlobalLock(lpmemory);
    if(lpInWaveHdr==NULL)
    {
    ::MessageBox(0,"failed to lock memory for header:lplpInWaveHdr",NULL,
    MB_OK|MB_ICONEXCLAMATION);
    }
    lpInWaveHdr->lpData=sublpData;
    lpInWaveHdr->dwBufferLength=size;
    lpInWaveHdr->dwLoops=0L;
    lpInWaveHdr->dwFlags=0L;
    sublpData=NULL;
    lpmemory=NULL;
    return(lpInWaveHdr);
    }
    //==============================================================================void FreeInPutBuffer(HWAVEIN hwi,LPWAVEHDR pwh)
    {
    //clear input buffer data and free input buffer
    if(waveInUnprepareHeader(hwi,pwh,sizeof(WAVEHDR))!=MMSYSERR_NOERROR)
    ShowMessage("WaveInUnperpareHeader ERROR!");
    try
    {
    delete pwh->lpData;
    delete pwh;
    }
    catch(...)
    {
    ShowMessage("delete pwh error!");
     }
    }
    LPWAVEHDR AllocateOutPutLPWAVEHDRMemory(HWAVEOUT phwo,UINT size)
    {
    LPWAVEHDR lpOutWaveHdr;
    lpOutWaveHdr=(LPWAVEHDR)GlobalLock(GlobalAlloc(GMEM_MOVEABLE|GMEM_SHARE,
      sizeof(WAVEHDR)));
    if(lpOutWaveHdr==NULL)
    ::MessageBox(0,"Failed to lock memory for header",NULL ,
    MB_OK|MB_ICONEXCLAMATION);
      if((lpOutWaveHdr->lpData=(HPSTR)GlobalLock(GlobalAlloc
     (GMEM_MOVEABLE|GMEM_SHARE,size)))==NULL)
      {
    ::MessageBox(0,"Failed to lock memory for data chumk",NULL,
    MB_OK|MB_ICONEXCLAMATION);
      }
      lpOutWaveHdr->dwBufferLength=size;
      lpOutWaveHdr->dwFlags=0L;
      lpOutWaveHdr->dwLoops=0L;
      waveOutPrepareHeader(phwo,lpOutWaveHdr,sizeof(WAVEHDR));
      return(lpOutWaveHdr);
      }
    //==============================================================================void FreeOutPutBuffer(HWAVEOUT hwo,LPWAVEHDR pwh)
    {
    //clear output buffer data and free output buffer
    switch(waveOutUnprepareHeader(hwo,pwh,sizeof(WAVEHDR)))
    {
    case MMSYSERR_INVALHANDLE:
    ShowMessage("MMSYSERR_INVALHANDLE");return;
    case MMSYSERR_NODRIVER:
    ShowMessage("MMSYSERR_NODRIVE");return;
    case MMSYSERR_NOMEM:
    ShowMessage("MMSYSERR_NOMEM");return;
    case WAVERR_STILLPLAYING:
             ShowMessage("WAVERR_STILLPLAYING");return;
      }
    try
    {
    delete pwh->lpData;
    delete pwh;
    }
     catch(...)
     {
    ShowMessage("delete 'pwh'error!");
    }
    }