DirectAudio是以前的DirectSound和DirectMusic的组合,事实上我们现在用到的还是原来的那两个 (DirectSound和DirectMusic),只是可能微软给了他们一个组合后的新名词(DirectAudio),但是实际上的内容还是那些。 毕竟不可能那么快的对那两个DirectX中最复杂的组成部分进行大的改变。对,确实是最复杂的,而且对我这个没有任何音乐细胞的人来说更是如此。
DirectSound
创建DirectSound对象步骤:
以 上这些步骤都是比较固定的,其中难点在于4,声音数据那里来?当然我们可以自己乱写一些数据(我就写过一个正弦波形到缓冲区中让DirectSound播 放,其结果就是虐待耳朵),但是最常用的就是从一个已有的WAV文件导入。但是问题是WAV的读取非常的复杂,比BMP文件复杂得多。但是我们可以使用一 些已经有的函数。对于WAV文件格式的研究我想暂时搁浅一下。好,如果不算这个问题,那么DS的使用就基本没有问题了。适当调用7-9的步骤可以播放出来 一些声音上的特效。 这一章不是我学习DirectX的重点,所以我并没有投入学得太多,这里就都简要介绍一下。 DirectMusic DirectMusic是整个DirectX中纯的COM最初出现在DirectX 6.0中,也是最复杂的,也是最强大的。以下介绍一下如何用DirectMusic来播放一个MIDI文件。 DirectMusic创建步骤:
这 些步骤确实非常复杂,很多都是需要直接调用COM中的函数,而不是DirectMusic提供的。但是它给我们播放MIDI文件带来了统一和方 便,DirectMusic为我们作了一切。另外需要注意的是DirectMusic如此只能播放一个MIDI文件,也就是当你播放另外一个MIDI的时 候,前一个会自动停止。而不象DirectSound中那样可以同时播放多个WAV。 关于DirectSound和DirectMusic就说这些吧,真的是非常非常少,甚至漏掉了很多东西,但是少并不表示他简单,而事实正是声音部分是最复杂的,但是我不想涉及太多声音的问题,我只是想先照顾画面:) (warking_xp) |