文档详情

DirectSound应用程序开发快速入门(完整版).doc

发布:2017-12-14约1万字共10页下载文档
文本预览下载声明
Directsound应用程序开发快速入门 摘要:DirectSound编程的入门介绍,通过实例讲解了如何利用DirectSound最基本的功能-----播放音频,并提供了DirectSound播放音频文件的两种方式(Static buffer 和Streaming buffer ),   关键词: Directsound stream buffer ,static buffer wave 文件播放   一、配置DirectDounf的开发环境   在进行DirectSound开发之前,一定要设置好开发环境,否则编译时会提示你很多东西都找不到定义,DirectSound的开发环境很好设置,简单的说就是包含一些头文件,将lib文件添加要工程中。仅仅包含dsound.h肯定是不够的,一般来说,在你的工程中包含下面两个文件就够了。 #include mmsystem.h #include dsound.h   如果你还想使用Dsound的API的话,那么你就要在你的vc开发环境中添加Dsound..lib库,如果你的程序还提示有很多的外部链接找不到,那么我建议你可以将下面的库都添加到你的工程中comctl32.lib dxerr9.lib winmm.lib dsound.lib dxguid.lib odbc32.lib odbccp32.lib,这些是我从Dsound提供的例子中得到的,肯定够你用的,如下图   开发环境配置好了。你可以在你的工程中任意使用DirectSound提供的接口和函数了。下面简单介绍DirectSound开发中要用到的对象。   二、DiectDound几个对象   我们首先学习一下Directsound中常用的几个对象,简单学习一下哦DirectSound其实很简单的,主要有下面常用的几个对象。 对象 数量 作用 主要接口 设备对象 每个应用程序只有一个设备对象 用来管理设备,创建辅助缓冲区 IDirectSound8 辅助缓冲区对象 每一个声音对应一个辅助缓冲区,可以有多个辅助缓冲区 用来管理一个静态的或者动态的声音流,然后在主缓冲区中混音 IDirectSoundBuffer8, IDirectSound3DBuffer8, IDirectSoundNotify8 主缓冲区对象 一个应用程序只有一个主缓冲区 将辅助缓冲区的数据进行混音,并且控制3D参数. IDirectSoundBuffer, IDirectSound3DListener8 特技对象 没有 来辅助缓冲的声音数据进行处理 8个特技接口IDirectSoundFXChorus8   首先,要创建一个设备对象,然后通过设备对象创建缓冲区对象。辅助缓冲区由应用程序创建和管理,DirectSound会自动地创建和管理主缓冲区,一般来说,应用程序即使没有获取这个主缓冲区对象的接口也可以播放音频数据,但是,如果应用程序要想得到IDirectSound3DListener8接口,就必须要自己创建一个主缓冲区。   三、播放音频文件开发的基本流程   下面我们简单的来学习一下如果通过Directsound的API播放声音,既然是breif overview,那么详细的内容你可以参考下面的一节内容,这里只是简单的介绍一下播放声音的步骤。   第一步,创建一个设备对象,设置设备对象的协作度。   在你的代码中你可以通过调用DirectSoundCreat8函数来创建一个支持IDirectSound8接口的对象,这个对象通常代表缺省的播放设备。当然你可以枚举可用的设备,然后将设备的GUID传递给DirectSoundCreat8函数。   如果没有声音输出设备,这个函数就返回error,或者,在VXD驱动程序下,如果声音输出设备正被某个应用程序通过waveform格式的api函数所控制,该函数也返回error。   下面是创建对象的代码,及其简单 LPDIRECTSOUND8 lpDirectSound; HRESULT hr = DirectSoundCreate8(NULL, lpDirectSound, NULL));   注意,Directsound虽然基于COM,但是你并不需要初始化com库,这些Directsound都帮你做好了,当然,如果你使用DMOs特技,你就要自己初始化com库了,切记。   因为Windows是一个多任务操作环境,在同一个时刻有可能多个应用程序共用同一个设备,通过协作水平,DirectX就可以保证这些应用程序在访问设备的时候不会冲突,每个Directsound应用程序都有一个协作度,用来确定来接近设备的程度,当你创建完设备对象后,一定要调用IDirectSoun
显示全部
相似文档