DirectSound应用程序开发快速入门

DirectSound应用程序开发快速入门

ID:47154151

大小:107.50 KB

页数:10页

时间:2019-08-13

DirectSound应用程序开发快速入门_第1页
DirectSound应用程序开发快速入门_第2页
DirectSound应用程序开发快速入门_第3页
DirectSound应用程序开发快速入门_第4页
DirectSound应用程序开发快速入门_第5页
资源描述:

《DirectSound应用程序开发快速入门》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、DirectSound应用程序开发快速入门来源:作者:出处:巧巧读书2006-02-06进入讨论组关键词:windowshotmailoperaword程序开发下一页12摘要:DirectSound编程的入门介绍,通过实例讲解了如何利用DirectSound最基本的功能-----播放音频,并提供了DirectSound播放音频文件的两种方式(Staticbuffer和Streamingbuffer),  关键词:Directsoundstreambuffer,staticbufferwave文件播放  一、配置DirectDounf的开发环境  在进行DirectSo

2、und开发之前,一定要设置好开发环境,否则编译时会提示你很多东西都找不到定义,DirectSound的开发环境很好设置,简单的说就是包含一些头文件,将lib文件添加要工程中。仅仅包含dsound.h肯定是不够的,一般来说,在你的工程中包含下面两个文件就够了。#include#include  如果你还想使用Dsound的API的话,那么你就要在你的vc开发环境中添加Dsound..lib库,如果你的程序还提示有很多的外部链接找不到,那么我建议你可以将下面的库都添加到你的工程中comctl32.libdxerr9.libwin

3、mm.libdsound.libdxguid.libodbc32.libodbccp32.lib,这些是我从Dsound提供的例子中得到的,肯定够你用的,如下图  开发环境配置好了。你可以在你的工程中任意使用DirectSound提供的接口和函数了。下面简单介绍DirectSound开发中要用到的对象。  二、DiectDound几个对象  我们首先学习一下Directsound中常用的几个对象,简单学习一下哦DirectSound其实很简单的,主要有下面常用的几个对象。  首先,要创建一个设备对象,然后通过设备对象创建缓冲区对象。辅助缓冲区由应用程序创建和管理,Di

4、rectSound会自动地创建和管理主缓冲区,一般来说,应用程序即使没有获取这个主缓冲区对象的接口也可以播放音频数据,但是,如果应用程序要想得到IDirectSound3DListener8接口,就必须要自己创建一个主缓冲区。  三、播放音频文件开发的基本流程  下面我们简单的来学习一下如果通过Directsound的API播放声音,既然是breifoverview,那么详细的内容你可以参考下面的一节内容,这里只是简单的介绍一下播放声音的步骤。  第一步,创建一个设备对象,设置设备对象的协作度。  在你的代码中你可以通过调用DirectSoundCreat8函数来创建

5、一个支持IDirectSound8接口的对象,这个对象通常代表缺省的播放设备。当然你可以枚举可用的设备,然后将设备的GUID传递给DirectSoundCreat8函数。  如果没有声音输出设备,这个函数就返回error,或者,在VXD驱动程序下,如果声音输出设备正被某个应用程序通过waveform格式的api函数所控制,该函数也返回error。  下面是创建对象的代码,及其简单LPDIRECTSOUND8lpDirectSound;HRESULThr=DirectSoundCreate8(NULL,&lpDirectSound,NULL));  注意,Directs

6、ound虽然基于COM,但是你并不需要初始化com库,这些Directsound都帮你做好了,当然,如果你使用DMOs特技,你就要自己初始化com库了,切记。  因为Windows是一个多任务操作环境,在同一个时刻有可能多个应用程序共用同一个设备,通过协作水平,DirectX就可以保证这些应用程序在访问设备的时候不会冲突,每个Directsound应用程序都有一个协作度,用来确定来接近设备的程度,当你创建完设备对象后,一定要调用IDirectSound8::SetCooperativeLevel来设置协作度,否则,你不会听到声音的。HRESULThr=lpDirect

7、Sound->SetCooperativeLevel(hwnd,DSSCL_PRIORITY);if(FAILED(hr)){ ErrorHandler(hr);//Adderror-handlinghere.}  第二步,创建一个辅助Buffer,也叫后备缓冲区  你可以通过IDirectSound8::CreateSoundBuffer来创建buffer对象,这个对象主要用来获取处理数据,这种buffer称作辅助缓冲区,以和主缓冲区区别开来,Direcsound通过把几个后备缓冲区的声音混合到主缓冲区中,然后输出到声音输出设备上,达到混音的效果。

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

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

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