基于DirectSound的混音与放音实现.pdfVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于DirectSound的混音与放音实现

电子科技 2004年第 3期(总第 174期) 基于DirectSound的混音与放音实现 黎剑兵 李永强 徐 敏 (西安电子科技大学机电工程学院,陕西西安 710071) 摘 要 文中主要介绍了基于DirectSound的混音与放音的原理与实现的具体步骤,并对实现方法及用到的 各API函数进行了具体的分析。 关键词 DirectSound,混音,放音,编程。 中图分类号 TN912.34 1 引 言 个缓冲区中取出数据,然后在主缓冲区(Primary 在进行多媒体软件的设计中,经常会进行混音 Buffer)中进行混音。混音时,它会执行所有必要 和放音的程序设计。随着软件对音乐、音效要求的 的格式转换(例如,将采样率从44kHz转换到22kH z)。 不断提高,对于混音和放音的设计要求也不断提 同时,它会处理所有的特殊效果,例如 3D空间中 高。作为 DirectX的一个组件,DirectSound在混 的声源定位等。在主缓冲区中混音后,声音即送往 音和回放方面的效率是不可质疑的。 输出设备。当硬件缓冲区和硬件混音设备空闲时, Microsoft DirectSound应用程序接口是 DirectSound自动将尽可能多的声音对象送入硬件 DirectX SDK中的声音组件,是一种比较低级的声 内存中。留在主机系统内存中的声音对象由 DirectSound进行软件混音,并以流的方式与硬件 音API函数集,主要用于多媒体设计。DirectSound 的主要功能有:提供短时间、高效率的声音混合, 缓冲区中的声音对象一起送入硬件混音器。这个过 提供硬件加速,能够直接对声音设备进行操作。此 程如图 1所示。 外,新版本的DirectSound可以实现音频捕捉操作, 并可以使用设置声卡及其辅助设备所能提供的扩 展功能。它还可以实现段时间间隔播放混合声音和 三维声音编程。 2混音原理 利用DirectSound来实现混音与放音,首先从 “从声音缓冲区(Secondary Sound Buffer)”对象 说起。一个从声音缓冲区对象代表一个声源,这个 声源既可以是静态的声音对象(Static Sound), 也可以是动态的声音对象(Streaming Sound)。静 态的声音对象是指声音数据一次性读入内存,它一 般适用于较短的声音。动态声音对象是指声音数据 必须隔一段时间传送一部分到缓冲区。所有缓冲区 图1 DirectSoud混音工作过程 都含有脉冲编码调制(PCM)格式的声音样本数据。 3 实 现 播放从声音缓冲区对象时,DirectSound从每 收稿日期:2004-03-02 下面我们说明使用DirectSound进行放音和混 56 基于DirectSound的混音与放音实现 音的一般步骤: 台应用程序都不发声。 3.1创建DirectSound对象并设置协作模式 ● DSSCL_WRITEPRIMARY:允许直接存取需要 DirectSound对象是所有DirectSound应用程 的DirectSound驱动程序,声音设备不能播放从缓 序的核心。只有通过它才能创建真正与声音操作有 冲区声音对象,其他应用程序将丢失它们的声音对 关的其他对象。因此在开始进行DirectSound编程 象。 时,首先必须调用DirectSoundCreate函数创建一 大多数应用程序使用 DSSCL_NORMAL L或 个DirectSound对象,该函数的原

文档评论(0)

wannian118 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档