- 1、本文档共32页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
抛砖引玉 如果您在玩一种以跳舞为主的游戏时,您只能看到屏幕上那些上下左右箭头一直在往上跑,但是却不能听到任何的声音,这时,你只能看着那些箭头猛踩踏板,而不能跟着音乐的节拍起舞,那么游戏玩起来还会觉得有趣吗? 一个好的游戏,除了有真实而具有震撼力的游戏画面之外,游戏的音乐与音效也是相当重要的部分。像仙剑奇侠传的中国古典音乐,暗黑破坏神的欧美风格的音乐,都给玩家留下了深刻的印象。另外,在很多3D射击游戏中,音效的处理也是相当重要的一个工作,程序员往往需要设计一个真实的3D音效,让玩家根据音效来判断所处的环境。 麻雀虽小,五脏俱全 DirectSound简介 声音的播放过程 DirectSound的编程步骤 3D音效的实现 DirectSound简介 DirectSound是DirectX Audio的一个较底层的部件,提供了丰富的接口函数,实现.wav格式的波形声音数据的播放控制。 与一般的Windows API提供的声音播放函数不同, DirectSound可实现多个声音的混合播放,便于在游戏的背景声音下实现各种角色发出声音。 DirectSound可充分使用声卡的内存资源,同时也提供了3D声效算法,模拟出真实的3D立体声。 声音的播放过程 声音的播放过程 主缓冲区:可以看做是一个DirectSound,是用来播放声音、产生混音效果的区域,它有一个预设的播放格式(8bit、22kHz),而声音文件在播放时便按照这种格式输出。主缓冲区在建立DirectSound对象时自动生成,不过如果需要比默认值更好的播放品质,就必须建立主缓冲区并设定其播放的格式,并且在设定协调级别时,标志位必须设定为DSSCL_PRIORITY或 DSSCL_EXCLUSIVE。 次缓冲区:存储播放声音的文件,可以建立多个次缓冲区来存放多个要播放的声音文件。 DirectSound的编程步骤 创建DirectSound对象 设置设备的协调级别 建立主缓冲区 建立次缓冲区 装入声音数据到次缓冲区 声音的播放与控制 创建DirectSound对象 创建一个代表声卡的IDirectSound8对象: 设置设备的协调级别 在建立了IDirectSound8对象之后,需要设置声卡设备的协调级别,告诉Windows使用硬件的权限,其他应用软件与游戏如何共享声卡设备。 dwLevel有如下几个取值: DSSCL_EXCLUSIVE :对于DirectX8.0以上版本,此标志与DSSCL_PRIORITY 具有相同的作用。对于以前的版本,此标志设置声卡设备为当前程序独占。 DSSCL_NORMAL :正常模式,其他程序可共享设备。此标志下,主缓冲区的播放格式不允许修改。 DSSCL_PRIORITY :具有优先设置DirectSound设备的权限。如:可调用SetFormat 函数设置主次缓冲区的播放格式。 DSSCL_WRITEPRIMARY :可写主缓冲区,此时次缓冲区就不可进行播放处理,即不能将次缓冲区的数据送进混声器,再输出到主缓冲区上。 建立主缓冲区 CreateSoundBuffer函数原型: 建立次缓冲区 次缓冲区用来装入实际的声音数据,因此,必须根据实际的声音文件大小,创建一个相应大小的次缓冲区。 .wav文件依据称为RIFF的资源互换文件格式来存放声音数据。文件头包括3个块,分别是RIFF块、fmt块和data块。 每个块由块名称、块的大小以及块的数据构成。 为了读取.wav文件的声音格式数据,并将实际声音数据装入次缓冲区,定义如下的一个对应于.wav文件头的结构体sWaveHeader。 读取.wav文件的声音格式数据: 取得文件的声音属性信息后,就可以进行次缓冲区的创建。方法大体上与主缓冲区的创建差不多,只是一些参数的设置需要做出修改。 首先,次缓冲区需要根据.wav文件头的数据,填写一个WAVEFORMATEX结构体的信息,以反映声音数据的基本属性,如下所示: 接下来,填充缓冲区描述结构体信息,提供音量控制、声音数据大小和格式等说明,并将前面的waveFormat声音格式变量设置进去。 最后,调用IDirectSound8接口的CreateSoundBuffer函数,创建一个IDirectSoundBuffer对象,这个对象已被IDirectSoundBuffer8扩充,并提供了一些新的函数。一般需要转换为IDirectSoundBuffer8对象,再加以使用。 为此,利用IDirectSoundBuffer接口的QueryInterface函数,查找返回IDirectSoundBuffer8接口对象, 装入声音数据到次缓冲区 取得次缓冲区后,就可以将.wav文件中的实际声音数据加载到次缓冲区进行播放。为此,先
您可能关注的文档
- 不良地质现象对工程的影响.ppt
- 不良反应定义和应急处置.ppt
- 不良报告原因分析以及改善范本.ppt
- 不良行为习惯-兴华.ppt
- 不要侵犯我的隐私.ppt
- 不要“人老珠黄”--橱柜样板的更新换代.ppt
- 不要在马路上玩耍.ppt
- 不要只做我告诉你的事请做需要做的事.pptx
- 不要给学生的发展贴负面标签45.ppt
- 不要游戏成瘾教案.ppt
- 2024年学校党总支巡察整改专题民主生活会个人对照检查材料3.docx
- 2025年民主生活会个人对照检查发言材料(四个带头).docx
- 县委常委班子2025年专题生活会带头严守政治纪律和政治规矩,维护党的团结统一等“四个带头方面”对照检查材料四个带头:.docx
- 巡察整改专题民主生活会个人对照检查材料5.docx
- 2024年度围绕带头增强党性、严守纪律、砥砺作风方面等“四个方面”自我对照(问题、措施)7.docx
- 2025年度民主生活会领导班子对照检查材料(“四个带头”).docx
- 国企党委书记2025年度民主生活会个人对照检查材料(五个带头).docx
- 带头严守政治纪律和政治规矩,维护党的团结统一等(四个方面)存在的问题整改发言提纲.docx
- 党委书记党组书记2025年带头增强党性、严守纪律、砥砺作风方面等“四个带头”个人对照检查发言材料.docx
- 2025年巡视巡察专题民主生活会对照检查材料.docx
最近下载
- 重庆市两江新区2024-2025学年数学六年级第一学期期末检测试题含解析.doc VIP
- 人教版(2024年新版)七年级上册美术全册教学设计.docx
- Desouttter马头电动装配系统CVI3 系列 CVI3 Controllers CVI3 Vision (6159326910) CVI3 tightening controllers Conf.pdf
- 【MOOC】时间序列分析-中南财经政法大学 中国大学慕课MOOC答案.docx
- 2024-2025学年重庆市六年级数学第一学期期末检测试题含解析.doc VIP
- 高中政治(必修1+必修2)期末测试卷(二)(原卷版).docx VIP
- 高中生物 2023-2024学年安徽省合肥高一(上)期末生物试卷.pdf
- 太阳能光伏产业链垂直一体化构建研究.docx VIP
- SSCI收录管理学种期刊目录.docx
- GB51016-2014 非煤露天矿边坡工程技术规范.pdf
文档评论(0)