• λ我爱Aspx >> Asp.Net >> 在C#中利用DirectX实现声音播放
  • 在C#中利用DirectX实现声音播放

  • :未知  Դ:internet  :2007-5-20 16:43:36  ؼ:c#
  • 我感觉声音的播放比较简单。我们从播放声音开始。为什么我这么觉得?我也不知道。

    这里是展示最简单的DirectX播放声音的例子,我尽量省略了无关的代码。最后的代码只有19行,够简单了吧?

    准备工作:

    1.安装了DirectX SDK(有9个DLL文件)。这里我们只用到MicroSoft.DirectX.dll 和 Microsoft.Directx.DirectSound.dll

    2.一个WAV文件。(这样的文件比较好找,在QQ的目录里就不少啊。这里就不多说了。)名字叫SND.WAV,放在最后目标程序的同个目录下面

    开始写程序啦。随便用个UltraEdit就好了。

    1.引入DirectX 的DLL文件的名字空间:

    using Microsoft.DirectX;

    using Microsoft.DirectX.DirectSound;

    2.建立设备。在我们导入的Microsoft.DirectX.DirectSound空间中,有个Device的类。这个是表示系统中的声音设备。

    Device dv=new Device();

    3.设置CooperativeLevel。因为Windows是多任务的系统,设备不是独占的,所以在使用设备前要为这个设备设置CooperativeLevel。调用Device的SetCooperativeLevel方法:其中,第一个参数是一个Control,第二个参数是个枚举类型。

    在这个程序中,Control我随便弄了个参数塞进去(很汗吧!)。如果在windows程序中,可以用this代替。第二个参数就是优先级别,这里表示优先播放。

    dv.SetCooperativeLevel((new UF()),CooperativeLevel.Priority);

    4.开辟缓冲区。对于上面的声音设备,他有个自己的缓冲区,叫主缓冲区。系统中,一个设备有唯一的主缓冲区。由于windows是多任务(又是这个!),所以可以有几个程序同时利用一个设备播放声音,所以每个程序都自己开辟一个二级缓冲区,放自己的声音。

    Ҷƪл˵?
  • һƪ深入理解C#编程中的组件-事件-委托
    һƪASP.NET程序中常用编程代码(一)