第16讲 游戏中的声音处理技术

第16讲 游戏中的声音处理技术

ID:39890482

大小:66.50 KB

页数:9页

时间:2019-07-14

第16讲 游戏中的声音处理技术_第1页
第16讲 游戏中的声音处理技术_第2页
第16讲 游戏中的声音处理技术_第3页
第16讲 游戏中的声音处理技术_第4页
第16讲 游戏中的声音处理技术_第5页
资源描述:

《第16讲 游戏中的声音处理技术》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、第16讲游戏中的声音处理技术FMOD1.DirectShow介绍    DirectShow是一个windows平台上的流媒体框架,提供了高质量的多媒体流采集和回放功能。它支持多种多样的媒体文件格式,包括ASF、MPEG、AVI、MP3和WAV文件。DirectShow整合了其它的DirectX技术,能自动地侦测并使用可利用的音视频硬件加速,也能支持没有硬件加速的系统。    DirectShow大大简化了媒体回放、格式转换和采集工作。但与此同时,它也为用户自定义的解决方案提供了底层流控制框架,从而使用户可

2、以自行创建支持新的文件格式或其它用途的DirectShow组件。    DirectShow是建立在组件对象模型(COM)上的,因此当你编写DirectShow应用时,你必须具备COM客户端程序编写的知识。对于大部分的应用,你不需要实现自己的COM对象,DirectShow提供了大部分你需要的DirectShow组件。2、介绍几个接口IGraphBuilder *m_pGraph; //IGraphBuilder接口提供了生成FilterGraph相关的方法IMediaControl *m_pMediaCo

3、ntrol; //IMediaControl接口提供了控制流经FilterGraph数据流的相关方法IMediaEventEx *m_pEvent;  //IMediaEventEx继承自IMediaEvent,提供了从FilterGraph管理器获取事件消息的方法IMediaSeeking *m_pMediaSeeking; //IMediaSeeking提供了控制流的播放位置和播放速度的方法 IBasicAudio *m_pBasicAudio; //IBasicAudio接口提供了声音和声道的部分处理

4、,如音量大小和音量均衡等IBaseFilter *m_pMpegAFilter; //在用新的过滤器(Filter)控制声道的时候用到的接口IMpegAudioDecoder *m_pMpegAudioDec; //一个Filter接口,提供了提取和分配声道功能有了这些接口,我们就可以在自己的类中进行封装了。注意的是要用这些接口来编程需要设置一些环境,如include和lib3、编写一个DirectShow应用程序大体需要三个步骤:1.创建一个FilterGraphManager的实例2.使用FilterG

5、raphManager创建一个filtergraph,此时,需要已经具备所有必需的filter。3.使用FilterGraphManager控制filtergraph和通过这些filter的流,在这个过程中,应用程序会收到FilterGraphManager发送的事件第一步,首先,需要调用CoInitialize来作初始化,然后调用CoCreateInstance创建FilterGraphManager//初始化COM接口HRESULThr=CoInitialize(NULL);if(FAILED(hr))

6、{       TRACE("ERROR-CouldnotinitializeCOMlibrary.");       returnFALSE;}hr=CoCreateInstance(CLSID_FilterGraph,                NULL,                CLSCTX_INPROC,                IID_IGraphBuilder,                (void**)&m_pGraph); 退出的时候别忘了:CoUninitializ

7、e();二、设置需要的接口(m_pMediaControl,m_pBasicAudio,m_pMediaPosition,m_pMediaSeeking)   m_pGraph->QueryInterface(IID_IMediaControl,(void**)&m_pMediaControl);m_pGraph->QueryInterface(IID_IMediaPosition,(void**)&m_pMediaPosition);m_pGraph->QueryInterface(IID_IBasicA

8、udio,(void**)&m_pBasicAudio);m_pGraph->QueryInterface(IID_IMediaSeeking,(void**)&m_pMediaSeeking);       m_pMediaSeeking->GetPositions(&m_curpos,&m_stoppos);        m_filelength=m_stoppos-0;//得到媒体文件的总大小——帧数三、

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。