2024年3月23日发(作者:)
C#下利用DirectSound实现声音播放
第1步:下载并安装DirectX 9 SDK
000
000
DirectX 9 SDK下载地址:/directx/sdk/ ,目前最新版本是2006年8
月,下载包500MB多。
000
第2步:建立C#应用程序
新建一个C#的windows应用程序,名称这里输mydirectXtest。
00
00
解决方案管理器里,右击项目,“添加引用”,选中DirectX和DirectSound,如下图:
000
在里面添加:
000
using X;
using Sound;
往Form1上面拉一个Label和一个Button,在Button onclick事件里面写入:
000
000
000
// 建立声音设备
00
00
dev =
new ();
perativeLevel(this,
00
00
000
);
// 为声音建立二级缓冲区
00
try
...{
000
00
00
aryBuffer snd =
new aryBuffer(
"../../", dev);
// 播放声音
00
000
00
000
(0, t);
}
000
catch (Exception ex)
...{
000
00
000
= ng();
}
dev = new (); —
000
—建立device的类;
000
perativeLevel(this, ); ——
设置CooperativeLevel。因为Windows是多任务的系统,设备不是独占的,所以在使用设备
前要为这个设备设置CooperativeLevel。调用Device的SetCooperativeLevel方法:其中,第
一个参数是一个Control;第二个参数是个枚举类型,用来设置优先级的。
00
SecondaryBuffer snd = new
aryBuffer("../../", dev); —— 开辟缓冲
区。声音设备有个自己的缓冲区,叫主缓冲区。系统中,一个设备有唯一的主缓冲区。由于
windows是多任务的,所以可以有几个程序同时利用一个设备播放声音,每个程序都自己开
辟一个二级缓冲区,放自己的声音。
这里需要注意播放声音的路径,一开始初学者容易把wav声音放到项目里面,在
SecondaryBuffer里面直接写“”,调试是会显示“应用程序错误”。因为调试
000
的默认文件夹是Debug,需要的声音文件应该放到Debug目录下,用“”的
格式;或者放在项目下面,用“../../”的格式。很傻的错误吧。
00
这样,调试程序,按button就会播放声音了。全部代码如下:
:
000
000
using System;
000
using c;
using entModel;
using ;
using g;
using ;
000
00
000
000
00
using ;
000
using X;
using Sound;
namespace mydirectXtest
000
000
00
...{
public partial class Form1 : Form
00
000
...{
00
public Form1()
00
...{
InitializeComponent();
}
00
000
00
private void button1_Click(object sender, EventArgs e)
...{
// 建立声音设备
00
00
00
dev =
perativeLevel(this,
000
new ();
00
000
000
}
}
}
0
);
000
// 为声音建立二级缓冲区
00
try
000
...{
00
aryBuffer snd =
000
new aryBuffer(
000
"../../", dev);
000
// 播放声音
00
(0, t);
}
000
catch (Exception ex)
000
...{
00
= ng();
000
}
000
000
000
00


发布评论