DirectSound开发指南(1)

本文是DirectSound开发的初步指南,介绍了DirectSound的基本功能,如播放音频、混音和3D立体声等。文章详细讲解了如何开始使用DirectSound,包括创建设备对象、辅助Buffer、播放音频数据的步骤,并探讨了DirectSound的实用开发技巧,如枚举设备、设置协作级别和使用设备对象。此外,还提到了DirectSound在多任务环境下的协作模式以及查询设备性能的重要性。
摘要由CSDN通过智能技术生成

1DirectSound简介(Introduction to DirectSound

       曾经学习过Directshow的开发,对于Dsound一直没有仔细的莱学习,以前只是知道Dsound是做音频开发的,我一直以为它和Dshow的结构体系差不多,经过仔细学习后,发现,其实他们完全 两码事。

   闲话少说,下面我们看看DirectSound到底能帮我们做些什么。

 1播放WAVE格式的音频文件或者资源。

 2可以同时播放多个音频。

 3Assign high-priority sounds to hardware-controlled buffers

 4播放3D立体声音

 5在声音中添加特技效果,比如回声,动态的改变特技的参数等

 6将麦克风或者其他音频输入设备的声音录制成wave格式的文件

 

 

 

 

呵呵,DirectSound就能做这么多事情,读到这里,我都有点怀疑DirectSound是不是就是封装了mmio系列和wav系列的函数。因为这些底层的API也能够完成这些事情。

2DirectSound初体验(Getting Started with DirectSound

在开始本节内容前,我会首先提醒一下,如果你想用Directsound开发,那么你首先要包含Dsound.h头文件,其实我可以实话告诉你,你仅仅包含dsound.h你的工程肯定调补通,其实下面的一些头文件也要包含,我第一次就搞了半天才搞好,

#include <windows.h>

#include <mmsystem.h>

#include <mmreg.h>

#include <dsound.h>

 

 

 

 

如果你还想使用DsoundAPI的话,那么你就要在你的vc开发环境中添加Dsound..lib库,

如果你的程序还提示有很多的外部链接找不到,那么我建议你可以将下面的库都添加到你的工程中comctl32.lib dxerr9.lib winmm.lib dsound.lib dxguid.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib,这些是我从Dsound提供的例子中得到的,肯定够你用的,ok,开发环境配置好了。

下面我们简单的来学习一下如果通过DirectsoundAPI播放声音,既然是breif overview,那么详细的内容你可以参考下面的一节内容,这里只是简单的介绍一下播放声音的步骤。

第一步,创建一个设备对象。                                                                                                                                                                                                                                                                                       

  在你的代码中你可以通过调用DirectSoundCreat8函数来创建一个支持IDirectSound8接口的对象,这个对象通常代表缺省的播放设备。当然你可以枚举可用的设备,然后将设备的GUID传递给DirectSoundCreat8函数。

 注意,Directsound虽然基于COM,但是你并不需要初始化com库,这些Directsound都帮你做好了,当然,如果你使用DMOs特技,你就要自己初始化com

  • 0
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值