资源描述:
《完整directshow捕获音视频demo(源码)》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、近段时间由于工作上的需要,大概看了下DirectShow,写了个小的demo,方便理解。以后在深入的学习下DirectShow。贴出代码。对音频所做的处理如下图:1.common.h文件[cpp]viewplaincopyprint?1.#ifndef__COMMON_H__2.#define__COMMON_H__3.4.#include5.#include"qedit.h"6.#include7.#include8.#pragmacomment(lib,"Strmiids.lib")9.10.//definereleasem
2、aco11.#defineReleaseInterface(x)12.if(NULL!=x)13.{14.x->Release();15.x=NULL;16.}17.//Application-definedmessagetonotifyappoffiltergraphevents18.#defineWM_GRAPHNOTIFYWM_APP+10019.20.voidMsg(HWNDhwnd,TCHAR*szFormat,...);21.boolBstr_Compare(BSTRbstrFilter,BSTRbstrDevice);22.23.#endif//__COMMON_
3、H__#ifndef__COMMON_H__#define__COMMON_H__#include#include"qedit.h"#include#include#pragmacomment(lib,"Strmiids.lib")//definereleasemaco#defineReleaseInterface(x)if(NULL!=x){x->Release();x=NULL;}//Application-definedmessagetonotifyappoffiltergraphevents#defineWM_
4、GRAPHNOTIFYWM_APP+100voidMsg(HWNDhwnd,TCHAR*szFormat,...);boolBstr_Compare(BSTRbstrFilter,BSTRbstrDevice);#endif//__COMMON_H__实现:[cpp]viewplaincopyprint?1.#include"common.h"2.3.voidMsg(HWNDhwnd,TCHAR*szFormat,...)4.{5.TCHARszBuffer[1024];6.constsize_tNUMCHARS=sizeof(szBuffer)/sizeof(szBuffer[0]);
5、1.constintLASTCHAR=NUMCHARS-1;2.3.va_listpArgs;4.va_start(pArgs,szFormat);5.6.(void)StringCchVPrintf(szBuffer,NUMCHARS-1,szFormat,pArgs);7.va_end(pArgs);8.9.szBuffer[LASTCHAR]=TEXT(' ');10.11.MessageBox(hwnd,szBuffer,TEXT("Message"),MB_OK
6、MB_ICONERROR);12.}13.14.boolBstr_Compare(BSTRbstrFilter,B
7、STRbstrDevice)15.{16.boolflag=true;17.intstrlenFilter=SysStringLen(bstrFilter);18.intstrlenDevice=SysStringLen(bstrDevice);19.char*chrFilter=(char*)malloc(strlenFilter+1);20.char*chrDevice=(char*)malloc(strlenDevice+1);21.intj=0;22.23.if(strlenFilter!=strlenDevice)24.flag=false;25.else26.{27.for(
8、;j