在中利用实现声音播放

输送设备2021年09月06日

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

准备工作:

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

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

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

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

using rectX;

using rectSound;

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

Device dv=new Device();

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

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

tCooperativeLevel((new UF()),iority);

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

系统根据各个程序的优先级别,按照相应的顺序分别去各个二级缓冲区中读取内容到主缓冲区中播放。这里,我们为V开辟一个缓冲区。

其中,第一个参数表示文件名(傻瓜都看出来了!),第二个就是需要使用的设备。

SecondaryBuffer buf=new SecondaryBuffer(@\"v\",dv);

5.接下来就可以播放啦。第一个参数表示优先级别,0是最低的。第2个参数是播放方式,这里是循环播放。

ay(0,oping);

6.由于命令行程序没有消息循环,执行完代码就退出了,所以,我们需要暂停程序。

ad();

7.关键的部分已经完了,这里只是交代一下刚才的那个倒霉的new UF() 是什么东西。这个完全是为了应付SetCooperativeLevel的参数要求。我不知道这样做有什么附作用(各位如果因此把声卡烧了…………)

class UF:Form{}

8.代码写完啦~~~。下面可以编译了,这里编译比较复杂点。

csc /r:l;l

这里,我把2个DLL文件放在当前目录的directx目录下(这个是我自己建的,你只需要指出这2个文件的位置就可以了。)

顺便把我的目录结构说明一下:

v

--

l

l

下面是完整代码:

//

using System;

using rectX;

using rectSound;

using rms;

namespace test1

{

class test

{

public static void Main(string [] args)

终端市场成交价格在49..0元/公斤 {

Device dv=new Device();

tCooperativeLevel((new UF()),iority);

SecondaryBuffer buf=new SecondaryBuffer(@\"v\",dv);

ay(0,oping);

adLine();

}

class UF:Form{}

}

}

做人流西安哪家最好
呼和浩特治疗子宫内膜炎费用多少钱
亚健康状态有什么危害
相关阅读
王思聪的狗的伙食比农民工还要好,留言:不想努力了,让我取代它

王思聪,依靠他的舅舅,霍英东,随处走动。只要他不喜欢人,他就卑鄙。不...

2024-12-16
法考客观题报名全步骤!附详细截图参考,一次过!

6月16日,2022法考普遍性所撰将在此之前掀开参赛选手,或许大多数鸡仔仍然...

2024-07-23
女人们“唇型”一般分这5种,3种好看,2种丑,不妨自测一下自己

新娘出门,即使不装扮,也须要要涂睫毛。可见,一个漂亮精美的钝妆对整体...

2024-04-05
鬼马少女雨的玛丽珍鞋

不少姐弟都换清凉穿戴搭了,如果再次穿戴鞋子、小白鞋这类不透气的鞋子,...

2024-04-03
5G有了!华为将在6月发布nova 10系列,芯片换用拍照更好

余承东在即便如此折叠屏AndroidMate Xs2的发表才会上声称,松下的IT弊端已经有...

2024-03-05
《你好,星期六》第三季度主题为了让青春回忆

湖南卫视《你好,星期六》第二季度将全新升级,创意打造“好6街”概念,...

2024-01-24
友情链接