ÔÆÌ⺣ - רҵÎÄÕ·¶ÀýÎĵµ×ÊÁÏ·ÖÏíÆ½Ì¨

µ±Ç°Î»ÖãºÊ×Ò³ > ÀîÄȶàýÌåÍøÂçͨÐż¼Êõ

ÀîÄȶàýÌåÍøÂçͨÐż¼Êõ

  • 62 ´ÎÔĶÁ
  • 3 ´ÎÏÂÔØ
  • 2025/5/30 15:50:55

3.4.2ÓïÒô»Ø·Å

Ïà¶Ô¼Òô¶øÑÔ£¬²¥·Å¾Í¼òµ¥¶àÁË£¬Í¬ÑùÓõÄÒ»¸öCWinThread¶ÔÏóCAudioPlayÀ´ÊµÏÖ£¬²¿·ÖʵÏÖ´úÂ룺

LRESULT CAudioPlay::OnWriteSoundData(WPARAM wParam, LPARAM lParam) { //

TRACE(\

MMRESULT mmResult = FALSE; char *p=NULL;

int length=(int) wParam;

if(Playing==FALSE) return FALSE; if(length<=0)

return FALSE;

WAVEHDR *lpHdr=new WAVEHDR; if(!lpHdr)

return FALSE;

p=new char [length]; if(!p) {delete lpHdr; return FALSE;}

ZeroMemory(lpHdr,sizeof(WAVEHDR)); ZeroMemory(p,length);

CopyMemory(p,(char*)lParam,length); lpHdr->lpData=p;

lpHdr->dwBufferLength = length;

mmResult = ::waveOutPrepareHeader(m_hPlay, lpHdr, sizeof(WAVEHDR)); //Ϊ»Ø·ÅÉ豸׼±¸ÄÚ´æ¿é if(mmResult){ delete lpHdr;delete p; return mmResult;}

mmResult = ::waveOutWrite(m_hPlay, lpHdr, sizeof(WAVEHDR));//дÊý¾Ý(·ÅÒô) if(mmResult){delete lpHdr;delete p; return mmResult; }

m_Count++;

return MMSYSERR_NOERROR; }

3.5ÒôÊÓÆµ·¢ËÍÓë½ÓÊÕ

ÊÓÆµ²É¼¯²ÉÓÃAVICap´ÓÊÓÆµ²É¼¯¿¨²¶»ñÊÓÆµÍ¼Ïñ£¬µÃµ½µÄÊÇλͼÐÎʽµÄÊÓÆµÖ¡£¬È»ºóÓÃDivx±àÂëÆ÷½øÐÐѹËõ£¬Ñ¹ËõÒÔºóÐγÉÒÔ֡Ϊ¸ñʽµÄMpeg4Á÷¡£Í¨¹ýWinsockʵÏÖѹËõºóµÄÊÓÆµÊý¾ÝÔÚ¾ÖÓòÍøÖеÄʵʱ´«Ê䣬½ÓÊÕÍêµÄÊý¾Ý½»¸øDivx½âÂëÆ÷£¬ÒÔÖ¡µÄ¸ñʽ½âѹ£¬×îºóʵÏÖÊÓÆµÏÔʾ¡£ËùÒÔÌá³öÒÔ֡Ϊµ¥Î»·¢ËÍÊÓÆµÊý¾ÝÁ÷¡£ÎªÁËÔÚ½ÓÊÕ¶ËÄܹ»·½±ãµØÌáÈ¡³öÒ»Ö¡£¬Ìá³öÈç±í1ËùʾµÄ¸ñʽ×齨֡¡£ÍêÕûµÄÒ»Ö¡ÓÉ5¸ö×Ö¶Î×é³É£¬¸÷¸ö×ֶεÄÒâÒåÈçÏ£ºÖ¡¿ªÊ¼±êÖ¾£º±êÖ¾×ÅÒ»Ö¡µØ¿ªÊ¼£¬Õ¼ÓÃ4¸ö×ֽڵĿռ䣻֡´óС£º±íʾÕû¸öÖ¡µÄ´óС£¬°üÀ¨5¸ö×ֶεĴóС£¬Õ¼ÓÃ4¸ö×ֽڵĿռ䣻֡±àºÅ£º±íʾ֡µÄ˳Ðò±àºÅ£¬Õ¼ÓÃ4¸ö×ֽڵĿռ䣻֡ÀàÐÍ£º±êÖ¾´ËÖ¡ÊÇ·ñÊǹؼüÖ¡£¬Õ¼ÓÃ1¸ö×ֽڵĿռ䣻֡Êý¾Ý£º´æ·ÅѹËõºóÒ»Ö¡µÄÍêÕûÊý¾Ý¡£

3.5.1ÒôÊÓÆµ·¢ËÍÓë½ÓÊÕÄ£¿éÁ÷³Ìͼ

ÒôÊÓÆµ·¢ËÍÓë½ÓÊÕÄ£¿éÁ÷³ÌͼÈçͼ8Ëùʾ¡£

ͼ8 ÒôÊÓÆµ·¢ËÍÓë½ÓÊÕÄ£¿éÁ÷³Ìͼ

3.5.1ÒôÊÓÆµ·¢ËÍÓë½ÓÊÕ´úÂë

²»·Á¼ÙÉè´´½¨µÄÏß³ÌÃûΪsendThread£¬·¢ËÍ´úÂëÈçÏ£º while(1){

isOK=true; //×¼±¸¾ÍÐ÷

SuspendThread(sendThread); //¹ÒÆðÏß³Ì

isOK=false; //Ïß³ÌÕýÔÚ·¢ËÍÊý¾Ý int length=frameLength; //´ý·¢Êý¾Ý³¤¶È if(length<50000) {//ÅжÏÊý¾ÝÊÇ·ñÕý³£ int n=0;

int sendCount=0; while(length>0) {

n=send(sock,(char*)imageBuf+sendCount,length,0); //·¢ËÍÊý¾Ý£¬ //imageBufÊÇÖ¸Õ룬ָÏò´ý·¢Êý¾ÝÖ¡

if(n==SOCKET_ERROR) //ÍøÂç³öÏÖÒì³££¬ÔòÍ˳öÏß³Ì break; length-=n; sendCount+=n;}} }

½ÓÊÕ¶Ë´´½¨Ò»¸öÏß³ÌרÃÅÓÃÀ´Ö´ÐÐÊý¾Ý½ÓÊÕ¡£²»·Á¼ÙÉèÏß³ÌÃûΪrecThread£¬ºËÐÄ´úÂëʵÏÖÈçÏ£º

while(temp!=SOCKET_ERROR){

if(!isStart) {//Ö¡Êý¾ÝÊÇ·ñ¿ªÊ¼£¬true±íʾ¿ªÊ¼ if(endNum>3) //endNum¼Í¼µ±Ç°½ÓÊÕδ´¦ÀíµÄÊý¾Ý endNum=0;

temp=recv(clisock,(char*)(recBuf+endNum),1000,0);//´Ó»º³åÇø¶ÁÈ¡Êý¾Ý startPos=serchStr(temp+endNum); //²éÕÒÖ¡¿ªÊ¼±êÖ¾ if(startPos!=-1) { isStart=true;

endNum=temp+endNum-startPos-4;

memcpy(imageBuf,recBuf+startPos+4,endNum); //±£´æÖ¡Êý¾Ý} else{

memcpy(recBuf,recBuf+temp+endNum-3,3);//±£´æ×îºóÈý¸ö×Ö½ÚµÄÊý¾Ý endNum=3;} }

else{

if(endNum<4) {//Åж¨½ô¸ú¿ªÊ¼±êÖ¾µÄÊý¾Ý£¬Èç¹ûСÓÚ4±íʾ²»ÄÜ»ñµÃÖ¡´óС temp=recv(clisock,(char*)(recBuf),1000,0); //¶ÁÈëÊý¾Ý memcpy(imageBuf+endNum,recBuf,temp);//±£´æÊý¾Ý endNum+=temp; if(endNum<4) continue;

frameSize= *((int*)imageBuf);//»ñµÃÖ¡´óС

if(frameSize<500 || frameSize>50000) {//Òì³£´¦Àí£¨Ö¡´óС·Ç·¨£© isStart = false; //¶ªÆúÊý¾ÝÖØÐ²éÕÒÖ¡¿ªÊ¼±êÖ¾ endNum = 0; continue;}

frameSize-=endNum+4;} else{

while(frameSize>0&&temp!=SOCKET_ERROR) {//»ñµÃÍêÕûÖ¡µÄÊ£ÓàÊý¾Ýtemp=recv(clisock,(char*)(imageBuf+endNum),frameSize,0); endNum+=temp; frameSize-=temp;}

if(frameSize<=0) {//Ö¡½áÊøÖÃ룬½âѹ isStart=false; endNum=0;

deCompress();//ÅжÏÊý¾ÝµÄÓÐЧÐÔ£¬µ÷ÓÃICDecompress½øÐнâѹ}}} }

ËÑË÷¸ü¶à¹ØÓÚ£º ÀîÄȶàýÌåÍøÂçͨÐż¼Êõ µÄÎĵµ
  • ÊÕ²Ø
  • Î¥¹æ¾Ù±¨
  • °æÈ¨ÈÏÁì
ÏÂÔØÎĵµ10.00 Ôª ¼ÓÈëVIPÃâ·ÑÏÂÔØ
ÍÆ¼öÏÂÔØ
±¾ÎÄ×÷Õߣº...

¹²·ÖÏí92ƪÏà¹ØÎĵµ

Îĵµ¼ò½é£º

3.4.2ÓïÒô»Ø·Å Ïà¶Ô¼Òô¶øÑÔ£¬²¥·Å¾Í¼òµ¥¶àÁË£¬Í¬ÑùÓõÄÒ»¸öCWinThread¶ÔÏóCAudioPlayÀ´ÊµÏÖ£¬²¿·ÖʵÏÖ´úÂ룺 LRESULT CAudioPlay::OnWriteSoundData(WPARAM wParam, LPARAM lParam) { // TRACE(\MMRESULT mmResult = FALSE; char *p=NULL; int length=(int) wParam; if(Playing==FALSE) return FALSE; if(length<=0) return FALSE; WAVEHDR *lpHdr=new WAVEHDR; if(!lpHdr) return FALSE; p=n

¡Á ÓοͿì½ÝÏÂÔØÍ¨µÀ£¨ÏÂÔØºó¿ÉÒÔ×ÔÓɸ´ÖƺÍÅŰ棩
µ¥Æª¸¶·ÑÏÂÔØ
ÏÞÊ±ÌØ¼Û£º10 Ôª/·Ý Ô­¼Û:20Ôª
VIP°üÔÂÏÂÔØ
ÌØ¼Û£º29 Ôª/Ô ԭ¼Û:99Ôª
µÍÖÁ 0.3 Ôª/·Ý ÿÔÂÏÂÔØ150·Ý
ȫվÄÚÈÝÃâ·Ñ×ÔÓɸ´ÖÆ
VIP°üÔÂÏÂÔØ
ÌØ¼Û£º29 Ôª/Ô ԭ¼Û:99Ôª
µÍÖÁ 0.3 Ôª/·Ý ÿÔÂÏÂÔØ150·Ý
ȫվÄÚÈÝÃâ·Ñ×ÔÓɸ´ÖÆ
×¢£ºÏÂÔØÎĵµÓпÉÄÜ¡°Ö»ÓÐĿ¼»òÕßÄÚÈݲ»È«¡±µÈÇé¿ö£¬ÇëÏÂÔØÖ®Ç°×¢Òâ±æ±ð£¬Èç¹ûÄúÒѸ¶·ÑÇÒÎÞ·¨ÏÂÔØ»òÄÚÈÝÓÐÎÊÌ⣬ÇëÁªÏµÎÒÃÇЭÖúÄã´¦Àí¡£
΢ÐÅ£ºfanwen365 QQ£º370150219
Copyright © ÔÆÌ⺣ All Rights Reserved. ËÕICP±¸16052595ºÅ-3 ÍøÕ¾µØÍ¼ ¿Í·þQQ£º370150219 ÓÊÏ䣺370150219@qq.com